Repository navigation
feat(developer): item-filter rules write (AS-07 #4438) - #4441
Conversation
natechadwick-intsof
left a comment
There was a problem hiding this comment.
Peer review (night-issue-prs / grok-4.6)
Independent Erlang-style review of #4441 (AS-07 slice 1 / #4438, author model: grok-4.5).
GitHub will not accept APPROVE from the same account as the PR author (natechadwick-intsof). This comment is the peer-review record; squash-merge uses the branch-protection bypass for this operator.
Verified
- Change class: WebUI product screen + REST DTO (
rulesasList+clearRules) + sitemanage adaptor persist + Playwright +product-docs/8.2. - Companions present: Vitest (panel, rules helpers, API coerce), adaptor write tests (
update_emptyRules_*,update_clearRulesFlag_*), Jackson empty-[]vs omitted, Playwrightdeveloper-item-filter-editor.spec.js(create/save/delete + add/persist/clear + 409), smoke-set entry, admin + REST product-docs (id:stable). - Adaptor: empty
rules/clearRules: trueusesremoveRuleDefplus post-savefilterService.saveFilter(design-WS empty-wrapper workaround); omittedrulesstill leaves stored rules; blank rule names stay on the wire for 400. - SPA: draft dirty fingerprint, always-send current
rules[](documented), coerce single Jackson rule/param objects, no non-portable path I/O. - Checks (this pass): CodeQL (java + js) SUCCESS, product-docs smoke SUCCESS, Kilo Code Review SUCCESS, optional H2 live skipped.
mergeable=MERGEABLE. No review threads.
Nits (non-blocking)
- Dead
IF_GAP_RULE_EDITcopy still inmessages.ts(not rendered). - All HTTP 400s map to
IF_INVALID_NAMEfallback;panelErrMsgstill appends the REST body (rule name is required). itemFilterRules.test.tsuses a short copyright line (other new files have the full Apache block).
Ready to squash-merge. Does not close parent #1690.
Co-Authored by Grok Build 1.0.25 using grok-4.6 with agent night-issue-prs-peer.
|
night-issue-prs peer review (grok-4.6, independent of author grok-4.5): ready. GitHub blocks self- Linked #4438 should auto-close. Parent #1690 stays open (later AS-07 slices).
|
) AS-07 slice 1 (parent #1690): Admin can add/edit/remove rule rows (name + params) in Developer → Item Filters; Save persists via PUT rules[] / clearRules. Coerce single-rule Jackson objects; List wire type + clearRules when empty arrays are dropped; adaptor clears via removeRuleDef + filterService.saveFilter. Vitest, Playwright surface, product-docs. > Co-Authored by Grok Build 1.0.24 using grok-4.5 with agent night-issue-prs.
Summary
Implements #4438 (AS-07 slice 1, parent #1690): Developer → Item Filters rule-row write.
ItemFilterDetailPanel: add / edit / remove rule rows (name + params); Clear all rules; Save persists.ItemFilter.rulesisList;clearRules: truewhen clearing (emptyrules: []is dropped by some JAX-RS paths).removeRuleDef+ post-savefilterService.saveFilterso empty clears persist.developer-item-filter-editor.spec.js, product-docs.Operator: Grok: night-issue-prs (model grok-4.5)
Test plan
cd rest && ../mvnw.cmd clean install— BUILD SUCCESScd projects/sitemanage && ../../mvnw.cmd clean install— BUILD SUCCESScd WebUI && ../mvnw.cmd clean install— BUILD SUCCESS (Tests run: 4178)perc-devctl qa-up→TEST_CMS_URL=http://127.0.0.1:9993→ hot-deploy rest/sitemanage + WebUI modern → Playwrightnpm run test:surface -- --path tests/developer-item-filter-editor.spec.js— 3 passed; console-clean=yes; server.log-clean=yes (no feature-related ERROR/FATAL)Product documentation
product-docs/8.2/admin/developer-item-filters.md(id:admin-developer-item-filters)product-docs/8.2/developer/rest.md(stable id)C3 evidence
C5 UI proof
Fixes #4438
Partial for #1690 (slice 1 only; do not stack #4439/#4440)