Add owner-only Settings tab to article view - #310
Draft
pedrogaudencio wants to merge 14 commits into
Draft
Conversation
* 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #313
AI Disclosure
Co-authored with: Opus 5