Skip to content

Add owner-only Settings tab to article view - #310

Draft
pedrogaudencio wants to merge 14 commits into
masterfrom
article-settings
Draft

Add owner-only Settings tab to article view#310
pedrogaudencio wants to merge 14 commits into
masterfrom
article-settings

Conversation

@pedrogaudencio

@pedrogaudencio pedrogaudencio commented Aug 8, 2026

Copy link
Copy Markdown
Collaborator
  • Archive article
  • Delete article
  • Transfer article ownership

Closes #313

AI Disclosure

Co-authored with: Opus 5

@pedrogaudencio pedrogaudencio self-assigned this Aug 8, 2026
* adds three Fomantic modals to the Article settings template with warning notice, description, confirm inputs, and cancel/red-confirm actions
* adds initArticleSettings JS trigger
* adds supporting en-US locale strings; UI only, no backend wiring
* archive modal: new header, warning text, owner/subject confirmation field with case-sensitive gating of the red submit button
* render sticky flash success message
* post archive form from article settings modal with CSRF + redirect_to_article
* redirect back to the article settings view and flash the owner-linked success message
* warning notice on archived article view; Edit tab and editor pane removed from the DOM
* RepoMustNotBeArchived returns 403, and now guards the article file-editor routes
* integration coverage for the notice, hidden affordances and 403 on editor routes
* notice rendered below the repo header so it shows only on article view mode
* add ArticleName to RepoSettingForm; article delete modal now posts action=delete with a case-sensitive <owner>/<subject> confirmation
* delete the subject when its last article is removed; redirect to the owner profile
* add scrollIntoViewIfNeeded() and settle wait before clicking #submit-changes-button
* use {force: true} to bypass .repo-header/.secondary-nav pointer interception on Pixel 5
* matches existing mobile-click pattern in submit-change-request and first-article E2E tests
* root cause: Node 26 hangs Playwright 1.55.0's bundled zip extractor; the forked child never settles its extract promise
* provisioned browsers out of band via system unzip + INSTALLATION_COMPLETE marker; installed missing apt libs
* make test-e2e-sqlite now completes; Mobile Chrome target test passes on all runs
* resolve the transfer recipient by first and last name, rejecting unknown, ambiguous and self targets
* confirm with a case-sensitive <owner>/<subject> input and swap the section for a cancel form while pending
* report through article-scoped flash messages, linking the recipient profile on success
* add integration coverage for the start/cancel flow and its failure modes
* search transfer candidates by username or full name, excluding the owner and existing owners of the same subject
* gate the transfer button on both a picked candidate and the case-sensitive confirmation
* cover the endpoint's matching, exclusions and permission with integration tests
* render the picked owner as avatar plus username, with a close icon to deselect
* reset the field on clear and on modal reopen, keeping the submit gating intact
* assert the candidates endpoint returns an avatar URL
* populate transfer data in the subject-based repo assignment
* add an accept/reject banner visible to the recipient in every article mode
* cover the banner's visibility in the transfer integration test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement Article Settings in the Article View

1 participant