Commit Graph

1494 Commits

Author SHA1 Message Date
Scott Idem
111ef76d14 Fix Lead List filtering and resolve Svelte 5 subscription crash
- Refactored Lead List to use direct observable subscription for better reactivity.
- Implemented in-memory 'Hard Guard' filter to ensure licensee selection is strictly enforced.
- Fixed 'TypeError: s.subscribe is not a function' by removing legacy $ prefix from resolved props.
- Resolved TypeScript typing errors in Lead Detail and Search components.
- Migrated Badge Search icons to Lucide.
2026-02-08 23:03:35 -05:00
Scott Idem
8787f8c2ff Harden Licensed User dropdown logic and resolve data parsing errors
- Implemented dual-format parsing for 'license_li_json' (handles raw string and IDB objects).
- Added fallback lookup by 'event_exhibit_id_random' for robust record resolution.
- Fixed reactivity for licensee dropdown population.
- Hardened default selection logic based on Aether access levels.
2026-02-08 22:25:56 -05:00
Scott Idem
68075d37a1 Standardize on Licensed Exhibit Leads User (licensee) terminology
- Renamed all staff-related fields and variables to 'licensee'.
- Implemented correct filtering logic for Aether Admins (default All, hide My).
- Implemented correct filtering for booth users (default My, show colleagues).
- Populated dropdown labels with Full Names from license_li_json.
- Removed 'Shared Passcode' from the Lead List filter.
2026-02-08 21:28:16 -05:00
Scott Idem
224e03405c Remove redundant 'View Leads List' button from Add Lead tab 2026-02-08 20:00:57 -05:00
Scott Idem
f2e5fccc8d Implement auto-prefill for Exhibitor shared passcode for trusted users 2026-02-08 19:55:27 -05:00
Scott Idem
16acae03d0 Implement exhibitor search constraints and sync telemetry
- Restricted public exhibitor search to Priority (paid) items only.
- Enforced 3-character search minimum for non-trusted users on landing page.
- Implemented real-time sync telemetry (last refresh and countdown) in Manage tab.
- Added auto-refresh logic with configurable intervals.
2026-02-08 19:46:53 -05:00
Scott Idem
b3114c619a Complete Exhibitor Leads Authentication and Portal Structure
- Implemented dual-mode Sign-In (Shared Passcode / Licensed User) with persistent state.
- Added Manager Bypass logic for seamless admin access.
- Implemented Welcome/Start tab with redirection to Lead List upon authentication.
- Added Sign-Out functionality and Header navigation improvements.
- Integrated all Manage tab sub-sections (Licenses, Questions, Payment).
2026-02-08 19:23:26 -05:00
Scott Idem
72b0086efa Complete Exhibitor Leads Manage tab functionality
- Implemented dynamic Custom Questions editor for qualifiers.
- Wired up Staff License management and Billing stubs with expanding rows.
- Finalized Admin Tools and App Settings sections.
- Verified zero errors project-wide.
2026-02-08 19:18:01 -05:00
Scott Idem
7963314377 Overhaul Exhibitor Leads Manage tab and resolve all TypeScript errors
- Implemented full Staff License management (CRUD for license_li_json).
- Added Admin Tools section for managers (Payment status, Max licenses, Device counts).
- Implemented App Settings (Refresh interval, navigation preferences, cache management).
- Fixed all remaining TypeScript errors in Badge and Presentation modules.
- Integrated Payment tab conditional visibility logic.
2026-02-08 18:46:32 -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
356eda5ab4 Saving notes and things. Done for the night. Tomorrow need to work on the Leads - Manage/Config and then Leads - Sign In/Licenses/Payment 2026-02-07 19:16:41 -05:00
Scott Idem
acf69c3deb feat(leads): standardize exhibit and lead tracking on V3 API and base ID keys 2026-02-07 18:58:20 -05:00
Scott Idem
aa5c795287 refactor(leads): combine QR and Search buttons into a single toggle
- Simplified Tab 2 interface by replacing segmented control with a single toggle button.
- Updated button labels and icons to indicate the available switch action.
2026-02-07 18:09:29 -05:00
Scott Idem
677571dde2 feat(leads): persistent tab states and unified search UI
- Implemented sticky tab persistence using local storage via events_loc store.
- Aligned Manual Search form styling with Lead List search for UI consistency.
- Updated tab switching logic to support historical navigation within exhibits.
- Center-aligned and stabilized Add Lead content area.
2026-02-07 18:08:23 -05:00
Scott Idem
f4a34e4ad7 feat(leads): stabilize v3 layout and unify tab width logic
- Removed max-width constraints across leads modules for full-width stability.
- Fixed duplicate Download icon import causing build errors.
- Improved header responsiveness for mobile-first experience.
- Refined tab switching logic with state persistence placeholders.
2026-02-07 18:00:12 -05:00
Scott Idem
699a1dd584 refactor(leads): modularize exhibitor leads logic and stub v3 UI 2026-02-07 16:43:33 -05:00
Scott Idem
f8f65139a7 Saving initial changes to the Leads v3 project files and directories. 2026-02-07 14:54:31 -05:00
Scott Idem
a6d9060422 debug: enable verbose logging in presenter load function
- Increased 'log_lvl' to 2 in the presenter's SvelteKit load function to track data revalidation and ID mapping.
2026-02-06 18:12:08 -05:00
Scott Idem
136afdd8f8 debug: implement surgical tracking and refined ID safety net for event files
- Added surgical console logging in '_refresh_file_li_background' to track raw API data vs processed records.
- Refined the ID safety net to only inject missing keys, preventing accidental overwrites of existing relationships.
- Hardened '_process_generic_props' to prevent 'null' random IDs from clobbering clean V3 IDs.
- Restored specific object ID fields to 'properties_to_save' for full IndexedDB synchronization.
2026-02-06 18:06:56 -05:00
Scott Idem
d53a2789ae refactor: improve event file loader stability and ID integrity
- Implemented a safety net in '_refresh_file_li_background' to inject missing 'for_id' and 'for_type' from query context.
- Fixed a bug in '_process_generic_props' where 'null' random IDs could overwrite clean IDs.
- Enabled initial debugging logs for event file processing.
2026-02-06 17:25:42 -05:00
Scott Idem
4eabc7eeba refactor: implement frontend safety net for missing event file foreign keys
- Updated '_refresh_file_li_background' to manually inject 'for_id', 'for_type', and specific object IDs if they are missing from the API response.
- This ensures robust indexing and retrieval from Dexie even when the V3 backend fails to populate linking fields.
- Verified that these 'fixed' objects are correctly processed and saved to the local cache.
2026-02-06 16:55:00 -05:00
Scott Idem
7b61145a66 refactor: ensure robust event file retrieval from Dexie cache
- Reverted 'element_manage_event_file_li_direct.svelte' to use 'for_type' and 'for_id' for cache-aware filtering.
- Enhanced 'element_manage_event_file_li_all.svelte' with a combined filter for specific and generic IDs.
- Verified that ID synchronization in 'process_ae_obj__event_file_props' supports these retrieval patterns.
2026-02-06 16:45:10 -05:00
Scott Idem
df9d3ad3d2 refactor: stabilize event file management and ID synchronization
- Updated 'process_ae_obj__event_file_props' to synchronize generic 'for_id' with specific object IDs (e.g., 'event_presenter_id').
- Standardized 'element_manage_event_file_li_direct.svelte' to use specific ID filtering.
- Fixed missing 'prevent_default' in 'ae_comp__hosted_files_clip_video.svelte'.
- Resolved miscellaneous type and syntax errors identified by svelte-check.
2026-02-06 16:41:44 -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
433862ad00 refactor(events): modernize event files upload component
- Standardized props and UI using Lucide icons and Element_input_files_tbl.
- Migrated state to Svelte 5 runes ($state, $bindable).
- Updated upload logic to handle sequential processing and event_file creation.
- Improved revalidation logic by clearing Dexie cache before refreshing.
2026-02-06 15:43:03 -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
f8476e1133 refactor(events): finalize formatting and fix remaining native calls
- Corrected missed native 'event.preventDefault()' calls in badge form components.
- Applied batch formatting (printWidth: 80) to top-level event route files.
2026-02-06 15:04:55 -05:00
Scott Idem
bb94fd38aa refactor(pres_mgmt): fix native calls and apply batch formatting
- Corrected native 'event.preventDefault()' calls in form agreement components.
- Applied batch formatting (printWidth: 80) across the pres_mgmt module.
2026-02-06 15:02:26 -05:00
Scott Idem
9ea94c0727 refactor(leads): fix native calls and apply batch formatting
- Corrected native 'event.preventDefault()' calls in exhibit search components.
- Applied batch formatting (printWidth: 80) across the leads module.
2026-02-06 14:59:09 -05:00
Scott Idem
5385eacc0f refactor(badges): standardize helpers and apply batch formatting
- Standardized 'prevent_default' helper names across badges module.
- Corrected native 'event.preventDefault()' calls in view and template components.
- Applied batch formatting (printWidth: 80) to all badges files.
2026-02-06 14:55:43 -05:00
Scott Idem
67752ccdfe refactor(lib): standardize helpers and format shared components
- Applied snake_case helper standardization and formatting to element_input_file, hosted_files_clip_video, and websocket_v2.
- Cleaned up deprecated legacy imports.
2026-02-06 14:49:36 -05:00
Scott Idem
969e5610bb refactor(launcher): standardize helper names and apply batch formatting
- Renamed internal 'preventDefault' to 'prevent_default' in launcher files.
- Fixed native 'event.preventDefault()' call in launcher_file_cont.svelte.
- Applied batch formatting (printWidth: 80) across the (launcher) module.
2026-02-06 14:48:44 -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
f4b49f41eb fix(journals): resolve 404 error by switching to V3 entry loader
- Replaced legacy generic load_ae_obj_id with V3-compliant journals_func.load_ae_obj_id__journal_entry.
- Corrected API endpoint targeting from /crud/ to /v3/crud/.
- Hardened journal entry loading for Svelte 5 stability.
2026-02-06 14:18:24 -05:00
Scott Idem
2f3125c64b style(journals): apply expanded 80-width formatting and snake_case
- Batch formatted all Journals module files using Prettier with printWidth: 80.
- Refactored preventDefault to prevent_default across all Svelte components.
- Standardized line breaks for imports and long attribute lists for better readability.
- Ensured consistent snake_case naming for internal identifiers.
2026-02-06 14:15:43 -05:00
Scott Idem
07dd6c18a1 Making things look nicer. Better formatting. 2026-02-06 13:49:11 -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
a3ec7f8c42 fix(idaa): synchronize Dexie schema with renamed post_comment table
- Renamed 'comment' table to 'post_comment' in db_posts.ts.
- Bumped Dexie database version to 2.
- Resolved InvalidTableError: Table post_comment does not exist.
- Standardized ID mapping for local storage consistency.
2026-02-05 19:57:22 -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