There are some aspects of the import process that I wish I could tweak, though I’m sure it’s way beyond my ability to mess with this on my own… Perhaps many would agree that these would be good areas to improve:
(1) I’d love better keyboard responsiveness in the import process, which might require making the import into an alert window.
- Cancel with ESCAPE? When the import is a mistake (say, the json has an error, or I didn’t realize “A tiddler with this title already exists”), I wish I could dismiss the import tiddler from the keyboard (perhaps with a further confirmation, analogous to how I can just hit “escape” key to back out of New Tiddler, confirming from keyboard with “return”).
- Confirm with RETURN? When there’s an import in the story river and all looks good, I wish I could confirm from the keyboard.
- Heck, why not have a keystroke to activate “batch edit” (with the Utility plugin by @Mohammad) while we’re at it?
- Tiddler-title edits could be better handled. In order to to rename the incoming tiddler (s), I reach for the cursor to hit the edit button (which is fine, probably hard to avoid) — but then focus is not automatically moved to the edit field. (Granted, keyboard can get me into that edit field with TAB, but why should that extra keystroke be needed?) Worse, I need to remember to reach for the mouse to confirm that new name. If I accidentally confirm “IMPORT” with the new name not yet confirmed, then — if I was renaming so as not to overwrite an existing tiddler — I have not only typed out this new desired name for nothing, but I’ve also lost my old tiddler. This is especially common when I’m dragging and dropping an image, since it gets imported with a default title, which I’ve already accepted (by failing to rename successfully — for exactly these reasons!) on some past occasion. (I’ve brought this up before, but I’m including here because it belongs under this heading.)
Presumably most of this responsiveness would be much easier if the import dropzone triggered something more like an alert, less like just another tiddler hanging out in the story river. After all, I pretty much always do want to follow up on that import step right away!
(2) Handling of duplicates (beyond the retitling issue above): It’s helpful that the import tiddler highlights (in pink) the apparent duplicate rows within a multi-tiddler import, say, from a large json file. It’s helpful that there’s a select-all and deselect-all button, but…
- It would be super-helpful to have a “deselect duplicate titles” affordance. Suppose I already have half of the tiddlers in an incoming json batch of dozens or hundreds (and have made changes on some/all of them, so overwriting would be terrible). I currently go through this mindless step of scrolling-mousing-clicking through to de-selecting exactly all the pink rows.
- Ignore true duplicates: Could it be easy for the import to inspect past the duplicate title flag to recognize whether or not ALL other fields match, so that identical incoming tiddlers can be visually recognized and or filtered automatically? (Perhaps certain fields could be configured as to-be-ignored for this purpose — creation/modification dates come to mind — to focus on whatever the user considers to be the fields that matter.)
- When incoming tiddlers are exact copies (assuming such detection is possible), could they be deselected by default?
- “Dovetail” import (OK, this is BIG STRETCH wishlist): have the import be able to recognize when the incoming tiddler and old tiddler have complementary info at the level of fields present — ignoring (or easily flagging) any fields where there’s substantive conflict. For example, the incoming tiddler (from a public database-generated json) has a field with card-catalog-id numbers and other technical data I want. My existing tiddler with the same name lacks that info, but has a tags field that I’ve already populated with things that matter to my own projects. Imagine the import dialogue offers a “dovetail” checkbox column which means something like “Add new field/value data to existing tiddler, without overwriting any existing fields?” Yes please!
What say you all? Would there be any reason not to develop the import UI toward one or both of these kinds of flexibility? Any serious technical or performance obstacles in the way?