As part of the reproducibility project, I am working on improving the UX of applying JSON recipes (in the "History > Apply" dialog).
One feature I have implemented last month is the ability to adjust the column names mentioned in a recipe, so that they are compatible with the project the recipe is applied to. This means:
- mapping any columns read by the recipe to columns already existing in the project;
- giving names to columns created by the recipe, so that those names do not exist yet in the project.
Currently, the UI for this looks like this (for an example recipe taken from this tutorial):
Beyond the layout and wording, which can be improved I'm sure, I'd be interested to read what you think about the best way to select existing columns (in the first "Required columns" section). At the moment it's using simple text fields where the user needs to type the name of an existing column, but I think that would be improving, to help the user select a valid column name. I can think of multiple ways:
- adding an auto-complete widget like for selecting reconciliation entities, adapted to work for columns,
- no auto-complete widget, but some visual indication of whether the column name is valid or not (such as a green checkmark / red cross on the right-hand side of the field). The same sort of validation could be used for the created columns (which are required not to exist in the project);
- using a UI similar to the Wikibase schema, with drag-and-drop of columns.
I think it would be useful to develop some UI elements that we would reuse in other places of the UI, to have a consistent experience around selecting columns.