Modernize the UI for managing extensions.

Review Request #11044 — Created June 17, 2020 and submitted — Latest diff uploaded

Information

Djblets
release-2.0.x

Reviewers

This is a complete design refresh for the extension UI. It makes use of
the config forms CSS components to provide a list of extensions that's
more in line with the look and feel of the integrations list, amongst
other bits of UI we're assembling, and presents information on the
extensions in a much clearer way than the old UI.

The new extension list presents each item as a row with three columns.
The first column contains all the extension metadata (summary, version,
author, description, load errors). The second column contains the status
(Enabled, Disabled, Error). The third column contains a vertical list of
actions that can be performed (Enable/Disable/Reload, Configure,
Database).

Above the list of extensions is a list of actions. This will always show
a "Reload Extensions" (replacement for "Scan for installed extensions").
If settings.DJBLETS_EXTENSIONS_BROWSE_URL is set, this will also
include a "More Extensions" button that navigates to that page. In the
process, the old template block for adding this sort of action has been
removed.

This new layout reduces the visual noise of the old layout, and makes it
easier to see and manage the states of all extensions.

The old template assumed it would be shown in the administration UI,
with standard Django administratino UI conventions. We still have a
template for that, but the meat of the new UI is in a reusable "parts"
template that can be embedded into any page.

Tested extensions in all possible states.

Tested the More Extensions and Reload Extensions buttons.

JavaScript and Python unit tests passed.


Commits

Files