https://blueprints.launchpad.net/fuel/+spec/node-list-view-modes
Implement possibility to switch between standard and compact node list view modes.
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:
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:
There are mockups for the feature:
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.
Proposed solution mostly affects UI/UX:
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”.
No new methods needed.
Existing PUT /api/cluster/{cluster_id} method should be modified to be able to accept data (Ok code 200, server error code starting from 500) in the form of the following JSON:
{
"ui_settings": {
"view_mode": "compact",
"grouping": "roles"
}
}
Accordingly, this new ui_settings field should be added to the method output:
{
"id": 1,
"name": "cluster#1",
"release_id": 2,
...
"ui_settings": {
"view_mode": "compact",
"grouping": "roles"
}
}
Similarly existing GET /api/cluster/{cluster_id} method should return the new field.
Since we have a “Data model impact” we have to prepare an Alembic migration that should update clusters to fit the new format.
None
None
None
None
None
None
None
None
Primary assignee:
Developers:
Mandatory Design Reviewer:
Approver:
QA engineer:
None
The documentation should cover how the end user experience has been changed.