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 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:
| Main table | Dialogs
| {F66713095} | {F66713098}
Open Questions:
- max length of labels
- progressive enhancement question - is this a single page application? (are we using Codex)
Tasks (to be created as separate Phab tasks once we've agreed on things):
* Add new feature flag `$wgEnableWatchlistLabels`, defaulting to false.
* Create database schema for watchlist labels (adding two new tables, linking `watchlist` to labels, by actor).
* Add new special page `Special:WatchlistLabels` containing an empty Vue app.
* Add `action=query&list=watchlist` API endpoint for listing labels.
* List all existing labels on `Special:WatchlistLabels`.
* Add `action=watchlist-label&action=[create|edit]&label=x` API endpoint for creating labels.
* Add ability to create a new watchlist label via a popup on `Special:WatchlistLabels`.
* …