question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Improve UX for the Force Upload [one time force upload]

See original GitHub issue

I’m probably hitting an issue created by “Safe Upload” feature #923 (cc @arnohovhannisyan) as I just updated keybindings.json and got this:

Screenshot 2019-09-05 at 10 30 14

I currently use a single computer, the Gist is 14 days old and I have just updated keybindings.json, so I think it’s a bug.

Even if it isn’t a bug, I’d like to comment on the UX in general because I find it relatively confusing:

  • The dialog doesn’t tell me which of the two cases I’m in. Same versions mean no risk in forcing an upload; newer Gist mean high risk of overwriting my data.
  • Even if I wanted to forcibly upload the settings now, I don’t like that the way to do it is to permanently enable forceUpload in my settings. I’d much rather just invoke a one-time “Force Upload” command and be warned next time again (because, again, one of the scenarios is high-risk).

🌴 Visual Studio Code Version : 1.38.0 🌴 Code Settings Sync Version : 3.4.2

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:4
  • Comments:10 (6 by maintainers)

github_iconTop GitHub Comments

3reactions
karl-lunargcommented, Sep 5, 2019

Yes, i agree with @borekb we can add one more button in this popup.

  1. Yes
  2. Always Force Upload ( text can be improved )
  3. Don’t Show This again.

Since we’re talking about changing the UX anyway, how about making it simpler instead of more complex and potentially confusing?

I’m thinking that the popup should just say: “The settings in the Gist were changed after you last downloaded them. Upload anyway?”. And there would be two buttons: Yes and No. Closing the popup would be the same as No. No side effects.

The popup would only display when there is potential for data loss, as is the case here. As such, it should ALWAYS be displayed when there is this potential unless the user explicitly requests ForceUpload.

So:

  • There is no “Don’t show this again” setting or UX button to set this setting. The dialog won’t show if the user explicitly set ForceUpload in the settings because the prompt isn’t needed to get the “Yes” response implied by ForceUpload being on.

  • There is also no button in the popup UX to set the ForceUpload setting. There is already a way to do this via the normal settings. If a person repeatedly hits the Yes button on the proposed UX, they can set ForceUpload to avoid the popup if they intend to force all the time.

I think that this approach has less ambiguity and fewer side-effects.

Does this sound good to everyone?

If we settle on something, I can try working on the implementation. But I am a Typescript and vs code internals noob. I think that there will be a lot of localization and documentation work, so it could take a while.

2reactions
karl-lunargcommented, Sep 5, 2019

Yes, version 3.4.2 definitely had a regression. PR #1026 was just approved for 3.4.3 which fixes this particular refusal to upload, but the PR does not change the UI.

BTW, I’ve been working around the refusal to upload problem by going ahead and letting the dialog set Force Upload and then immediately resetting Force Upload to off in my local settings. I’m sort of glad that it didn’t update the Force Upload setting in the Gist. In any case, this should be better in the next release.

As far as the UX goes, I agree with @borekb. I like how you get a status message when you try to Download but already have the same settings as the Gist. Perhaps the same should be done for Upload.

The Upload path in the extension compares the local settings with the Gist settings and therefore knows if they are different or not.

The Upload logic could be:

  • If the local and Gist are the same, display a 3-second status message saying so and don’t do anything.

  • If the local and Gist are different and the local LastDownload is earlier than the Gist LastUpload, then display a popup dialog warning that there is a risk in overwriting changes in the Gist. Don’t say in the dialog that they could be identical because they are not. Don’t do anything, but perhaps offer the same option to force the upload without changing the local ForceUpload setting.

  • If the local and Gist are different and the local LastDownload is later than or same as the Gist LastUpload, then upload the settings with no popup dialog. Perhaps add a 3-second status message saying that the settings were uploaded. I think that the upload details are also shown in the console.

It would be nice if this sort of UX improvement could be made for the 3.4.3 release if @shanalikhan and @borekb are in agreement.

Read more comments on GitHub >

github_iconTop Results From Across the Web

How can I improve a Bulk Upload interface?
The user selects bulk uploading and a modal pops. The user then copies and pastes a list with information for each text field...
Read more >
UX Design Patterns for Loading - Pencil & Paper
Loading UX takes careful consideration of both the user's and the system's context to use the appropriate loading pattern.
Read more >
12 UX design examples that motivate users to take action
Good UX for boosting conversion. Asking people to pay for your product can be tricky. If you don't get it right, it can...
Read more >
16 Tips that Will Improve Any Online Form. Part 2/4. - UX Planet
Activate the next-step-button only when the user has responded to all mandatory fields and there aren't any errors. Obviously, apply this trick only...
Read more >
Preventing Bad UX Through Integrated Design Workflows
Given our increasing dependency on digital interactions, ... Over time, the glaring UX issues product can force a continuation of being ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found