Fish Trophy

chipx86 got a fish trophy!

Fish Trophy

Improve list item state support for config forms.

Review Request #11011 — Created May 6, 2020 and submitted — Latest diff uploaded

Information

Djblets
release-2.0.x

Reviewers

This makes a few improvements to the item state support in list
forms, supporting some common patterns.

First, there's now a standard "error" state, used for items that have
failed in some way (useful for items that represent loadable things or
operations). This goes along with existing "enabled" and "disabled"
states, and has standard colors.

A new CSS class (djblets-c-config-forms-list__item-state), used for
showing a representation of an item state, has been added as well. This
makes use of a new registered text color code and icon provided when
calling #djblets-ns-config-forms.list.add-item-state().

This new class can be added to an item's template, and it will be
automatically populated with the correct text for the item. This involves
updates to the JavaScript support, which now uses an optional itemState
model attribute on the item. This will not only apply the new text and
icon, but it will also apply the CSS modifier class to the item itself.

This all results in a lot less that items have to manage. They no longer
need to compute their own CSS classes to define item states, or maintain
custom columns. They can just set an attribute.

Items that do need specialized CSS classes or text can override the
Djblets.Config.ListItemView.itemStateClasses and
Djblets.Config.ListItem.itemStateTexts to provide this customization.

Unit tests passed.

Updated the integrations support (not part of this change) and verified
all the state updating worked.


Commits

Files