Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[UX] Streamline the process of disabling and uninstalling modules (a.k.a. "Uninstallation queue"). #2532

Open
klonos opened this issue Feb 12, 2017 · 5 comments

Comments

@klonos
Copy link
Member

klonos commented Feb 12, 2017

Current process after one for example has enabled say devel and devel_generate:

  1. Go to /admin/modules
  2. Uncheck "Devel Generate" ("Devel" is locked)
  3. Hit "Save configuration" -> page refreshes, now "Devel" is unlocked
  4. Uncheck "Devel"
  5. Hit "Save configuration" -> page refreshes, both "Devel Generate" and "Devel" are disabled
  6. Go to /admin/modules/uninstall
  7. Check "Devel Generate" ("Devel" is locked)
  8. Hit "Uninstall" -> you get redirected to the confirmation page
  9. Hit "Uninstall" again -> you get redirected back to /admin/modules/uninstall, now "Devel" is unlocked
  10. Check "Devel"
  11. Hit "Uninstall" -> you get redirected to the confirmation page
  12. Hit "Uninstall" again -> you get redirected back to /admin/modules/uninstall

OMG, finally!!! ...and this is only with one level of dependency. Imagine if you had a devel_generate_extras module installed that depended on devel_generate and you wanted to disable devel. That would make devel_generate be locked until devel_generate_extras was disabled/uninstalled and then devel would still be locked until devel_generate was disabled/uninstalled. O-M-G!!!

How I envision this to work ideally:

  1. Go to /admin/modules -> "Devel" is not locked
  2. Uncheck "Devel" -> dialog pops up explaining that this module is required by "Devel Generate" (and any other modules down the chain) and that means that these will need to be disabled too.
  3. The dialog also offers a "Also uninstall these modules after disabling them" checkbox that is unchecked by default
  4. Confirm -> dialog closes and there are indicators (red status text, asterisks, what-have-you) next to all modules queued for disabling.
  5. Hit "Save configuration" -> progress bar shows the progress of disabling and uninstalling all queued modules. -> you get redirected to /admin/modules/uninstall that has a report of which modules were disabled and which were uninstalled, giving you the option to uninstall any that are just disabled.

Compare 5 steps (no matter the complexity of dependencies) vs. at least 12 steps with one level of dependencies. Now, that's something I'd like so see fixed in the next minor release.

@klonos klonos added this to the 1.7.0 milestone Feb 12, 2017
@klonos
Copy link
Member Author

klonos commented Feb 12, 2017

...it would also be a nice bonus if we moved the dependencies confirmation when enabling modules to a dialog instead of the separate page the user gets redirected to after hitting the "Save configuration" button.

@jlfranklin
Copy link
Member

Heh... you can disable Devel directly with B, but it won't disable the modules that depend on Devel. See backdrop-contrib/bee#24 for details. (Of course, that'll break the site.)

@jenlampton
Copy link
Member

I for one, would love to see a module uninstallation queue, but since we are only a single day from feature freeze and there's no PR for this issue, it's unlikely that it will make this release. Bumping milestone to 1.8.

@jenlampton
Copy link
Member

There's a great related conversation happening over at #541

@klonos
Copy link
Member Author

klonos commented May 13, 2019

Yup, saw that 👍. Commenting there now...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants