Background: The Worklist tab (task-7) needs to display the list of articles added to the event worklist. Data is loaded server-side (PHP), following the same pattern as the Contributions tab in EventDetails — NOT via a frontend REST API call. The table shows article title (as a clickable cross-wiki link) and date added, with pagination. The delete Actions column is NOT part of this task (it is added in T423732 ).
Type of story
- Front end / Backend
Acceptance criteria
- The article list is loaded server-side, no frontend REST call is made on initial page load.
- The table displays 4 columns: Article title (clickable link to the article on its wiki, cross-wiki), Wiki of the article, Username of who added it and Date added (formatted).
- Article title links may be cross-wiki (see T423632).
- Pagination controls are present and replicate the pagination approach used by the Contributions tab.
- When the worklist is empty, the table shows an empty-state message.
- The Actions column is NOT present in this task — it is added in T423732.
- The data loading mechanism should follow the same pattern as the Contributions tab.
Design
Messages and copy included
- For happy path:
- Message key: campaignevents-worklist-table-header
- Message text: "Worklist"
- Context: column header for the article title
- Message key: campaignevents-worklist-table-article-column-header
- Message text: "Page"
- Context: column header for the article title in the worklist table
- Message key: campaignevents-worklist-table-wiki-column-header
- Message text: "Wiki"
- Context: column header for the wiki of the article
- Message key: campaignevents-worklist-table-date-column-header
- Message text: "Added by"
- Context: column header for the username of who added the article
- Message key: campaignevents-worklist-table-username-column-header
- Message text: "Date added"
- Context: column header for the date added
- Message key: campaignevents-worklist-empty-state
- Message text: "No articles have been added to this worklist yet."
- Context: empty state message shown when the worklist has no articles
- Message key: campaignevents-worklist-table-header
- For unhappy path: NOT NEEDED
Depends on
- T423332 (Worklist store: persistence layer )
- T423612 (Worklist tab shell — the table renders inside it)
- T423632 Cross wiki investigation
- T423606 (Worklist feature flag gating must be implemented)
Testing required?
- Yes
- Minimum testing to pass QA:
- With feature flag ON: table renders articles with correct titles/dates; links are correct cross-wiki URLs; pagination works; empty state shows when needed.
- With feature flag OFF: covered by T423612 (Worklist tab is not shown).
- No JS errors on page load.
- Tested end-to-end in: task-9 (this task) and task-11 (which adds the delete column to this table)
Split patches suggestion
- Branch 1: Empty state + i18n
- Branch 2: Table + pagination + cross-wiki links + i18n
Gherkin scenarios
Feature: Article list table in Worklist tab
- Scenario: Table shows articles with title and date
- Given the Worklist feature flag is enabled
- And an event has articles in its worklist
- And I am viewing the Worklist tab on the EventDetails page
- Then I see a table with an "Article" column and a "Date added" column
- And each row shows the article title and the date it was added
- Scenario: Article titles are clickable cross-wiki links (see T423632)
- Given the Worklist feature flag is enabled
- And an event has articles from multiple wikis in its worklist
- And I am viewing the Worklist tab on the EventDetails page
- Then each article title in the table is a clickable hyperlink
- And the link points to the article on its correct wiki (cross-wiki URL see T423632)
- Scenario: Pagination controls work correctly
- Given the Worklist feature flag is enabled
- And an event has more articles in its worklist than fit on one page
- And I am viewing the Worklist tab on the EventDetails page
- Then I see pagination controls below the table
- When I click the next page control
- Then the next page of articles is displayed
- Scenario: Empty state is shown when worklist has no articles
- Given the Worklist feature flag is enabled
- And an event has no articles in its worklist
- And I am viewing the Worklist tab on the EventDetails page
- Then I see the empty state message instead of a table