Add a new, flexible UI for adding and configuring integrations.

Review Request #10431 — Created Feb. 26, 2019 and submitted — Latest diff uploaded


The old integrations UI worked alright when we only had a few
integrations available, but didn't scale well. It was harder to visually
separate the configurations from the available integrations, and really
hard to see at a glance how many configurations you had in total. It
also only worked in the Django administration UI, meaning it wasn't
usable in, say, RBCommons or Splat Team Admin UIs.

This change completely redoes the UI for integrations, while at the same
time making it suitable for use outside of the Django administration UI.
Now, configurations are presented as a config forms list, showing an
icon for the integration, the configuration name, integration name, and
the enabled/disabled state.

Above the list is a button for adding an integration, which pops up a
tile-based menu of all integration options. Down the road, this can be
expanded to allow searching or filtering based on categories, but for
now it provides a good way of quickly seeing what's available.

The new UI has been built on top of the new config forms work, providing
a consistent appearance wherever it's embedded.

Tested adding new integrations via the popup.

Tested editing existing integrations.

Tested the integrations popup on various screen sizes, including very
large and very small screens.

Tested that the integration state was reflected in the list item.

Tested custom URL namespaces, and that they're respected everywhere.

Loading file attachments...