This task covers build the namespace filter only in the JavaScript UI. Adding values to URL params, showing a read-only version of the filter in the PHP UI, and respecting the filter value in the PHP UI will be handled in a separate task.
For this task, we will use the OOUI WindowManager and Dialog widgets rather than recreating them in Vue.
Design: desktop and mobile (current special:search for reference at the top)
Acceptance criteria:
- Create a dialog that allows the user to select their preferred namespaces
- Dialog options include 4 radio buttons: All, Discussion, General Help, and Custom
- Nested underneath the Custom radio button is all of the available namespaces for the tab, and they should be able to be selected individually as checkboxes. The user should be able to select as many as they'd like.
- If the user chooses the "Custom" option, they should not be able to click the dialog "Submit" button unless they have chosen one or more of the checkboxes below it.
- Once the dialog is dismissed, the user should be able to see an indication of their namespace filter selection in the filters bar above the search results. This should match the label of the radio button they selected in the dialog( "Namespace: Discussion", "Namespace: Custom", etc). The exact namespaces for custom searches do not need to be shown (this could crowd the UI).
- Mobile web is a full screen dialog
- Default is no longer an option
- "Remember selection..." is no longer an option
- If the user clicks "Submit", the search on the Categories and Pages tab should be filtered to only include their selected namespaces
- The user can click the "X" in the upper right hand corner to dismiss the dialog without saving their selections. The search results should not change.




