Commit Graph

49 Commits

Author SHA1 Message Date
Scott Idem
58dbb68601 Minor documentation update 2026-03-31 17:53:31 -04:00
Scott Idem
6cd3b5f8f9 More notes and comments updates 2026-03-27 16:21:51 -04:00
Scott Idem
6939c058d8 Documentation updates 2026-03-27 14:53:28 -04:00
Scott Idem
19d0145d00 fix(idaa): fix Novi UUID verification — stuck spinner, repeat calls, impersonation
Critical bugs fixed:
- $derived(() => {}) stored the function itself; uuid/api_key were always
  undefined so verification never fired. Fixed to $derived.by(() => {}).
- novi_verifying pre-initialized to true (flash prevention) was also used as
  the concurrency guard — guard saw it as in-flight and exited immediately,
  leaving the spinner stuck forever. Split into separate verify_in_flight flag.
- $idaa_loc reads in dedupe snapshot (outside untrack) subscribed the effect
  to idaa_loc writes, causing needless re-runs post-verification.
- Rate limit was not UUID-aware: 429 on one UUID blocked impersonation
  (new UUID). TTL and rate-limit guards now both bypass when UUID changes.

Also includes: store defaults for novi_verified_ts + novi_rate_limited_until,
docs update, iframe template g_uuid param (prior agent changes).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-27 13:38:42 -04:00
Scott Idem
fdd8691e2e feat: badge print — two-line name toggle + leading-none tightening + calibration SVG
- Add name_two_lines toggle (default: true) — uses CSS horizontal padding scaled by
  character count to coax short names (e.g. "Scott Idem") into a natural two-line wrap
  without a hard <br>; three tiers: ≤12 chars (18%), ≤20 (8%), ≤28 (2%), >28 no pad
- Inner <div> (block element) used inside Element_fit_text for class: directives —
  Svelte scoped CSS requires static class names in the template; dynamic strings and
  class: on component elements both fail to match scoped CSS rules
- Add leading-none to all four Element_fit_text fields (name, title, affiliations,
  location) — line-height must be set at the wrapper div level where fit_text measures
  scrollHeight, otherwise the binary-search scaler returns inflated sizes
- name_two_lines state persisted to localStorage (ae_badge_print_tweaks key) alongside
  existing print_offset, hide_chrome, and banner_full_width tweaks
- Rewrite badge_header_calibration.svg as a precise SVG ruler with labeled tick marks
  (major at 1in intervals, minor at 0.25in) for accurate physical print calibration
- Gate debug outline CSS on html.debug_outlines class (set by controls panel) so
  outlines never appear in normal print mode

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 17:55:49 -04:00
Scott Idem
621a637b85 feat: badge print UX improvements — chrome toggle, banner width, overlap fix, header centering
- Replace ae_comp__badge_obj_view_v2 with ae_comp__badge_obj_view (consolidated component)
- Add hide-chrome toggle ([H] shortcut + button) to hide site nav/footer/sys bar for clean print workspace
  — syncs $ae_loc.sys_menu.hide + $ae_sess.disable_sys_nav/footer with restore-on-unmount
- Add banner_full_width toggle (default true=100% width, false=natural pixel size for calibration)
- Center badge header image (display:block; margin:0 auto) — was left-aligned when narrower than badge
- Fix controls panel overlap: move from bottom-0 to bottom-24 to clear sys bar (84px tall)
- Add [H] keyboard shortcut for chrome toggle (guards against focus in inputs)
- Persist hide_chrome and banner_full_width in ae_badge_print_tweaks localStorage key
- Add sample header image assets (calibration SVG/PNG, hex blue SVG/PNG, demo PNG)
- Update badge PVC CSS layout and module docs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 15:42:22 -04:00
Scott Idem
ca29e9c1b8 fix: gate debug outlines on html.debug_outlines class in print CSS
Debug outlines were applying to all print jobs. Now scoped to
html.debug_outlines so they only appear when the "Show debug outlines"
checkbox is active in the controls panel (trusted users only).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 16:59:00 -04:00
Scott Idem
6ca2314472 Badges: fix print page svelte-check error — extract print CSS to static file
Svelte 5 does not support <style> or conditional {#if} blocks wrapping
<style> tags inside <svelte:head>. The parser treats them as raw-text
elements and reports '<script> was left open' at EOF.

Fix:
- Print media CSS moved to static/ae-print-badge.css (plain static file,
  no framework magic needed — all selectors target global elements).
- svelte:head now uses a simple <link> to that file.
- $effect injects the @page size dynamically per template layout field,
  avoiding the Svelte 5 parser limitation for conditional style injection.
- Badge_template interface in db_events.ts: added cfg_json / data_json
  (standard Aether object fields that were missing from the type).
2026-03-16 13:50:28 -04:00
Scott Idem
eb0dcb17f8 fix(idaa): upgrade Novi UUID verification to server-side API call
Previously, IDAA iframe access relied on trusting URL params (uuid, email,
full_name) passed from Novi — any 36-char string granted authenticated access
with no actual verification.

The (idaa)/+layout.svelte now performs an async Novi API call on every UUID
load to verify the UUID exists, fetches name/email directly from Novi (cannot
be spoofed via URL), and sets $idaa_loc.novi_verified on success.
All-or-nothing: if novi_idaa_api_key is absent or the call fails, access denied.

- ae_idaa_stores.ts: add novi_verified boolean field to idaa_loc
- (idaa)/+layout.svelte: async UUID verification with spinner to prevent
  Access Denied flash; permission upgrade-only strategy preserved
- video_conferences/+page.svelte: skip duplicate Novi member details call if
  layout already verified ($idaa_loc.novi_verified check)
- iframe HTML files: remove browser-side Novi API fetch and email/full_name
  params; pass only uuid; add README/START/STOP/WARNING comments for client
  staff; fix iframe-before-script DOM ordering bug
- documentation: CLIENT__IDAA_and_customized_mods.md updated with full
  verification flow, site_cfg_json fields, permission table, access gate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-09 14:48:49 -04:00
Scott Idem
a8314a5da0 Wrapping up for the night. This can now copy the iframe src link. 2025-12-16 21:51:29 -05:00
Scott Idem
a7ad5ff7fa Trying to get the activity logs to work... Create! 2025-12-16 12:02:18 -05:00
Scott Idem
e16a28cc29 Work on checking or guessing permissions based on Novi URL params. 2025-12-15 16:07:26 -05:00
Scott Idem
1d99cc325f Things are in a pretty good working state. Ideally the Novi page should be a little more dynamic with changing the Jitsi settings. Or maybe the controls should be moved to the idaa/video_conferences page. Wrapping up for the day/week. 2025-12-12 17:17:11 -05:00
Scott Idem
fcc2811dc7 Saving a mostly working Jitsi update 2025-12-12 16:03:30 -05:00
Scott Idem
2403b41529 More work on Jitsi for IDAA 2025-12-04 19:57:35 -05:00
Scott Idem
484ea8c36c The Jitsi meetings and most settings are working well enough for IDAA members to use for now. 2025-12-04 15:37:04 -05:00
Scott Idem
c1a440df6c Quick save of changes for IDAA 2025-12-04 11:24:39 -05:00
Scott Idem
0fcd4e4cdf Work on Jitsi settings 2025-12-02 19:07:55 -05:00
Scott Idem
0987cd6ad9 style: Apply Prettier formatting with 4-space indentation
Applied consistent code formatting across the project using Prettier, now configured to use 4-space indentation instead of tabs.
2025-11-18 18:40:50 -05:00
Scott Idem
7e1eaba3bc feat: Migrate ESLint to flat config and resolve initial linting errors
Migrated the ESLint configuration to the new flat config format ()
and addressed several initial linting errors.

Key changes include:
- Updated ESLint configuration to treat  as warnings instead of errors.
- Fixed  errors in  by declaring  and .
- Corrected  error in  by using  instead of an out-of-scope .
- Resolved  error in  by replacing the undefined  directive with the  component.
- Addressed  errors in  by replacing  with  and  with .
- Fixed  errors in  by importing necessary modules (, , ) and adding missing props (, , , , ).
2025-11-17 18:46:54 -05:00
Scott Idem
616d6a4404 Another moderator 2025-11-03 17:51:48 -05:00
Scott Idem
c42ab0bfa0 Temporary bug fix for the file type reports. Minor update for IDAA and Jitsi iframe. 2025-09-24 18:00:12 -04:00
Scott Idem
08bc3142e6 Updates for Jitsi and IDAA 2025-09-23 14:41:06 -04:00
Scott Idem
7490545ba7 Work on Jitsi for IDAA 2025-09-23 11:23:05 -04:00
Scott Idem
5527bce327 Saving changes from last night related to Jitsi. 2025-09-19 09:30:13 -04:00
Scott Idem
7a0ba7d571 More work on proof of concept for Jitsi meetings in IDAA's Novi site. 2025-09-18 18:47:25 -04:00
Scott Idem
811876e36a This new Jitsi page is working well. Now with URL params. 2025-09-18 16:54:46 -04:00
Scott Idem
7fd3ef4f63 Work on Jitsi for IDAA in the Novi site. 2025-09-18 15:52:45 -04:00
Scott Idem
8a80bb1a2f Working on bug fix for viewing the IDAA Recovery Meeting list after viewing a Meeting. 2025-07-09 14:33:55 -04:00
Scott Idem
a691e7d22d Wrapping up for hte day 2025-06-30 18:58:06 -04:00
Scott Idem
4c0b1d4c50 Work on style updates. Able to create new meetings again. 2025-06-27 17:36:00 -04:00
Scott Idem
4ef2e7cd6b Work on getting the scroll to work for Safari.... 2025-06-26 16:56:00 -04:00
Scott Idem
c62507d484 Sort of bug fix and improvements for IDAA BB notifications and loading a post based on the URL param. 2025-01-28 11:51:27 -05:00
Scott Idem
7414cba165 Minor changes 2025-01-14 16:05:00 -05:00
Scott Idem
b64e7a6b8a Wrapping up for the day. It is pretty much Christmas... 2024-12-24 12:55:18 -05:00
Scott Idem
eee8a67235 Package updates. Point IDAA Recovery Meetings to prod server instead of dev. 2024-12-11 13:32:03 -05:00
Scott Idem
9813d0544f Minor updates for IDAA's Novi site. 2024-12-10 18:51:47 -05:00
Scott Idem
1f6793927b Upgrade to Svelte 5 and Vite 6!!! 2024-12-02 16:16:18 -05:00
Scott Idem
12b761e127 Minor updates before going live with the archives. 2024-11-26 10:53:49 -05:00
Scott Idem
42aa9d356f More work on authentication for staff and against the Novi UUIDs. 2024-11-22 10:32:46 -05:00
Scott Idem
cffde76c88 Re-work of site permissions and Novi permissions. 2024-11-21 14:19:08 -05:00
Scott Idem
28880f3160 Novi iframe related. Style improvements. 2024-11-19 13:12:49 -05:00
Scott Idem
77cc152837 General improvement for archive content creation. Better show/hide for enable and hide fields. Novi and iframe related updates. 2024-11-19 13:02:05 -05:00
Scott Idem
d1f37af192 Updated Novi iframe HTML content. 2024-11-15 17:01:21 -05:00
Scott Idem
d6d4c88728 Various changes... Should have saved last night. Also send_email should NOT default to test mode! 2024-10-03 12:45:28 -04:00
8e6ab2c223 More generic short_name for PWA 2024-04-09 04:30:22 -04:00
Scott Idem
19a6ff6dbe Work on expanding the routes 2024-03-04 20:55:48 -05:00
Scott Idem
9958724aaa I should have saved this long ago. Lots of changes. Learning a lot as well! 2024-02-16 20:12:19 -05:00
Scott Idem
17d99d080c Starting a new template using Svelte, SvelteKit, Tailwind, and Skeleton. 2024-02-15 09:49:35 -05:00