In big environments it becomes hard to manage a large number of nodes.

Node panel takes an entire row on environment nodes screen now and End User
is forced to scroll through a large list of nodes before finding
the right one.
At the same time not all information on a node panel is needed for everyday
work with operational cloud.

We should introduce a compact view for a clickable node panel which shows
the most significant information about the node such as:

name

status (including deployment progress bar)

hardware information (HDD/CPU/RAM) in a short form

checked state

And add an ability to switch between standard and compact modes in particular
environment. The choice should be stored in the database, so UI settings for
an environment will be the same for every client. This will allow user not to
set environment UI on each device.

Standard mode should be default view mode for new environments.

Switching node list view is always available and does not depend on
environment status.

In compact mode there should be about 5 nodes in row in the node list.

When user hovers a compact node it should transform to extended view with more
detailed info:

As the next iteration it is suggested to consider saving of UI settings
not to Nailgun DB but to Keystone. This will allow to couple UI settings
of particular environment to a particular user. This will be increasingly
relevant with the growing number of UI settings.

Existing grouping column should be removed from Cluster model into
Nailgun. At the same time new ui_settings attribute of JSON type should be
added to Cluster model with the following default value:

{"view_mode":"standard","grouping":"roles"}

This attribute should contain all UI settings of specific environment
including node list grouping mode, that stored in grouping field of
Cluster model now.

This is an extendable way to handle future UI changes and not to create a big
amount of additional fields in Cluster model.

This new ui_settings field should be validated on backend using JSON
schema.
“view_mode” property has one of the following values: “standard” (default) or
“compact”.
“grouping” property has one of the following values: “roles” (default),
“hardware” or “both”.