In this tutorial:
Introduction
You can create a flow using an endpoint, component, and parameter nodes shipped with Extension Designer. Widget definitions are embedded into the component and parameter nodes, and the endpoint node can choose which widgets to create.
The endpoint node provides data for the widget so that Extension Designer can provide a full definition of the widget and the data. This enables a smooth user experience when viewing the data in a dashboard because you don't have to remember specific endpoints or settings.
See Working with Nodes for additional information about these and other nodes.
Configuring Component Nodes
Components store a custom widget and report's structure and definition. Import the a custom widget from the Sample Widgets library and click a component to view its parts.
Component Nodes
Components consist of the following parts:
- HTML Template
- Javascript Controller
- CSS Style
This node is based on the Kendo UI Chart
The Kendo UI Chart is an AngularJS 1.4 implementation. For more information, please refer to http://demos.telerik.com/kendo-ui/ and review each chart's AngularJS section, such as http://demos.telerik.com/kendo-ui/pie-charts/angular for the Pie chart. DTP includes Kendo UI version 2015.3.1201. Make sure to use charts from this version.
HTML Template
The HTML Template defines how the component should look inside of the dashboard or custom report. It defines what properties that Javascript Controller should have under the $scope
object.
JavaScript Controller
The JavaScript Controller implements how to represent the chart according to the HTML Template. It controls the color of the chart and the drill-down operation.
CSS Style
This tab defines the CSS styling unique to the component. We highly recommend providing unique prefixes if you want to customize the CSS, otherwise, the style definitions may conflict with other widgets in same the dashboard.
Configuring Parameter Nodes
Parameters define what options the widget can include under the Add Widget page. Parameters a Parameters tab and a Labels tab. You can also control which options are available using the Parameter Values Endpoint. Double click a sample widget's parameters node to view its parts.
Parameters Tab
This tab defines list of parameters and its data source. Some parameters can also link the dependencies so that filters, such as the build ID, can be set.
Always set the "required" parameter to "true"
When configuring widget settings, set the required
parameter to true
. If you set this parameter to false
, an undefined all parameter is added to the widget by default, which will result in unexpected behavior.
Labels Tab
This tab defines how the parameter label is presented in the Add or Edit Widget page.
Parameters are tightly defined under the DTP dashboard. You can use a combination of known parameters, such as filters, periods, or baseline/target build, but you can only define text box parameters as needed. Some parameter nodes defined the Marketplace artifacts have a profile parameter definition (see Working with Model Profiles).
Sample Widgets
Out of the box, Parasoft provides useful component and parameter definitions for creating your own custom widgets. All definitions are provided under Import> Library> Sample Widgets.
Components | Description |
---|---|
Bubble Chart | This component renders concentrations of data points as bubbles along an x- and y-axis. The Modules - Bubble widget is an example of a bubble chart. |
Donut Chart | This component renders the data as proportioned segments and includes an overall value. |
Percentage Chart | This component renders the data as an overall percentage. The Coverage - Percent widget is an example of a percentage chart. |
Pie Chart | This component renders the data as a pie chart with a legend. The Severities - Pie widget is an example of a pie chart. |
Summary Chart | This component renders the data as a single summary value. The Metrics - Summary widget is an example of a summary chart. |
Table Chart | This component renders the data as a table with five rows and an optional link to an additional report showing the complete data. The Authors - Top 5 Table widget is an example of the table chart. |
TreeMap Chart | This component renders the data into tiles with sizes proportional to the data point values. The Modules - Top 10 Tree Map widget is an example of the tree map chart. |
Import an example widget and review the Sample Data node for details.
The same set of parameters are defined per widget and report. This is because a different set of parameters are required for the drill down report.
Each component node is configured to take a specific payload to render the chart.
Every time you deploy a widget or a report flow, you must perform a full refresh of the dashboard browser to see the update. The component and parameter definitions are only updated when the dashboard is loaded. Refreshing the widget only won't reflect the changes to the component and parameters. However, if you are working on a data flow, you can refresh only the widget to see the changes.
Creating new Pie Chart widget
This section explains how to create new chart widget in DTP using the Pie chart sample widget.
- Choose Import> Library> Sample Widgets> Pie Chart example from the Extension Designer menu to import the example to a new flow tab in any service.
Double-click the Example Pie Chart endpoint node and review the configuration. This node defines the widget implementation.
You can change the following fields to configure the example widget:Name Name of the widget displayed in the DTP dashboard UUID Unique identifier for the endpoint that is automatically generated when you drop the endpoint node into the flow canvas. Type Choose an endpoint type from the Type drop-down menu:
- Widget: Specifies a DTP dashboard widget. Once this value is selected, the size, category, component, and parameter fields will be available. See About the Dashboard Grid for additional information about sizing widgets.
- Report: Specifies a custom report for the DTP dashboard. Once this value is selected, the component and parameter fields will be available
- General: Specifies a general REST endpoint. Both GET and POST operations will be available for the endpoint. To get the endpoint URL, open the Service Category Page and copy the URL.
Category Defines the DTP dashboard widget category. In general, the value should be either "custom" or "process intelligence". You can enter a new name to create a new category. The widget header color will be gray if you create your own category name. Component: Specifies the component to provide. Any components deployed to the flow canvas should be available from the drop-down menu. Parameter Specifies the set of parameters to provide to the DTP dashboard. All parameters deployed to the flow canvas should be available from the drop-down menu. Description Specifies a description of the endpoint. This description will be used on DTP dashboards, the Add Widget page (see Adding Widgets), and the Extension Designer's category page as the endpoint description. - Click the refresh button at the UUID field. This will ensure that the new widget does not conflict with any other endpoint.
- Deploy the widget.
- Drop a new Endpoint node into the flow and configure the following settings:
- Specify a name
- Choose Widget from the Type menu
- Choose Pie Chart Component from the Component menu
- Choose Pie Chart - Widget Parameters from the Parameters menu
- (Optional) Enter a description
- Click the output handle and on the new component to the input handle on the "Sample Data" function node.
- Deploy the flow.
- In Report Center, refresh the dashboard (if already open) and click Add Widget. The Add Widget overlay will display your widget on its own category.
- Finish adding the widget to see it on the dashboard
About the Endpoint Output Link
The Endpoint output node links to the data source for the widget. You should use the http response node in output category as the output.
Widget Error Messages
The nodes provide a structured msg.payload as the output to the endpoint. The DTP dashboard will use the response as data for the widget. In every sample widget, we provide a Sample Data function node (with actual data) and a No Data function node for possible payload schema. The No Data node demonstrate how to send an error message back to the widget so the widget can display the message properly.
Click on the connector from the custom widget to the Sample Data node and press the Delete key.
Make a new connection to the No Data node.
Deploy the updated flow and refresh the DTP dashboard in Report Center.
If you delete the endpoint after adding the widget to the dashboard, DTP will detect that the widget definition is no longer available and show following message:
Restoring the endpoint node back (with same UUID), and refresh the dashboard, you will see your widget back.
Configuring Error Messages
Error messages use the following Standard Error Object format, which applies to widgets and any flows that communicate with it.
msg.payload = { error: { title: "error message title", message: "detailed error message" } }
If this error object returns to a custom widget or report, it should add following to msg object:
msg.statusCode = 400;