MediaWiki-extensions-CommunityConfiguration includes support for a form field that allows the user to select an arbitrary number of page titles. To aid the user, it offers autocompletion, which suggests pages existing on the wiki. This field looks like this:
However, the autocompletion does not always provide the title the user wants to add. This can happen, because:
- the user wants to add a title that does not exist yet (adding a red link), or
- the user wants to add a title on another wiki (an interwiki link [which are not suggested], for example en:Help:Contents on Czech Wikipedia).
In other words, CommunityConfiguration requires a component that:
- offers autocompletion from the existing articles on the wiki,
- allows the user to enter their own value, regardless of what the autocompletion suggests
Currently, CommunityConfiguration implements this as PageTitlesControl.vue (source code), which is a combination of ChipInput and Menu. This forces the Growth-Team to maintain their own autocompletion logic, even though Codex has autocompletion implemented in MultiselectLookup.We are unable to use MultiselectLookup directly, because MultiselectLookup restricts the user to the values offered by autocompletion.
@egardner summarized this situation as:
The original idea with Lookup (and MultiSelect, which builds on top of Lookup) was that we don't want arbitrary input from the user, we want to ensure that they choose from a provided list of values. We had always envisioned Combobox as the component to use when we wanted to allow the user to either select a pre-defined value from a list OR to input their own custom value. So if we were going to be strict about this distinction, maybe the answer would be that Codex needs a MultiSelectCombobox component, and we might also need to update Combobox itself to ensure that it can load data from a remote source in the manner that Lookup does. So @Urbanecm_WMF I do think you have identified a gap in our current component offerings.
TL;DR – maybe we need a MultiSelectComboBox component in Codex
Within this task, addition of MultiSelectComboBox to Codex should be considered (and ideally, implemented).
There is related conversation about this task in Wikimedia Slack.
