A brand new concept of Dashboards and Widgets are introduced in this release.
A dashboard is a visual representation of panels (designed as tiles) that contain application widgets. Each widget could represent a set of easy to read data in any form (graph, chart, list, paragraphs, images, etc.). The application allows the development of new widgets programmatically.
Users are presented with a new Project Home page when selecting a project card that contains a predefined default Dashboard with 3 widgets. The partition and track selectors are available on this page as the widgets might depend on any of them but it's not mandatory, depending on their implementation.
The dashboard page is identical for all projects at present, in future releases enhancements are planned to allow users to customize dashboards with actions such as move, remove, select widgets.
Those 3 widgets are implemented in 3 different Portal extensions. The architecture allows for the possibility to develop new widgets in any of the Portal extensions because the application will harvest all widgets available when it needs to display a dashboard page.
1. Statistic Widget
This first widget displays the data from the existing Statistic page as a chart. Its is interactive, by default it displays data in percentages but it can be switched to absolute values by clicking the top right checkbox. Also the chart displays tooltips when mouse over.
2. Items Widget
The second widget displays a "lite" version of the Items page with the items ordered descending by their creation date and with links to the Items page.
3. Timelines Widget
The third widget is exactly the same timeline that appears on Timelines page.
Installation
Reinstall Portal with existing extensions
Install Dashboards extension
Execute SQL migration script in a new Dashboards database as per Portal Readme file
Developing widgets
The widgets can be implemented in any of the Portal extensions. As an example, the 3 widgets provided in this release are developed in 3 different extensions:
StatisticChartWidgetComponent.razor in Migration extension
ItemsWidgetComponent.razor in ItemMgr extension
TimelineWidgetComponent.razor in Timelines extension
These are normal Blazor WASM components that are implementing IWidget interface. If the components are required to use Project data then they need to implement IProjectWidget interface.
IWidget interface contains 4 properties.
The most important one is the UniqueIdentifier, a GUID that should be defined for each widget in particular to avoid any type of name conflict. This shouldn't be programmatically changed during the existence of the widget component. Moreover, this unique ID is stored in the DB as the widget identifier inside a defined panel for a dashboard.
The property CssFileUrl is the file name of the CSS file that needs to be loaded when the widget is displayed relative to the Extension project where it is defined. It's not mandatory to provide a file if the widget is using the Portal level styling.
Name and Thumbnail properties are not yet used but the aim is to be used when the user could select form a set of widgets when customizing panels will be available in future releases.
IProjectWidget interface is meant to provide Component Parameters (ProjectID, ParititionId, TrackID, ProjectName) from outside if needed. All these properties are not mandatory. If none of them are not used by the widget, then it can only implement the IWidget interface.
Daniel Vasiu
New extension for Dashboards in Portal!
A brand new concept of Dashboards and Widgets are introduced in this release.
A dashboard is a visual representation of panels (designed as tiles) that contain application widgets. Each widget could represent a set of easy to read data in any form (graph, chart, list, paragraphs, images, etc.). The application allows the development of new widgets programmatically.
Users are presented with a new Project Home page when selecting a project card that contains a predefined default Dashboard with 3 widgets. The partition and track selectors are available on this page as the widgets might depend on any of them but it's not mandatory, depending on their implementation.
The dashboard page is identical for all projects at present, in future releases enhancements are planned to allow users to customize dashboards with actions such as move, remove, select widgets.
Those 3 widgets are implemented in 3 different Portal extensions. The architecture allows for the possibility to develop new widgets in any of the Portal extensions because the application will harvest all widgets available when it needs to display a dashboard page.
1. Statistic Widget
This first widget displays the data from the existing Statistic page as a chart. Its is interactive, by default it displays data in percentages but it can be switched to absolute values by clicking the top right checkbox. Also the chart displays tooltips when mouse over.
2. Items Widget
The second widget displays a "lite" version of the Items page with the items ordered descending by their creation date and with links to the Items page.
3. Timelines Widget
The third widget is exactly the same timeline that appears on Timelines page.
Installation
Reinstall Portal with existing extensions
Install Dashboards extension
Execute SQL migration script in a new Dashboards database as per Portal Readme file
Developing widgets
The widgets can be implemented in any of the Portal extensions. As an example, the 3 widgets provided in this release are developed in 3 different extensions:
StatisticChartWidgetComponent.razor in Migration extension
ItemsWidgetComponent.razor in ItemMgr extension
TimelineWidgetComponent.razor in Timelines extension
These are normal Blazor WASM components that are implementing IWidget interface. If the components are required to use Project data then they need to implement IProjectWidget interface.
IWidget interface contains 4 properties.
The most important one is the UniqueIdentifier, a GUID that should be defined for each widget in particular to avoid any type of name conflict. This shouldn't be programmatically changed during the existence of the widget component. Moreover, this unique ID is stored in the DB as the widget identifier inside a defined panel for a dashboard.
The property CssFileUrl is the file name of the CSS file that needs to be loaded when the widget is displayed relative to the Extension project where it is defined. It's not mandatory to provide a file if the widget is using the Portal level styling.
Name and Thumbnail properties are not yet used but the aim is to be used when the user could select form a set of widgets when customizing panels will be available in future releases.
IProjectWidget interface is meant to provide Component Parameters (ProjectID, ParititionId, TrackID, ProjectName) from outside if needed. All these properties are not mandatory. If none of them are not used by the widget, then it can only implement the IWidget interface.