Skip to content
This repository has been archived by the owner on Jun 17, 2021. It is now read-only.

Improve UX by cancelling blocking tasks or paralleling tasks #351

Open
3 tasks
AWolf81 opened this issue Jan 17, 2019 · 0 comments
Open
3 tasks

Improve UX by cancelling blocking tasks or paralleling tasks #351

AWolf81 opened this issue Jan 17, 2019 · 0 comments
Labels
Discussion Something to discuss upcoming feature New feature or request

Comments

@AWolf81
Copy link
Collaborator

AWolf81 commented Jan 17, 2019

Maybe related to #33 & #327 because these require paralleling.

Is your feature request related to a problem? Please describe.
If the user is starting any blocking action like creating a project, delete project or reinstalling dependencies. There is no way to cancel the task or continue working and the user is forced to wait for the completion.

Cancel is sometimes necessary if you detect that you want to finish something before actually doing that task or if the blocking task is triggered accidentially.

Describe the solution you'd like
I think we split this into to solutions we can tackle this:

  1. Cancel the blocking action. After a warning we need to do additional handling but we need to discuss how to do it:

    • Should we restore the project to the state before the task occured (e.g. deleting aborted could leave some files)
    • Leave the project broken (e.g. partially deleted project) - I'd prefer the restoring
  2. Paralleling tasks so the user can click on the backdrop and continue work. This is somewhat more complicated as it involves some parts we don't have right now:

    • Backdrop click can start task to run in background with a notification that it's still running
    • Notification system to display a message that a background task finished
    • Pending tasks list so the user can see which tasks are running
    • Blocking heavy tasks (Reinstall / CreateNewProkect): Don't allow two heavy tasks in parallel e.g. two project creations could slow down system performance but the user could definetly install a dependency or start a dependency in parallel to a new project creation

Additional context
We could almost split this in two tasks but I combined it into one issue as the goal is similar - allow the user to continue to work.

I would start with cancel task and later with the paralleling as the canceling is also required for paralleling.

Blocking tasks details to handling after cancel:

  • Reinstall - aborting should be no problem as the next reinstall will overwrite node_modules folder but tracking of abort required as it could break scripts because of a missing dependency. Showing the Missing dependency message would be OK here
  • CreateNewProject - remove partially created project from disk with rimrafAsync after abort
  • Delete project - restore project or leave the project broken? Restoring would be possible if we can trigger a restore from trash then we don't have to manually create a backup copy.

Note
I think the paralleling issue is too large to discuss here in every detail and if we really want this feature we should move it to a separate issue. Just add what you think about it with-out going into the details.
Is it worth to add or is cancelling enough as it's way easier to implement?

@AWolf81 AWolf81 added upcoming feature New feature or request Discussion Something to discuss labels Jan 17, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Discussion Something to discuss upcoming feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant