Skip to content

Add V102 smart catalogues migration and multilang debounce flow#500

Merged
ddon merged 1 commit intoBeamLabEU:devfrom
mdon:dev
Apr 20, 2026
Merged

Add V102 smart catalogues migration and multilang debounce flow#500
ddon merged 1 commit intoBeamLabEU:devfrom
mdon:dev

Conversation

@mdon
Copy link
Copy Markdown
Contributor

@mdon mdon commented Apr 20, 2026

  • V102: kind + discount_percentage on catalogues, discount_percentage + default_value / default_unit on items, new phoenix_kit_cat_item_catalogue_rules table with CHECK constraints, UNIQUE (item_uuid, referenced_catalogue_uuid), and ON DELETE CASCADE on both FKs. Idempotent up/down; partial index on kind='smart'.
  • MultilangForm: trailing-debounce attach_hook/4 + client-side skeleton toggle via composed JS. Rapid language-tab clicks no longer flash stale content or re-mount non-translatable fields.
  • Core form components (input/select/textarea/checkbox): realign class attr so it merges onto the styled element (input / daisyUI select wrapper / textarea / checkbox). <.input> gains wrapper_class for the outer phx-feedback-for div — matches the Phoenix 1.7 generator convention.
  • AGENTS.md: document the Core Form Components and Multilang Form Components sections, including the wrapper-scope rule and why language switching is client-side-first.
  • Bump to 1.7.99 and add test_load_filters / test_ignore_filters for Elixir 1.19 mix test hygiene.

- V102: `kind` + `discount_percentage` on catalogues, `discount_percentage` +
  `default_value` / `default_unit` on items, new
  `phoenix_kit_cat_item_catalogue_rules` table with CHECK constraints,
  UNIQUE (item_uuid, referenced_catalogue_uuid), and ON DELETE CASCADE on
  both FKs. Idempotent up/down; partial index on `kind='smart'`.
- MultilangForm: trailing-debounce `attach_hook/4` + client-side skeleton
  toggle via composed JS. Rapid language-tab clicks no longer flash stale
  content or re-mount non-translatable fields.
- Core form components (input/select/textarea/checkbox): realign `class`
  attr so it merges onto the styled element (input / daisyUI select wrapper
  / textarea / checkbox). `<.input>` gains `wrapper_class` for the outer
  `phx-feedback-for` div — matches the Phoenix 1.7 generator convention.
- AGENTS.md: document the Core Form Components and Multilang Form
  Components sections, including the wrapper-scope rule and why language
  switching is client-side-first.
- Bump to 1.7.99 and add test_load_filters / test_ignore_filters for
  Elixir 1.19 mix test hygiene.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ddon ddon merged commit b265090 into BeamLabEU:dev Apr 20, 2026
ddon pushed a commit that referenced this pull request Apr 20, 2026
Covers three merged PRs since 1.7.98:
- #498: V100 staff + V101 projects migrations
- #499: MediaBrowser Embed macro, selection menu/bulk download, admin
  attr, drag-drop file→folder move, toggleable search, drag-drop upload
  at any folder level, unified sidebar/content card, site icon + tab
  title + logo settings
- #500: V102 smart-catalogue + discount migration, multilang debounce
  flow (attach_hook + client-side skeleton toggles), core form
  class/wrapper_class realignment, CSS sources abs-path fix, Elixir
  1.19 test filters, AGENTS.md core form + multilang docs + CHANGELOG
  ownership rule

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@ddon ddon mentioned this pull request Apr 20, 2026
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants