Commit Graph

346 Commits

Author SHA1 Message Date
Scott Idem
eb35cd023a fix(idaa): restrict Show/Hide Disabled buttons to manager_access + edit_mode
Disabled items are treated as functionally deleted for all end clients
(including Trusted Access staff). Only Manager + Edit Mode should see
Show/Hide Disabled controls — previously using administrator_access and
missing edit_mode gate in BB and archives.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 16:50:35 -05:00
Scott Idem
5687f247d3 fix(idaa, leads): add each-block keys; gate clipboard buttons to manager_access
- Add keyed {#each} to recovery meeting list and exhibit tracking list
  to satisfy Svelte's each-block-key lint rule and ensure correct DOM
  reconciliation on list updates
- Gate Zoom/Jitsi copy-to-clipboard buttons behind manager_access in
  both the recovery meeting list view and single meeting detail view

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 14:38:02 -05:00
Scott Idem
e57bbca33e Work on CORS testing and fixes. Chrome and pfSense with the DNS resolution found a problem. Should be fixed now. 2026-02-23 18:18:58 -05:00
Scott Idem
2dfc8a5034 Implemented 'only_priority' filtering for V3 Lookups.
- Updated V3 lookup API and core timezone loader to support the 'only_priority' flag.
- Enabled high-priority timezone filtering in IDAA Recovery Meeting and Archive editors to streamline selection lists.
2026-02-20 17:17:09 -05:00
Scott Idem
f96f7069a4 Stabilized hierarchical permissions and implemented strict visibility gating.
Standardized access level hierarchy (super > manager > administrator > trusted) and added hierarchical comparison utilities to 'ae_util'.

Refactored IDAA layout to use an 'Upgrade-Only' permission strategy, preventing context-specific identifications from downgrading global Manager privileges.

Implemented strict gated filtering in the Journal Entry list: hidden and disabled items now correctly require both the appropriate hierarchical role (Trusted/Admin) AND active Edit Mode.
2026-02-16 17:12:24 -05:00
Scott Idem
4711f41c34 Expanded Recovery Meeting sort options and refined development SOP.
Implemented 'Meeting Name (A-Z)' and 'Meeting Name (Z-A)' sorting for Recovery Meetings, including UI dropdown updates and client-side re-sorting logic.

Updated documentation/GUIDE__DEVELOPMENT.md to v1.1 with clarified verification steps and inter-agent coordination protocols.

Minor label cleanup in Journal editor.
2026-02-16 15:58:17 -05:00
Scott Idem
f34e24aa02 Standardized robust chronological sorting across modules.
Updated '_process_generic_props' in multiple libraries to ensure 'updated' timestamp always falls back to 'created_on' or epoch start, preventing null values from breaking newest-first ordering in IndexedDB.

Aligned Recovery Meetings and Archives list views to use these pre-computed sort keys for consistent UI behavior even when 'updated_on' is null.
2026-02-16 15:40:00 -05:00
Scott Idem
fdfba0f752 Clean up of the email notifications for Post, Post Comment, and Event create and update. 2026-02-16 13:34:38 -05:00
Scott Idem
6bfd13f52c refactor(events, idaa): standardize on String-only IDs and remove '_random' suffix
Aligned the Events Badges, Templates, and IDAA Bulletin Board modules with
Aether UI/UX v3 standards by prioritizing semantic String IDs (e.g., event_id,
badge_id) over legacy '_random' variants in API helpers, Dexie processors,
and UI components.

- Refactored badge and template loaders to use clean ID field names.
- Updated search and LiveQuery logic in badge management views.
- Cleaned up unused imports and legacy code in +layout and +page components.
- Standardized ID mapping in generic object processors.
- Improved IDAA post creation UX with autofocus and empty title defaults.
2026-02-13 13:51:55 -05:00
Scott Idem
5e9457580c fix(bb): robust date sorting in Bulletin Board list 2026-02-12 15:21:44 -05:00
Scott Idem
64be14249c ui(recovery_meetings): update meeting editor and search components 2026-02-12 15:07:37 -05:00
Scott Idem
4266bef352 ui(bb): update post list surface colors 2026-02-12 15:07:05 -05:00
Scott Idem
6977867ed8 feat(idaa): add IDAA module dashboard 2026-02-12 15:06:10 -05:00
Scott Idem
3ca041383f More general code clean up. More removing of the _random bits. 2026-02-11 13:00:42 -05:00
Scott Idem
87d74e5b4b Just general code clean up. Also removing more of the extra _random bits. 2026-02-11 12:51:55 -05:00
Scott Idem
5bea72f02e Doing general clean up to remove old code and keep removing the _random bits that I find. Bug fix for new hosted files not showing immediately for BB Posts. Just directly updating the selected Post and its linked_li_json. 2026-02-11 12:39:20 -05:00
Scott Idem
d6480bd0dc Optimize IDAA Bulletin Board performance and finalize hydration stability
- Disabled redundant comment loading in BB Post list to eliminate '1+N' API request overhead.
- Fixed missing 'untrack' import in BB Post page.
- Refactored IDAA Archive and BB pages to use 'page.params' for robust Svelte 5 reactivity.
- Finalized root layout hydration guards to prevent infinite store synchronization loops.
2026-02-08 18:29:31 -05:00
Scott Idem
f84d6b638d Implement reactive sorting for IDAA Archives
- Forced priority archives to the top of the list.
- Implemented descending (DESC) sort by the 'sort' field within groups.
- Added a sort selector to the archive list component.
- Centralized sorting logic in-memory within LiveQuery for immediate reactivity.
2026-02-08 18:12:54 -05:00
Scott Idem
84cfed97ca Fix badge loading race conditions and standardize Svelte 5 param resolution
- Resolved 'untrack is not defined' ReferenceError in Badge Detail page.
- Transitioned Badge, IDAA Archive, and Journal Entry pages to use page.params for robust reactivity.
- Implemented fallback semantic ID lookup for Badges to handle mixed ID formats in URLs.
- Added proper loading states to detail views to prevent 'No IDB record' flashes during hydration.
- Systematically audited and cleaned up duplicate 'untrack' imports across all Svelte files.
2026-02-08 17:48:20 -05:00
Scott Idem
718de1457d Fix infinite hydration loop and stabilize global store synchronization
- Refactored layouts to derive account data from stable props instead of reactive stores.
- Wrapped store updates in untrack() with deep equality guards to prevent infinite re-renders.
- Resolved duplicate untrack declarations and missing imports across the project.
- Added fetch safeguards to Element_data_store to prevent redundant API calls.
- Standardized hydration patterns to break circular dependencies during initial load.
2026-02-08 17:15:20 -05:00
Scott Idem
88bc18cf15 fix(core): resolve 68 compiler errors and stabilize Svelte 5 reactivity
- Fixed 'Captured initial value' warnings in 65+ components by implementing
  proper sync effects with 'untrack' and derived states.
- Hardened Event Settings JSON editors using a temporary string-buffer pattern
  to safely decouple object-based data from CodeMirror's string requirements.
- Resolved strict TypeScript mismatches across core routes (Accounts, Sites, etc.)
  and improved property indexing safety in views.
- Patched Flowbite-Svelte Drawer transitions for Svelte 5 compatibility using
  prop spreading.
- Added comprehensive safety comments to high-risk reactivity blocks.
- Synchronized 'ae_types.ts' with V3 backend models.
2026-02-08 16:05:35 -05:00
Scott Idem
2e8e4c7a7b refactor(archives): apply batch formatting to the module
- Finalized batch formatting (printWidth: 80) across all components in the archives module.
2026-02-06 16:19:07 -05:00
Scott Idem
d21e2f8e6f refactor: standardize event file actions and apply batch formatting
- Updated 'create_event_file_obj_from_hosted_file_async' to use the modern V3 action endpoint.
- Standardized 'prevent_default' helper names in root Event and Archive components.
- Applied batch formatting (printWidth: 80) across the settings and events modules.
2026-02-06 16:17:31 -05:00
Scott Idem
ec363f16fc fix: correct remaining native 'event.preventDefault()' calls
- Reverted incorrect snake_case 'event.prevent_default()' to native CamelCase 'event.preventDefault()' across multiple components.
- Finalized formatting for event files upload and archive content edit components.
2026-02-06 15:10:10 -05:00
Scott Idem
7ce5e1f825 refactor: standardize 'prevent_default' helpers and batch format modules
- Renamed internal 'preventDefault' helpers to 'prevent_default' for project-wide snake_case consistency.
- Corrected native event method calls from 'prevent_default()' to 'preventDefault()' to resolve runtime TypeErrors.
- Applied batch formatting (printWidth: 80) to Journals and IDAA Recovery Meetings modules.
- Removed deprecated 'preventDefault' imports from svelte/legacy.
- Fixed Journal Entry 404 by migrating loader to V3 API helper.
2026-02-06 14:45:53 -05:00
Scott Idem
5bd4f7454d style(idaa): apply expanded 80-width formatting and snake_case to Recovery Meetings
- Batch formatted all Recovery Meetings module files using Prettier with printWidth: 80.
- Refactored preventDefault to prevent_default in editor and search components.
- Standardized line breaks for long attribute lists and Svelte tags for better readability.
- Ensured consistent snake_case naming for internal identifiers.
2026-02-06 14:21:24 -05:00
Scott Idem
49e1d57f8f feat(v3): harden clean ID pattern and standardize snake_case platform-wide
- Systematically migrated from *_id_random to clean *_id fields in BB, People, and Posts modules.
- Synchronized Post_Comment interface with account_id for multi-tenant isolation.
- Applied optional chaining and local reactive state to harden async UI initialization.
- Refactored common helpers to follow snake_case naming conventions.
- Resolved various minor stability and logic issues across IDAA Bulletin Board.
2026-02-06 10:44:26 -05:00
Scott Idem
7401003614 feat(idaa): sort BB posts by most recent activity
- Refactored lq__post_obj_li to perform in-memory descending sort by updated_on/created_on.
- Ensured newest and recently modified posts appear at the top of the list.
- Hardened reactivity for Svelte 5 stability.
2026-02-06 10:06:30 -05:00
Scott Idem
4e523b9bd8 feat(idaa): stabilize Bulletin Board module and resolve creation crashes
- Fixed 'post_id' missing error in comment creation by mapping to 'post_id_random'.
- Resolved infinite request loop in post view via untrack() optimization.
- Hardened all property accesses with optional chaining to prevent TypeErrors.
- Migrated comment editor to local reactive state for Svelte 5 stability.
- Refactored post visibility layer to use derived reactive filtering.
- Standardized ID mapping patterns across all BB components.
2026-02-05 20:38:09 -05:00
Scott Idem
73c687ac5a fix(idaa): resolve BB comment IntegrityError and infinite loop
- Explicitly mapped 'post_id' in create_nested_obj_v3 payload.
- Removed redundant background load trigger in view component.
- Stabilized parent-child relationship for V3 API mapping.
- Resolved persistent 400 error during comment creation.
2026-02-05 20:25:23 -05:00
Scott Idem
d6b6e988eb fix(idaa): resolve BB comment loop and parent mapping issues
- Switched to create_nested_obj_v3 for establishing parent-child links.
- Optimized background load trigger with untrack to prevent infinite loops.
- Resolved MySQL IntegrityError (missing post_id) during comment creation.
- Hardened view component reactivity for Svelte 5.
2026-02-05 20:10:46 -05:00
Scott Idem
2d4ddd335b fix(idaa): finalize null-hardening for BB comment editor buttons
- Added optional chaining to 'Cancel Edit' button title attributes.
- Resolved persistent TypeError: can't access property 'full_name' on null.
- Ensured total UI stability during new comment initialization.
2026-02-05 19:26:39 -05:00
Scott Idem
962cc00570 fix(idaa): finalize null-safety for BB comment editor
- Added optional chaining to all post_comment_obj property accesses.
- Resolved TypeError when clicking 'New Comment' button.
- Hardened UI stability for asynchronous data loading.
2026-02-05 19:22:04 -05:00
Scott Idem
13cb13c470 fix(idaa): complete null-hardening for BB comment editor
- Added optional chaining to all post_comment_obj property accesses.
- Resolved TypeError when clicking 'New Comment' button.
- Hardened UI stability for asynchronous data loading.
2026-02-05 19:16:02 -05:00
Scott Idem
81b2ce6f06 fix(idaa): resolve infinite loop and ReferenceError in BB post view
- Deleted redundant reactive trigger in post view component.
- Removed state-syncing side-effects from liveQuery derivation.
- Standardized log_lvl prop to resolve initialization crash.
- Optimized performance for single post loading.
2026-02-05 19:13:01 -05:00
Scott Idem
6d98758f3c fix(idaa): modernize Bulletin Board reactivity and implement SWR for single posts 2026-02-05 18:07:18 -05:00
Scott Idem
6c2c37ff06 fix(standardization): enforce V3 String-Only ID mapping and harden account isolation
- Added 'account_id_random' to persistent property list to fix local search isolation.
- Standardized search body and helpers to support mandatory x-account-id headers.
- Refactored LiveQuery to use synchronous dependency tracking ($derived.by) for reliable search updates.
- Broadened server-side search to handle inclusive OR logic on the client, preventing disappearing results.
- Updated task list with IDAA Recovery Meeting testing status.
2026-02-05 17:56:13 -05:00
Scott Idem
f4f3f99927 fix(idaa): stabilize Recovery Meetings search and broaden visibility logic
- Resolved 400 Bad Request by whitelisting 'physical', 'virtual', and 'external_person_id' fields in backend searchable_fields.
- Broadened server-side search by removing restrictive AND filters for location types, moving the inclusive OR logic to the client-side filter layer.
- Hardened handle_search_refresh error handling to clear results on category filter changes (Type, Physical, Virtual) while maintaining flicker protection strictly for text search typing.
- Restored permissive visibility for Trusted users, allowing them to see hidden/disabled items regardless of Edit Mode.
- Optimized plural object loading in Archives and Events modules using concurrent Promise.all.
- Standardized ID handling across the search flow to prevent Dexie lookup failures.
- Finalized well-commented code across IDAA modules to document search strategies and workarounds.
2026-02-05 16:33:32 -05:00
Scott Idem
ee79f08e69 fix(idaa): resolve broken reactivity and sorting in Archive modules
- Fixed ReferenceError in Archive Content liveQuery (variable name mismatch).
    - Corrected main Archive list sorting by removing incorrect .reverse() call.
    - Implemented robust in-memory sorting for Archive Content to handle mixed directions (Group DESC + Sort ASC).
    - Simplified dependency tracking in Svelte 5 derivations to prevent empty list flickers.
2026-02-05 13:51:17 -05:00
Scott Idem
22e05ec095 fix(standardization): apply safe sort padding across all remaining modules
- Hardened 'JournalEntry' and 'Sponsorship' object processors to handle null sort values.
- Disabled aggressive pre-loading of archive content in main archives list to improve performance.
2026-02-05 12:33:35 -05:00
Scott Idem
2306f2d0c4 fix(idaa): harden data sync against padStart crashes and fix Archive Content sort
- Hardened object processors in Archives and Posts modules to safely handle null 'sort' values, preventing runtime TypeErrors during data synchronization.
- Fixed inconsistent sorting in Archive Content list by correctly implementing descending order (sort then reverse) and adding a configuration loading guard to the liveQuery.
- Standardized safe data processing patterns in SVELTE_DEXIE_GUIDE.md.
- Performed minor cleanup and visibility logic hardening in Recovery Meetings module.
2026-02-05 12:27:26 -05:00
Scott Idem
2e804ae01b fix(idaa): resolve type mismatches in delete methods and liveQuery results
- Updated 'method' parameter types in IDAA edit components to match the expected union types in the V3 API helpers.
- Applied type casting to 'liveQuery' results in the Archives page to ensure 'topic_name' and other convenience fields are recognized by the compiler.
- Fixed casting for 'method' variable in delete operations across Archives, Bulletin Board, and Recovery Meetings.
2026-02-04 15:05:53 -05:00
Scott Idem
bc30724628 feat(events): reorganize badge admin tools and enhance dependency tracking
- Migrated 'Add New Badge' and 'Upload Badge List' to centralized Event Settings hub.
- Secured Admin Tools visibility with Administrator access and Edit Mode requirements.
- Restored and modernized Badge Template management route with Svelte 5 runes.
- Patched 'Archive' and 'Session' database interfaces to resolve compiler errors.
- Added project-wide dependency comments to key interfaces (Archive, Badge, Session) to prevent cascading change regressions.
- Fixed duplicate import errors in the Settings page.
2026-02-04 14:04:44 -05:00
Scott Idem
49f0a888b0 refactor(ui): standardize button types and migrate file operations to V3 Action API 2026-02-03 22:54:22 -05:00
Scott Idem
281972cb5d fix(journals): add type='button' to prevent form submission and migrate to V3 Action API for file downloads 2026-02-03 22:14:22 -05:00
Scott Idem
0809ad3eac feat(v3-auth): modernize hosted file access with simplified bypass pattern
- Roll out platform-wide standard for unauthenticated binary access using '?key=[account_id]' query parameter.
- Update API helpers (get, post, patch) to recognize 'key' bypass and strip account context headers accordingly.
- Refactor IDAA Bulletin Board to restore inline image rendering and edit-mode previews.
- Modernize Events Launcher (Layout, Sync, Session View) to use V3 Action URLs with verified auth.
- Update HTML generators in 'ae_utils.ts' to support the new authenticated URL structure.
- Harden 'ae_comp__event_file_obj_tbl' CSV export and clipboard links with V3 standard patterns.
2026-02-03 18:37:55 -05:00
Scott Idem
aaead82c1a feat(hosted-files): introduce standardized download component and V3 action support
- Created AE_Comp_Hosted_Files_Download_Button using Svelte 5 and Lucide icons.
- Added file_extension_icon_lucide utility for direct Lucide icon mapping.
- Refactored download logic to core__hosted_files.ts using V3 Action endpoint (/v3/action/hosted_file/.../download).
- Integrated new component into Event File Object Table.
- Cleaned up legacy window.postMessage calls in several file management views.

NOTE: The new download component is currently in development and may not be fully functional.
2026-02-03 11:19:23 -05:00
Scott Idem
8c99f5abed feat(idaa): implement jitsi report streaming and conference lifecycle improvements
- Refactor Jitsi reports to use SvelteKit streaming with a skeleton loader.
- Add conference lifecycle event listeners (left, close) to video conference page.
- Implement manual Novi data re-sync and improve initialization robustness.
- Fix skeleton visibility by using standard Tailwind colors.
2026-01-30 10:16:37 -05:00
Scott Idem
ce9e06eb31 refactor: migrate IDAA Archive, BB, and Recovery Meetings to AE_Comp_Editor_TipTap 2026-01-29 14:53:52 -05:00
Scott Idem
9bf2373a82 Slowly updating things to Data Store v3. Also doing some safe code clean up. Mainly removing commented out code. 2026-01-29 12:21:47 -05:00