User story:
> As a user of a large watchlist, I want to be able to prepare for labelling my watched pages by adding, editing, and removing watchlist labels via Special:WatchlistLabels
This story is concerned with adding the **watchlist label manager** special page. It covers adding, editing, and removing labels in a table on the new special page. The interface is not implemented in Codex.
Designs are [[https://www.figma.com/design/CdyroPkkcT7GJA9bwno0Rq/WE1.4-Task-priotization?node-id=327-15767&t=slljPYZk2ERhihoJ-1 | available on Figma]], and screenshots from there are copied here for reference:## Acceptance Criteria
| Main table | Dialogs* View list of existing labels for the current user.
| {F66713095} | {F66713098}* Add labels one at a time to the list.
* Edit and delete existing labels, one at a time.
Acceptance Criteria:
- add to existing tab to manage labels
Open Questions:
- max length of labels
Tasks (to be created as separate Phab tasks once we've agreed on things):## Notes
* Add new feature flag `$wgEnableWatchlistLabels`, defaulting to false* No API is required.
* Create database schema* We'll use the standard MediaWiki PHP systems for watchlist labels (adding two new tables,creating the pagination, lists, forms etc. linking `watchlist` to labels,and not an SPA Vue app. by actor)This is because it likely be quicker and simpler to build.
* Add new special page `Special:WatchlistLabels` containing an empty Vue appThe form's displayFormat will be `codex`, but this has some limitations. This form is just a single text field though, so shouldn't be too complicated.
## Tasks
Tasks (to be created as separate Phab tasks once we've agreed on things):
* Add new feature flag `$wgEnableWatchlistLabels`, defaulting to false.
* Add `action=query&list=watchlist` API endpoint for listing labelsCreate database schema for watchlist labels (adding two new tables, linking `watchlist` to labels, by actor). This is a separate #story, and a prerequisite to this one.
* List all existing l* Add new special page `Special:WatchlistLabels on `Special:Watch` (probably a QueryPage) that listLs all labels`.
* Add `action=wnew special page `Special:Watchlist-lLabel&action=[create|edit]&label=x` API endpoint for crea` (probably a FormSpecialPage) for creating and editing individual labels.
* Add ability to create a new watchlist label via a popup on `Special:WatchlistLabels`. means of deleting individual labels.
## Designs
Original designs are [[https://www.figma.com/design/CdyroPkkcT7GJA9bwno0Rq/WE1.4-Task-priotization?node-id=327-15767&t=slljPYZk2ERhihoJ-1 | available on Figma]], and screenshots from there are copied here for reference:
| Main table | Dialogs
* …| {F66713095} | {F66713098}
These still need to be updated to match what will actually be built.