inventaire-client
inventaire-client copied to clipboard
allow to edit many entities at once
There could a layout to edit many entities at once, in a way somewhat comparable to the mass edit now possible for inventory items. That tool could work like this
- Step 1: find entities to edit via (pseudo) graph queries. Ex:
- add all the works of an author or of a serie
- add all the editions of a publisher collection
- etc
- Step 2: select/unselect entities to edit among those results
- Step 3: make changes to all the selected entities. Ex:
- add/remove claims
- transform labels or titles/subtitles
In the beginning, Step 1 could be made a little simpler by integrating it in existing pages rather than having a specific page for the tool with an empty state.
For instance on the page of an author, there could be an “Edit all” button next to “Works” and another next to “Series”. Or on the page of a work, a button next to “Editions”. That would be a little simpler than coming up with a query interface, even though that could be a nice thing to have in the future.
For the edit page itself, there are a few directions it could go. Some possibly relevant existing interfaces I’m thinking of are for instance:
- music tag editors (when selecting several files, how they show what’s the same between files, what is different, and how they allow to overwrite a tag for all files)
- multiple media upload on Wikimedia Commons (you get a page to edit the information associated to each file, each file with its own fields but with an option to copy the content of one field to all others)
I could come up with some sketch some time.
I wrote a simple browser macro for mass editing and inspection. If I visit an authors page and run the script it finds all works by that author, then a list of all editions of those works, removes duplicates, opens a new browser window and opens one tab for each edition's editing page. It does the same for editions of works in a series. Then I manually do what I wanted to do in each tab and close the window.
Linked to this issue:
- a server side possible implementation: https://github.com/inventaire/inventaire/issues/400
- a staled PR which could be modified from a resolver context to a client context https://github.com/inventaire/inventaire/pull/386
I’ve been doing a bit of data cleanup/completion across authors/series/works/editions recently, and as much as Inventaire is much nicer to work with than Wikidata for many things, a batch editing tool is really missing! (the /cleanup tool is already something nice, but only usable for some specific use cases)
Here are some thoughts. I’m afraid you’re getting scans of my sketchbook, sorry for the mess! It’s much quicker than firing up Penpot/Figma or dev tools 😅 All very rough and early.
Three directions basically:
- Variant A: The table (similar to a spreadsheet, as straightforward as it gets but with some small features on the fields such as copying to all other entities or highlighting different values, could get useful!)
- Variant B: The cards (pretty much to A reflowed to a different layout, could live alongside it with a media query and/or a switch, similar for instance to uploading multiple files on Wikimedia Commons)
- Variant C: The assistant (trying to make a more helpful tool, summarise/synthesises what matters and provides quick access to what you might actually want to do or see across the data table)
I could use any of the three really. I do have a thing for variant C as I feel it would cover most use cases and be very quick to operate! Also it’s ability to apply changes to only a selection of the complete list.
Let me know what you think 😊
One more thought: even if the UI should make it as clear as possible what changes are made and ask you to confirm anything that could lead to large changes of data, it could be useful to consider Saving/Cancelling on a batch edit tool, or Undo. It’s not the way Inventaire usually works, but could be a way to prevent “Oops I accidentally copied over the same title over all the entities and it’s been all pushed to Wikidata already”.