diff --git a/documentation/AE__UI_UX_future_ideas.md b/documentation/AE__UI_UX_future_ideas.md index 856d597b..f9b624b8 100644 --- a/documentation/AE__UI_UX_future_ideas.md +++ b/documentation/AE__UI_UX_future_ideas.md @@ -8,7 +8,7 @@ ## IDAA Recovery Meetings -### 1. Guided empty state with active filters +### 1. Guided empty state with active filters — ✅ Implemented 2026-05-18 **Current behavior:** When filters return 0 results, the page shows: "No recovery meetings found matching your criteria." @@ -35,6 +35,12 @@ Try broadening your search or [Clear all filters →] - Distinct from the `error` state — this is a successful search (`qry__status === 'done'`) with an empty result set. +**Implemented:** `src/routes/idaa/(idaa)/recovery_meetings/+page.svelte`. `has_active_filters` +derived checks `qry__physical`, `qry__virtual`, `qry__type`, and `qry__fulltext_str`. Empty +state branches on `has_active_filters`: active filters → guided message + "Clear Filters" +button; no active filters → existing escape-hatch flow (timed "Refresh Meeting Cache" after +8 seconds). + --- ### 2. Quick-filter chips below the search bar — ✅ Implemented 2026-05-18 diff --git a/documentation/CLIENT__IDAA_and_customized_mods.md b/documentation/CLIENT__IDAA_and_customized_mods.md index 03708a07..76920e58 100644 --- a/documentation/CLIENT__IDAA_and_customized_mods.md +++ b/documentation/CLIENT__IDAA_and_customized_mods.md @@ -3,7 +3,7 @@ **Client:** International Doctors in Alcoholics Anonymous (IDAA) **Module Path:** `src/routes/idaa/` **State Stores:** `src/lib/stores/ae_idaa_stores.ts` -**Last Updated:** 2026-03-09 (Novi UUID verification upgrade) +**Last Updated:** 2026-05-18 (Default limit and stepper update) --- @@ -821,4 +821,4 @@ ae_loc.idaa_loc = { novi_uuid: 'test-uuid-value', ... }; --- **Document Status:** ✅ Current -**Last Verified:** 2026-05-18 — Recovery Meetings: added My Meetings / favorites (data_store-backed, star button on list + detail page), guided empty state for filtered zero-results, corrected filter/sort descriptions; updated `idaa_loc` and `idaa_sess` store schemas to match actual fields +**Last Verified:** 2026-05-18 — Recovery Meetings: updated default limit to 100 and added 75 to limit stepper; added My Meetings / favorites (data_store-backed, star button on list + detail page), guided empty state for filtered zero-results, corrected filter/sort descriptions; updated `idaa_loc` and `idaa_sess` store schemas to match actual fields diff --git a/documentation/TODO__Agents.md b/documentation/TODO__Agents.md index bf9c3dad..9c3008fe 100644 --- a/documentation/TODO__Agents.md +++ b/documentation/TODO__Agents.md @@ -232,6 +232,11 @@ suddenly jumps to 0 errors, verify it's not because a bad `.d.ts` replaced a pac - `src/routes/idaa/(idaa)/recovery_meetings/+page.svelte` fast-path IDB filter: parse `contact_li_json` and include contact names/emails in the local text match check. +- [ ] **[IDAA] Optimize Recovery Meetings SQL VIEW and indexes.** + The current search query can be taxing on the server. With ~150 active meetings, the view + logic and supporting indexes need a performance review to ensure fast responses as the + database grows. (Requested 2026-05-18) + - [ ] **[IDAA / Events] Audit `default_qry_str` coverage in other event search pages.** The backend was updated 2026-03-31 to expose `default_qry_str` in API responses. Frontend fix applied to Recovery Meetings (`+page.svelte` + `properties_to_save`). diff --git a/src/lib/stores/ae_idaa_stores.ts b/src/lib/stores/ae_idaa_stores.ts index 64d88886..cd09b79e 100644 --- a/src/lib/stores/ae_idaa_stores.ts +++ b/src/lib/stores/ae_idaa_stores.ts @@ -84,7 +84,7 @@ const idaa_local_data_struct: key_val = { qry__enabled: 'enabled', // all, disabled, enabled qry__hidden: 'not_hidden', // all, hidden, not_hidden - qry__limit: 150, + qry__limit: 100, qry__order_by: 'updated_on', // For the IDB index query; name, updated_on/created_on qry__order_by_li: { priority: 'DESC', diff --git a/src/lib/stores/store_versions.ts b/src/lib/stores/store_versions.ts index 2a4194cc..2bda9dcf 100644 --- a/src/lib/stores/store_versions.ts +++ b/src/lib/stores/store_versions.ts @@ -32,7 +32,7 @@ export const AE_LOC_VERSION = 2; // Bumped 2026-03-30: force-clear stale site_cfg_json (novi_idaa_api_key missing bug) export const AE_EVENTS_LOC_VERSION = 1; -export const AE_IDAA_LOC_VERSION = 1; // Added 2026-03-30: was missing, no wipe mechanism existed +export const AE_IDAA_LOC_VERSION = 2; // Bumped 2026-05-18: change default qry__limit from 150 to 100 export const AE_PRES_MGMT_LOC_VERSION = 1; // Added 2026-04-02: new standalone PersistedState store export const AE_BADGES_LOC_VERSION = 1; // Added 2026-04-02: promoted from events_loc.badges export const AE_LEADS_LOC_VERSION = 1; // Added 2026-04-03: promoted from events_loc.leads diff --git a/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte b/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte index 4293d8c6..ee7ff2f8 100644 --- a/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte +++ b/src/routes/idaa/(idaa)/recovery_meetings/ae_idaa_comp__event_obj_qry.svelte @@ -39,7 +39,7 @@ let ae_promises: key_val = $state({}); // Predefined limit steps for the +/- stepper. Trusted staff get larger options // since they often query with disabled/hidden meetings included. -let limit_steps = $derived($ae_loc.trusted_access ? [25, 50, 100, 150, 200, 500] : [25, 50, 100, 150]); +let limit_steps = $derived($ae_loc.trusted_access ? [25, 50, 75, 100, 150, 200, 500] : [25, 50, 75, 100, 150]); let limit_idx = $derived.by(() => { const idx = limit_steps.indexOf($idaa_loc.recovery_meetings.qry__limit); return idx >= 0 ? idx : limit_steps.length - 1;