Skip to content

feat(publishing): delete a Design content list - #5147

Merged
natechadwick-intsof merged 3 commits into
mainfrom
feat/issue-5135-delete-content-list
Oct 4, 2026
Merged

natechadwick-intsof merged 3 commits into
mainfrom
feat/issue-5135-delete-content-list

Conversation

@natechadwick-intsof

@natechadwick-intsof natechadwick-intsof commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

PublishingShell Design can delete one content-list definition. Confirm calls DELETE …/publishingdesign/contentlists/{id} and the row disappears only after that call succeeds. Cancel does not call the server. HTTP 400, 403, and 409 (including a list still associated with an edition: Content list is in use) stay in the editor and leave the row.

This does not remove an edition association (#5108) and does not replace content-list save (#4676). Parent: #4531. Slice: #5135.

Operator: Grok: night-issue-prs (model grok-4.7)

Fixes #5135

Test plan

  1. H2 QA: python docker/scripts/perc-devctl.py qa-up --skip-image-build --then-qa-deploy-webui, then qa-health.
  2. Open Publish → Design → Content lists. Add a content list, open it, Delete, confirm. The editor closes and that name is gone.
  3. Open another list, Delete, dismiss the confirm. No DELETE is sent; Back still shows the row.
  4. Stub DELETE as 400, 403, and 409. The alert shows the message and the row remains.
  5. Associate a list with an edition, then delete the definition. Expect HTTP 409 Content list is in use and the definition remains.

Checklist

  • Product documentation — updated product-docs/8.2/admin/publishing.md (Delete a content list)
  • Unit / module tests — Vitest for delete confirm/cancel/400/403/409 and list removal; sitemanage tests for unassociated delete, associated 409, 403, and 400
  • WebUI + Playwright — modules/perc-qa-automation/frontend/tests/publishing/designContentListDelete.spec.js (3 passed on H2)
  • Build gates — standalone clean install for projects/sitemanage, WebUI, and modules/perc-qa-automation (no skipTests)
  • Cross-platform — N/A (no new filesystem path joins)

Build evidence

  • modules_built: projects/sitemanage, WebUI, modules/perc-qa-automation
  • downstream_checked: none (no final/sealed and no public signature change)
  • cd projects/sitemanage && rtk mvn clean install — BUILD SUCCESS. Tests run: 3383, Failures: 0, Errors: 0, Skipped: 125. JAVA_HOME=/usr/lib/jvm/java-21-openjdk.
  • cd WebUI && rtk mvn clean install — BUILD SUCCESS. Java tests run: 69, Failures: 0. Vitest: Test Files 636 passed, Tests 5818 passed.
  • cd modules/perc-qa-automation && rtk mvn clean install — BUILD SUCCESS. Surefire: No tests to run (Playwright is the C5 gate, not this module's Surefire suite).

UI proof (C5)

  • python docker/scripts/perc-devctl.py qa-up --skip-image-build --then-qa-deploy-webui
  • TEST_CMS_URL=http://127.0.0.1:9993 QA_CMS_HOST_PORT=9993 container perc-matrix-cms-h2
  • Deploy: qa-deploy-webui then qa-deploy-war-jars (sitemanage + perc-system SNAPSHOTs, in-cell Jetty restart). Not docker restart.
  • python docker/scripts/perc-devctl.py qa-health — RESULT:OK HTTP:200 HEALTH:healthy
  • cd modules/perc-qa-automation/frontend && npm run test:surface -- --path tests/publishing/designContentListDelete.spec.js
  • Playwright: 3 passed (4.4s). console-clean=yes (spec fails on pageerror/console error). server.log-clean=yes (no ERROR/FATAL in the test window).

Pre-push local code review

Erlang review — PR #5147

Scope

  • Persona: erlang 0.1.1
  • Persona source: /home/nate/.local/share/mkd/agents/erlang
  • Status: mkd-code-review 0.1.18, pack percussion, --gate advisory, --git-base origin/main
  • PR: feat(publishing): delete a Design content list #5147
  • Base: origin/main
  • Head: 2c0c160
  • Reviewer: independent Erlang (did not author the PR)
  • Title: feat(publishing): delete a Design content list

CLI stdout (mkd-code-review analyze --format markdown)

Summary

Machine analysis found 2 finding(s), 0 bug(s).

Scope

  • Base: origin/main
  • Head: HEAD
  • Files: 11 analyzed
  • In-diff: 1 finding(s); preexisting: 0
  • Persona: erlang 0.1.1
  • Persona source: /home/nate/.local/share/mkd/agents/erlang

Recommendation

approve

Gate

  • Blocking bugs: 0
  • May commit/push: yes

Issues

Issue 1 -- Severity: suggestion

  • File: projects/sitemanage/src/main/java/com/percussion/publishingdesign/impl/PSPublishingDesignRestService.java:1461 (in-diff)
  • Rule: complexity.cognitive
  • Tool: arborist-metrics
  • Description: Function rejectContentListInUse cognitive=22 (max 15), cyclomatic=16 (max 15)
  • Suggestion: Extract helpers, reduce nesting, use guard clauses (see CODE_STANDARDS).
  • Status: open

Issue 2 -- Severity: suggestion

  • File: review

  • Rule: llm.error

  • Tool: llm

  • Description: model ollama-dev-coder failed: http: status 500 Internal Server Error body {"error":{"message":"llama-server process has terminated: exit status 1: cudaMalloc failed: out of memory\nalloc_tensor_range: failed to allocate CUDA0 buffer of size 5064192000\nerror loading model: unable to allocate CUDA0 buffer","type":"api_error","param":null,"code":null}}

  • Status: open

Erlang disposition

Independent review (did not author the PR). mkd-code-review 0.1.18, pack percussion, --gate advisory, --git-base origin/main. Ollama dev-coder failed with CUDA OOM; machine findings were kept.

No in-diff bugs. The only machine row is cognitive complexity of rejectContentListInUse (cognitive 22 / cyclomatic 16), a suggestion. findAllEditions("") returns every edition (blank filter is not a site filter). Delete runs only after requireDesignWrite, a loaded list, and no edition link; HTTP 409 does not call deleteContentLists. The editor calls onSaved only after DELETE succeeds, which closes the editor and reloads the list. Cancel does not call the server. Tests cover 400, 403, 404, unassociated delete, and in-use 409. No rule-file diff.

Recommendation: approve.

PublishingShell Design confirms before DELETE. Cancel does not call the
server. HTTP 400/403/409, including a content list still associated with
an edition, stay on the editor and leave the row.

Fixes #5135

> Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs.
Machine review: 0 blocking bugs. Cognitive complexity on the in-use
check is a suggestion. Residual LLM failed on CUDA OOM; machine findings
kept.

> Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs.
Record the mkd-code-review advisory pass for Design content-list delete. No in-diff bugs. Complexity of the in-use check is a suggestion.

> Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang.
@natechadwick-intsof

Copy link
Copy Markdown
Collaborator Author

Independent Erlang LGTM. mkd-code-review 0.1.18 found no in-diff bugs. rejectContentListInUse complexity is a suggestion. Delete is after the design-write check and an edition-link scan; 409 does not delete. The editor reloads only after DELETE succeeds. Full report is in the PR body and docs/ai-generated/code-reviews/pr-5147-erlang.md (fef7cd3).

Co-Authored by Grok Build 1.0.46 using grok-4.7 with agent night-issue-prs-erlang.

@natechadwick-intsof
natechadwick-intsof merged commit 0c45433 into main Oct 4, 2026
6 checks passed
@natechadwick-intsof
natechadwick-intsof deleted the feat/issue-5135-delete-content-list branch October 4, 2026 08:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

model:grok-4.7 Session model grok-4.7 operator:grok Changes authored by Grok operator:night-issue-prs night-issue-prs workflow

Projects

None yet

Development

Successfully merging this pull request may close these issues.

issue 4531 slice 68: PublishingShell delete a content list

1 participant