Commit Graph

5 Commits

Author SHA1 Message Date
7255d34ae0 fix(17): WR-01 keep a menu entry's subtree and parent in its menu
- The admin refuses a parent from another menu than the one the form
  names (errors.parent_menu) instead of moving the entry to the parent's
  menu without a word; BeforeSave records the named menu
  (MenuEntry.RequestedMenuID).
- An entry moved to another menu moves its descendants in the same
  transaction, so the public tree no longer drops them.
2026-10-12 21:30:36 +02:00
43267de323 test(17-06): menu plugin unit tests
- TestAllowedURL and TestMenuTree (Docker-free): the URL scheme and
  target rules, BuildTree order, unreachable and looping entries, list
  and single registry types, generated children, locale alternates,
  left-out entries logged, the JSON shape
- TestMenuEntryModel (Docker-free): fillable, rules, filter scope
- TestMenuEntryBeforeSave, TestMenuAPI and TestMenuImport (Postgres):
  PHP beforeSave rules, D-16 API rules beyond the smoke test, import
  drops for page subtrees, foreign menus, missing parents, maps to
  nothing and unregistered types
2026-10-12 19:40:48 +02:00
33a65ad802 feat(17-04): public menu API with registry resolution, throttle bucket and README
- GET /_menu/api/v1/menus/{code}?locale=xx, anonymous, menu-public-api bucket (120/min per client IP)
- classes.BuildTree: published entries nested by parent, sort_order then id, scheme-checked URLs
- registry entries resolved through signpost with url_pattern as the item override and the locale's alternate
- list types keep stored URL and title, generated children follow stored ones; unresolvable entries left out
- TestMenuAPISmoke; README with API, CORS paths, import workflow and Winter adaptations
- go mod tidy records the test dependencies
2026-10-12 17:51:27 +02:00
e044bc7b7e feat(17-04): menu:import-winter with the D-05 type map and read-only export SQL
- link to url, blog_categories to all-journal-categories, --map old=new on top; page entries dropped
- entries of unknown types or stale registry references dropped with their subtree, one report line per dropped or remapped entry
- ids, menu_id, parent_id, nest columns and sort_order kept; setval for both tables; --force, --dry-run, empty files copy nothing
- scripts/winter-export-menus.sql and winter-export-entries.sql
- TestMenuImportSmoke
2026-10-12 17:35:30 +02:00
08f99b8aad feat(17-04): menu plugin admin with registry types, URL checks and tree reorder
- golem15.menu plugin, tables golem15_menu_menus and golem15_menu_menu_entries with the PHP columns plus a nullable url_pattern (D-02)
- MenuEntry BeforeSave ports PHP beforeSave: nest columns 0, menu from the parent, sort_order after the menu's last
- entry type dropdown: url, divider and the signpost registry types; reference depends on type through signpost.ReferenceOptions
- URL scheme allowlist (errors.url_scheme), target _self or _blank, menu and parent cycle checks
- menu filter, toolbar reorder/create/delete and config_reorder.yaml partitioned by menu
- navigation Menus with Menus and Menu entries, permission golem15.menu.manage_menu, en and pl phrasebooks
- TestMenuAdminSmoke
2026-10-12 17:30:50 +02:00