-
-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Improve column selection in CSV import window #458
Description
Thanks so much to @seatedscribe for the work to implement CSV import! I just built from source to try it out and managed to successfully import a CSV file exported from Firefox. This is a really great step forward to lowering the barrier to switching to KeePassXC. :)
I have one piece of feedback: I found the way that columns are selected to be really quite frustrating in practice since in my case I had to reorder multiple columns and the whole thing became a bit of a memory game. The crux of the issue is that when a column is changed, the data it contains is replaced with the contents that should be under that header, making it necessary to memorize what used to be in that column for when you need to specify that column later. The more columns you update, the harder it becomes to remember. Maybe it was because I was tired, maybe it's because I'm dumb, but I personally had to start over a couple of times before getting it right, which was a bit frustrating. ;)
In case the preceding description of the problem isn't clear, here's a walk through to hopefully make the issue more concrete:
Say I start out with:
Group Title Username Password URL Notes -------------------------------------------------------------------------------------------- https://foo.com jwatt pass1 https://foo.com/form-target Foo Login usernameField https://bar.com jwatt pass2 https://bar.com/form-target Bar Login userField ...
Now say I update the "Group" dropdown to select "Not present in the CSV file", the display now changes to:
Group Title Username Password URL Notes
------------------------------------------------------------------------------------------
jwatt pass1 https://foo.com/form-target Foo Login usernameField
jwatt pass2 https://bar.com/form-target Bar Login userField
...
Then I update the "Title" dropdown to select "Column 5", and the display changes to:
Group Title Username Password URL Notes
----------------------------------------------------------------------------------------
Foo Login pass1 https://foo.com/form-target Foo Login usernameField
Bar Login pass2 https://bar.com/form-target Bar Login userField
...
Now I switch to the "Username" dropdown and look for that data in the table, but it's gone. Since I was paying attention to what data I needed, not what data I was hiding, I've already forgotten which column in the source data contained the usernames. I reset the columns and start over and the next time round I remember that it's column 2 that contains the usernames, so I set the "Usernames" dropdown to "Column 2":
Group Title Username Password URL Notes
----------------------------------------------------------------------------------------
Foo Login jwatt https://foo.com/form-target Foo Login usernameField
Bar Login jwatt https://bar.com/form-target Bar Login userField
...
Moving on to the "Password" dropdown I manage to remember that that's the column I just hid, so I set the dropdown to "Column 3":
Group Title Username Password URL Notes
---------------------------------------------------------------------
Foo Login jwatt pass1 Foo Login usernameField
Bar Login jwatt pass2 Bar Login userField
...
Now I'm at the "URL" dropdown and, since that was a column I hid several steps ago, I've again completely forgotten which source column I need.
Frustrated, I start over from the beginning once again, telling myself there has to be a better system for users to specify which columns contain which data in the CSV.
This time I write out what each column in the source data contains on a piece of paper in advance and, yay, succeed. :)