We currently have two different widgets for editing a list of categories, with different but largely overlapping functionalities. We should only have one.
`ve.ui.MWCategoryWidget` is used by VisualEditor, in the Page options → Categories dialog. `mw.widgets.CategorySelector` is used by UploadWizard on the "Describe" step, and in the file upload dialog (`mw.ForeignStructuredUpload.BookletLayout`, which is used by VisualEditor and WikiEditor).
| mw|| `mw.widgets.CategorySelector | ve` | `ve.ui.MWCategoryWidget` |
| {F4582307} | {F4582298} |
Differences:|---|---|---|
* Different design (mw.widgets.CategorySelector uses CapsuleMultiselectWidget, ve.ui.MWCategoryWidget uses ButtonWidgets+TextInputWidget)|Screenshot| {F4582307} | {F4582298} |
* Different API|Widgets used for autocompletion (action=opensearch vs action=query/allcategories)|`CapsuleMultieSelectWidget`|`ButtonWidgets`+`TextInputWidget`+`Popup`|
* ve.ui.MWCategoryWidget makes it possible to set a sort key for each |API|action=opensearch|action=query/allcategoryies|
* ve.ui.MWCategoryWidget makes it possible to easily reorder entries [request for CategorySelector: {T108490}]|Can set sort key for category|{icon times color=red}|{icon check color=green}|
* mw.widgets.C|Can reorder categorySelector makes it possible to edit entries (rather than only delete or add them)ies|{icon times color=red} (requested {T108490})|{icon check color=green}|
* mw.widgets.CategorySelector makes it possible to easily view category pages [request for MWCategoryWidget: {T56656}]
Neither widget works well cross-wiki (CategorySelector kind of works but it's very hacky).|Can edit (not just delete)|{icon check color=green}|{icon times color=red}|
|Can view category page|{icon check color=green}|{icon times color=red} (requested {T56656})|
|Cross-wiki|{icon bomb color=green, This should be a core requirement for the unified one.spin} (hacky)|{icon times color=red}|