diff --git a/application/src/main/data/json/demo/dashboards/gateway_list.json b/application/src/main/data/json/demo/dashboards/gateway_list.json index 7abee6cbe4..9adba7135a 100644 --- a/application/src/main/data/json/demo/dashboards/gateway_list.json +++ b/application/src/main/data/json/demo/dashboards/gateway_list.json @@ -7,13 +7,7 @@ "description": "", "widgets": { "23b9adc5-b3bd-040f-e5eb-a45925c73257": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -50,7 +44,8 @@ "enableSearch": true, "enableSelectColumnDisplay": false, "enableStickyHeader": true, - "enableStickyAction": true, + "enableStickyAction": false, + "showCellActionsMenu": true, "reserveSpaceForHiddenAction": "true", "displayEntityName": false, "displayEntityLabel": false, @@ -249,16 +244,11 @@ }, "row": 0, "col": 0, - "id": "23b9adc5-b3bd-040f-e5eb-a45925c73257" + "id": "23b9adc5-b3bd-040f-e5eb-a45925c73257", + "typeFullFqn": "system.cards.entities_table" }, "d4a1ffc4-c9f6-7b15-bca0-17feb58bac99": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "gateway_configuration2", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 9.5, "sizeY": 6, "config": { @@ -319,16 +309,11 @@ }, "row": 0, "col": 0, - "id": "d4a1ffc4-c9f6-7b15-bca0-17feb58bac99" + "id": "d4a1ffc4-c9f6-7b15-bca0-17feb58bac99", + "typeFullFqn": "system.gateway_widgets.gateway_configuration2" }, "02a05113-d878-b086-328e-75bd6f02b2bb": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "gateway_connector", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 11, "sizeY": 8, "config": { @@ -398,16 +383,11 @@ }, "row": 0, "col": 0, - "id": "02a05113-d878-b086-328e-75bd6f02b2bb" + "id": "02a05113-d878-b086-328e-75bd6f02b2bb", + "typeFullFqn": "system.gateway_widgets.gateway_connector" }, "79f59106-758f-c428-8b93-4341faea705d": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "markdown_card", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 5, "sizeY": 3.5, "config": { @@ -558,9 +538,9 @@ "padding": "8px", "settings": { "useMarkdownTextFunction": true, - "markdownTextFunction": "var blockData = '';\nfunction createDataBlock(value, label, dividerStyle, mobile) {\n blockData += `\n \n
\n \n \n ${label}\n \n ${value}\n
`;\n}\ncreateDataBlock(data[0].Status, \"Status\", data[0].Status === \"Active\"? 'divider-green' : 'divider-red');\ncreateDataBlock(data[0].Name, \"Gateway Name\", '', ctx.isMobile);\ncreateDataBlock(data[0].Type, \"Gateway Type\", '');\ncreateDataBlock(\n `${(data[1]?data[1].count:0)} `\n + \" | \" + \n `${(data[2]?data[2][\"count 2\"]:0)} `\n , \"Devices\", '');\ncreateDataBlock(\n `${(data[0].active_connectors?JSON.parse(data[0].active_connectors).length:0)} `\n + \" | \" + \n `${(data[0].inactive_connectors?JSON.parse(data[0].inactive_connectors).length:0)} `\n , \"Connectors\", '');\ncreateDataBlock(data[0].ALL_ERRORS_COUNT || 0, \"Errors\", (data[0].ALL_ERRORS_COUNT || 0) === 0 ? 'divider-green' : 'divider-red');\nreturn `
${blockData}
`;", + "markdownTextFunction": "var blockData = '';\nvar connectorsIndex = ctx.actionsApi.getActionDescriptors('elementClick').findIndex(action=>action.name==\"Connecotrs\");\nvar logsIndex = ctx.actionsApi.getActionDescriptors('elementClick').findIndex(action=>action.name==\"Logs\");\nfunction generateMatHeader(index) {\n if( index !== undefined && index > -1) {\n return ``\n } else {\n return \"\" \n }\n}\nfunction createDataBlock(value, label, dividerStyle, mobile, index) {\n blockData += `\n \n
\n \n ${generateMatHeader(index)}\n ${label}\n
\n ${value}\n `;\n}\ncreateDataBlock(data[0].Status, \"Status\", data[0].Status === \"Active\"? 'divider-green' : 'divider-red');\ncreateDataBlock(data[0].Name, \"Gateway Name\", '', ctx.isMobile);\ncreateDataBlock(data[0].Type, \"Gateway Type\", '');\ncreateDataBlock(\n `${(data[1]?data[1].count:0)} `\n + \" | \" + \n `${(data[2]?data[2][\"count 2\"]:0)} `\n , \"Devices (Active | Inactive)\", '');\ncreateDataBlock(\n `${(data[0].active_connectors?JSON.parse(data[0].active_connectors).length:0)} `\n + \" | \" + \n `${(data[0].inactive_connectors?JSON.parse(data[0].inactive_connectors).length:0)} `\n , \"Connectors (Active | Inactive)\", '', '', connectorsIndex);\ncreateDataBlock(data[0].ALL_ERRORS_COUNT || 0, \"Errors\", (data[0].ALL_ERRORS_COUNT || 0) === 0 ? 'divider-green' : 'divider-red', '', logsIndex);\nreturn `
${blockData}
`;", "applyDefaultMarkdownStyle": false, - "markdownCss": ".divider {\n position: absolute;\n width: 3px;\n top: 8px;\n border-radius: 2px;\n bottom: 8px;\n border: 1px solid rgba(31, 70, 144, 1);\n background-color: rgba(31, 70, 144, 1);\n left: 10px;\n}\n.divider-green .divider {\n border: 1px solid rgb(25,128,56);\n background-color: rgb(25,128,56);\n}\n\n.divider-green .mat-mdc-card-content {\n color: rgb(25,128,56);\n}\n\n.divider-red .divider {\n border: 1px solid rgb(203,37,48);\n background-color: rgb(203,37,48);\n}\n\n.divider-red .mat-mdc-card-content {\n color: rgb(203,37,48);\n}\n\n.mdc-card {\n position: relative;\n padding-left: 10px;\n margin-bottom: 1px;\n}\n\n.mat-mdc-card-subtitle {\n font-weight: 400;\n font-size: 12px;\n}\n\n.mat-mdc-card-header {\n padding: 8px 16px 0;\n}\n\n.mat-mdc-card-content:last-child {\n padding-bottom: 8px;\n font-size: 16px;\n}\n\n.cards-container {\n height: calc(100% - 1px);\n justify-content: stretch;\n align-items: center;\n margin-bottom: 1px;\n}" + "markdownCss": ".divider {\n position: absolute;\n width: 3px;\n top: 8px;\n border-radius: 2px;\n bottom: 8px;\n border: 1px solid rgba(31, 70, 144, 1);\n background-color: rgba(31, 70, 144, 1);\n left: 10px;\n}\n.divider-green .divider {\n border: 1px solid rgb(25,128,56);\n background-color: rgb(25,128,56);\n}\n\n.divider-green .mat-mdc-card-content {\n color: rgb(25,128,56);\n}\n\n.divider-red .divider {\n border: 1px solid rgb(203,37,48);\n background-color: rgb(203,37,48);\n}\n\n.divider-red .mat-mdc-card-content {\n color: rgb(203,37,48);\n}\n\n.mdc-card {\n position: relative;\n padding-left: 10px;\n margin-bottom: 1px;\n}\n\n.mat-mdc-card-subtitle {\n font-weight: 400;\n font-size: 12px;\n}\n\n.mat-mdc-card-header {\n padding: 8px 16px 0;\n}\n\n.mat-mdc-card-content:last-child {\n padding-bottom: 8px;\n font-size: 16px;\n}\n\n.cards-container {\n height: calc(100% - 1px);\n justify-content: stretch;\n align-items: center;\n margin-bottom: 1px;\n}\n\n::ng-deep.tb-home-widget-link > div {\n flex-grow: 1;\n cursor: pointer;\n}\n\n .tb-home-widget-link {\n width: 100%;\n }\n\n .tb-home-widget-link:hover::after{\n color: inherit;\n }\n \n .tb-home-widget-link::after{\n content: 'arrow_forward';\n display: inline-block;\n transform: rotate(315deg);\n font-family: 'Material Icons';\n font-weight: normal;\n font-style: normal;\n font-size: 18px;\n color: rgba(0, 0, 0, 0.12);\n vertical-align: bottom;\n margin-left: 6px;\n}" }, "title": "New Markdown/HTML Card", "showTitleIcon": false, @@ -583,20 +563,47 @@ "pageSize": 1024, "noDataDisplayMessage": "", "enableDataExport": false, - "displayTimewindow": true + "displayTimewindow": true, + "actions": { + "elementClick": [ + { + "name": "Connecotrs", + "icon": "more_horiz", + "useShowWidgetActionFunction": null, + "showWidgetActionFunction": "return true;", + "type": "openDashboardState", + "targetDashboardStateId": "connectors", + "setEntityId": true, + "stateEntityParamName": null, + "openRightLayout": false, + "openInSeparateDialog": false, + "openInPopover": false, + "id": "ee7216d8-ad7a-20db-1abc-2531e221f24c" + }, + { + "name": "Logs", + "icon": "more_horiz", + "useShowWidgetActionFunction": null, + "showWidgetActionFunction": "return true;", + "type": "openDashboardState", + "targetDashboardStateId": "logs", + "setEntityId": true, + "stateEntityParamName": null, + "openRightLayout": false, + "openInSeparateDialog": false, + "openInPopover": false, + "id": "ceec0446-c25f-2b9b-b1b1-58ed751476ff" + } + ] + } }, "row": 0, "col": 0, - "id": "79f59106-758f-c428-8b93-4341faea705d" + "id": "79f59106-758f-c428-8b93-4341faea705d", + "typeFullFqn": "system.cards.markdown_card" }, "60dcf518-8fc3-3539-8ff8-ce94bda39f3a": { - "isSystemType": true, - "bundleAlias": "alarm_widgets", - "typeAlias": "alarms_table", "type": "alarm", - "title": "New widget", - "image": null, - "description": null, "sizeX": 10.5, "sizeY": 6.5, "config": { @@ -737,16 +744,11 @@ }, "row": 0, "col": 0, - "id": "60dcf518-8fc3-3539-8ff8-ce94bda39f3a" + "id": "60dcf518-8fc3-3539-8ff8-ce94bda39f3a", + "typeFullFqn": "system.alarm_widgets.alarms_table" }, "27e6b37c-085e-824d-fb13-69651a545ec1": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "gateway_logs", "type": "timeseries", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 3, "config": { @@ -784,7 +786,7 @@ "color": "rgba(0, 0, 0, 0.87)", "padding": "8px", "settings": {}, - "title": "Gateway Logs", + "title": "Logs", "showTitleIcon": false, "dropShadow": false, "enableFullscreen": true, @@ -806,16 +808,11 @@ }, "row": 0, "col": 0, - "id": "27e6b37c-085e-824d-fb13-69651a545ec1" + "id": "27e6b37c-085e-824d-fb13-69651a545ec1", + "typeFullFqn": "system.gateway_widgets.gateway_logs" }, "bcd04dbf-c82a-ca13-6e88-a74f32b4348a": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "gateway_logs", "type": "timeseries", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 3, "config": { @@ -878,16 +875,11 @@ }, "row": 0, "col": 0, - "id": "bcd04dbf-c82a-ca13-6e88-a74f32b4348a" + "id": "bcd04dbf-c82a-ca13-6e88-a74f32b4348a", + "typeFullFqn": "system.gateway_widgets.gateway_logs" }, "9b88dc51-b186-90ef-5afb-9648e6e2ac9a": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "gateway_statistics", "type": "timeseries", - "title": "New widget", - "image": null, - "description": null, "sizeX": 8, "sizeY": 5, "config": { @@ -973,7 +965,7 @@ "customLegendEnabled": false, "dataKeysListForLabels": [] }, - "title": "Statistics", + "title": "Gateway Custom Statistics", "dropShadow": true, "enableFullscreen": true, "titleStyle": { @@ -1005,16 +997,11 @@ }, "row": 0, "col": 0, - "id": "9b88dc51-b186-90ef-5afb-9648e6e2ac9a" + "id": "9b88dc51-b186-90ef-5afb-9648e6e2ac9a", + "typeFullFqn": "system.gateway_widgets.gateway_statistics" }, "2a318e56-5c83-4f82-bf23-df72dd7e3edf": { - "isSystemType": true, - "bundleAlias": "control_widgets", - "typeAlias": "rpc_remote_shell", "type": "rpc", - "title": "New widget", - "image": null, - "description": null, "sizeX": 9.5, "sizeY": 5.5, "config": { @@ -1083,16 +1070,11 @@ }, "row": 0, "col": 0, - "id": "2a318e56-5c83-4f82-bf23-df72dd7e3edf" + "id": "2a318e56-5c83-4f82-bf23-df72dd7e3edf", + "typeFullFqn": "system.control_widgets.rpc_remote_shell" }, "c50e294a-265a-d13c-c772-b56c4df953fe": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "gateway_general_statistics", "type": "timeseries", - "title": "New widget", - "image": null, - "description": null, "sizeX": 8, "sizeY": 5, "config": { @@ -1272,7 +1254,7 @@ "customLegendEnabled": false, "dataKeysListForLabels": [] }, - "title": "General Statistics", + "title": "Gateway General Chart Statistics", "dropShadow": true, "enableFullscreen": true, "titleStyle": { @@ -1304,16 +1286,11 @@ }, "row": 0, "col": 0, - "id": "c50e294a-265a-d13c-c772-b56c4df953fe" + "id": "c50e294a-265a-d13c-c772-b56c4df953fe", + "typeFullFqn": "system.gateway_widgets.gateway_general_statistics" }, "da01e13f-c108-39fd-2a74-b40da088769a": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "timeseries_table", "type": "timeseries", - "title": "New widget", - "image": null, - "description": null, "sizeX": 8, "sizeY": 6.5, "config": { @@ -1433,16 +1410,11 @@ }, "row": 0, "col": 0, - "id": "da01e13f-c108-39fd-2a74-b40da088769a" + "id": "da01e13f-c108-39fd-2a74-b40da088769a", + "typeFullFqn": "system.cards.timeseries_table" }, "ce3065bf-d898-2c03-6236-ce1b6cdf1f3f": { - "isSystemType": true, - "bundleAlias": "control_widgets", - "typeAlias": "rpc_debug_terminal", "type": "rpc", - "title": "New widget", - "image": null, - "description": null, "sizeX": 9.5, "sizeY": 5.5, "config": { @@ -1512,16 +1484,11 @@ }, "row": 0, "col": 0, - "id": "ce3065bf-d898-2c03-6236-ce1b6cdf1f3f" + "id": "ce3065bf-d898-2c03-6236-ce1b6cdf1f3f", + "typeFullFqn": "system.control_widgets.rpc_debug_terminal" }, "46b68eb5-7e2d-bca1-c2ef-061b64575218": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "service_rpc", "type": "rpc", - "title": "New widget", - "image": null, - "description": null, "sizeX": 4, "sizeY": 2, "config": { @@ -1590,16 +1557,11 @@ }, "row": 0, "col": 0, - "id": "46b68eb5-7e2d-bca1-c2ef-061b64575218" + "id": "46b68eb5-7e2d-bca1-c2ef-061b64575218", + "typeFullFqn": "system.gateway_widgets.service_rpc" }, "878c68fd-71cb-21d4-684a-b5b5a4526b43": { - "isSystemType": true, - "bundleAlias": "gateway_widgets", - "typeAlias": "service_rpc", "type": "rpc", - "title": "New widget", - "image": null, - "description": null, "sizeX": 4, "sizeY": 2, "config": { @@ -1635,16 +1597,11 @@ }, "row": 0, "col": 0, - "id": "878c68fd-71cb-21d4-684a-b5b5a4526b43" + "id": "878c68fd-71cb-21d4-684a-b5b5a4526b43", + "typeFullFqn": "system.gateway_widgets.service_rpc" }, "0fc7dcf3-32a2-0159-738e-96956bf0d450": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "timeseries_table", "type": "timeseries", - "title": "New widget", - "image": null, - "description": null, "sizeX": 8, "sizeY": 6.5, "config": { @@ -1765,16 +1722,11 @@ }, "row": 0, "col": 0, - "id": "0fc7dcf3-32a2-0159-738e-96956bf0d450" + "id": "0fc7dcf3-32a2-0159-738e-96956bf0d450", + "typeFullFqn": "system.cards.timeseries_table" }, "6e136fbc-545b-4926-c0a9-79348f35628a": { - "isSystemType": true, - "bundleAlias": "control_widgets", - "typeAlias": "rpc_debug_terminal", "type": "rpc", - "title": "New widget", - "image": null, - "description": null, "sizeX": 9.5, "sizeY": 5.5, "config": { @@ -1844,16 +1796,11 @@ }, "row": 0, "col": 0, - "id": "6e136fbc-545b-4926-c0a9-79348f35628a" + "id": "6e136fbc-545b-4926-c0a9-79348f35628a", + "typeFullFqn": "system.control_widgets.rpc_debug_terminal" }, "fb9df382-6ef3-4aa6-bc13-8bf8e300ba19": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "markdown_card", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 5, "sizeY": 3.5, "config": { @@ -1896,7 +1843,7 @@ "padding": "8px", "settings": { "useMarkdownTextFunction": false, - "markdownTextPattern": "
\r\n\r\n
", + "markdownTextPattern": "
\r\n\r\n
", "applyDefaultMarkdownStyle": false, "markdownCss": ".action-buttons-container {\r\n display: flex;\r\n flex-wrap: wrap;\r\n flex-direction: row;\r\n height: 100%;\r\n width: 100%;\r\n align-content: center;\r\n}\r\n\r\nbutton {\r\n flex-grow: 1;\r\n margin: 10px;\r\n min-width: 150px;\r\n height: auto;\r\n}" }, @@ -1945,16 +1892,11 @@ }, "row": 0, "col": 0, - "id": "fb9df382-6ef3-4aa6-bc13-8bf8e300ba19" + "id": "fb9df382-6ef3-4aa6-bc13-8bf8e300ba19", + "typeFullFqn": "system.cards.markdown_card" }, "61d149e8-b249-5526-e5d7-6ad58413982e": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "markdown_card", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 5, "sizeY": 3.5, "config": { @@ -2129,16 +2071,11 @@ }, "row": 0, "col": 0, - "id": "61d149e8-b249-5526-e5d7-6ad58413982e" + "id": "61d149e8-b249-5526-e5d7-6ad58413982e", + "typeFullFqn": "system.cards.markdown_card" }, "3d661190-7463-ba61-6793-503c85af67ec": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "markdown_card", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 5, "sizeY": 3.5, "config": { @@ -2213,16 +2150,11 @@ }, "row": 0, "col": 0, - "id": "3d661190-7463-ba61-6793-503c85af67ec" + "id": "3d661190-7463-ba61-6793-503c85af67ec", + "typeFullFqn": "system.cards.markdown_card" }, "1615bd4e-c0a4-c32c-3706-3c83214cb8d7": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -2371,16 +2303,11 @@ }, "row": 0, "col": 0, - "id": "1615bd4e-c0a4-c32c-3706-3c83214cb8d7" + "id": "1615bd4e-c0a4-c32c-3706-3c83214cb8d7", + "typeFullFqn": "system.cards.entities_table" }, "aafba3d8-a381-21c0-ecbe-446da3cdc041": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -2529,16 +2456,11 @@ }, "row": 0, "col": 0, - "id": "aafba3d8-a381-21c0-ecbe-446da3cdc041" + "id": "aafba3d8-a381-21c0-ecbe-446da3cdc041", + "typeFullFqn": "system.cards.entities_table" }, "7f676bb2-bde2-10e7-80d8-25dd734e8e22": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -2687,16 +2609,11 @@ }, "row": 0, "col": 0, - "id": "7f676bb2-bde2-10e7-80d8-25dd734e8e22" + "id": "7f676bb2-bde2-10e7-80d8-25dd734e8e22", + "typeFullFqn": "system.cards.entities_table" }, "d64482d8-001a-6f33-9b56-665530098fe5": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -2845,16 +2762,11 @@ }, "row": 0, "col": 0, - "id": "d64482d8-001a-6f33-9b56-665530098fe5" + "id": "d64482d8-001a-6f33-9b56-665530098fe5", + "typeFullFqn": "system.cards.entities_table" }, "bb27723a-989c-2327-5808-b56d490b93ab": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3003,16 +2915,11 @@ }, "row": 0, "col": 0, - "id": "bb27723a-989c-2327-5808-b56d490b93ab" + "id": "bb27723a-989c-2327-5808-b56d490b93ab", + "typeFullFqn": "system.cards.entities_table" }, "e3a9539d-2ccb-96e0-2afa-36f93e40233d": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3161,16 +3068,11 @@ }, "row": 0, "col": 0, - "id": "e3a9539d-2ccb-96e0-2afa-36f93e40233d" + "id": "e3a9539d-2ccb-96e0-2afa-36f93e40233d", + "typeFullFqn": "system.cards.entities_table" }, "cf2eba6b-44f6-9cc2-6089-35c735f54898": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3319,16 +3221,11 @@ }, "row": 0, "col": 0, - "id": "cf2eba6b-44f6-9cc2-6089-35c735f54898" + "id": "cf2eba6b-44f6-9cc2-6089-35c735f54898", + "typeFullFqn": "system.cards.entities_table" }, "3f6ed61b-f5af-13e3-7505-f69fd53f8211": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3477,16 +3374,11 @@ }, "row": 0, "col": 0, - "id": "3f6ed61b-f5af-13e3-7505-f69fd53f8211" + "id": "3f6ed61b-f5af-13e3-7505-f69fd53f8211", + "typeFullFqn": "system.cards.entities_table" }, "b06cecaa-2806-65a9-782d-4f2d8cf95a6c": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3635,16 +3527,11 @@ }, "row": 0, "col": 0, - "id": "b06cecaa-2806-65a9-782d-4f2d8cf95a6c" + "id": "b06cecaa-2806-65a9-782d-4f2d8cf95a6c", + "typeFullFqn": "system.cards.entities_table" }, "c3d39b60-a668-7f5e-e6f4-cae27151f4aa": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3793,16 +3680,11 @@ }, "row": 0, "col": 0, - "id": "c3d39b60-a668-7f5e-e6f4-cae27151f4aa" + "id": "c3d39b60-a668-7f5e-e6f4-cae27151f4aa", + "typeFullFqn": "system.cards.entities_table" }, "f78a0d66-60cb-188f-857f-9acd4d24bd5a": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -3951,16 +3833,11 @@ }, "row": 0, "col": 0, - "id": "f78a0d66-60cb-188f-857f-9acd4d24bd5a" + "id": "f78a0d66-60cb-188f-857f-9acd4d24bd5a", + "typeFullFqn": "system.cards.entities_table" }, "b81a171c-77c0-b857-21d2-cff02a1cb733": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -4109,16 +3986,11 @@ }, "row": 0, "col": 0, - "id": "b81a171c-77c0-b857-21d2-cff02a1cb733" + "id": "b81a171c-77c0-b857-21d2-cff02a1cb733", + "typeFullFqn": "system.cards.entities_table" }, "0e399bef-01d2-4e4e-02d2-e254ebe91e56": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -4267,16 +4139,11 @@ }, "row": 0, "col": 0, - "id": "0e399bef-01d2-4e4e-02d2-e254ebe91e56" + "id": "0e399bef-01d2-4e4e-02d2-e254ebe91e56", + "typeFullFqn": "system.cards.entities_table" }, "819c1d39-de7c-8ac3-858e-0040d286823e": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -4425,16 +4292,11 @@ }, "row": 0, "col": 0, - "id": "819c1d39-de7c-8ac3-858e-0040d286823e" + "id": "819c1d39-de7c-8ac3-858e-0040d286823e", + "typeFullFqn": "system.cards.entities_table" }, "d4f73f32-f719-98bb-d427-b5c8957e8f47": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -4583,16 +4445,11 @@ }, "row": 0, "col": 0, - "id": "d4f73f32-f719-98bb-d427-b5c8957e8f47" + "id": "d4f73f32-f719-98bb-d427-b5c8957e8f47", + "typeFullFqn": "system.cards.entities_table" }, "f16a258c-3f6c-9317-fda7-48b33d8fe8b9": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -4741,16 +4598,11 @@ }, "row": 0, "col": 0, - "id": "f16a258c-3f6c-9317-fda7-48b33d8fe8b9" + "id": "f16a258c-3f6c-9317-fda7-48b33d8fe8b9", + "typeFullFqn": "system.cards.entities_table" }, "d1951ec7-ab13-87e4-bc05-ce2318dca353": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -4899,16 +4751,11 @@ }, "row": 0, "col": 0, - "id": "d1951ec7-ab13-87e4-bc05-ce2318dca353" + "id": "d1951ec7-ab13-87e4-bc05-ce2318dca353", + "typeFullFqn": "system.cards.entities_table" }, "75b6372d-4def-42b4-8774-4edf413a8b83": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "entities_table", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 7.5, "sizeY": 6.5, "config": { @@ -5057,16 +4904,11 @@ }, "row": 0, "col": 0, - "id": "75b6372d-4def-42b4-8774-4edf413a8b83" + "id": "75b6372d-4def-42b4-8774-4edf413a8b83", + "typeFullFqn": "system.cards.entities_table" }, "dfda1a57-6c04-3482-2054-84954bbef626": { - "isSystemType": true, - "bundleAlias": "cards", - "typeAlias": "markdown_card", "type": "latest", - "title": "New widget", - "image": null, - "description": null, "sizeX": 5, "sizeY": 3.5, "config": { @@ -5152,7 +4994,8 @@ }, "row": 0, "col": 0, - "id": "dfda1a57-6c04-3482-2054-84954bbef626" + "id": "dfda1a57-6c04-3482-2054-84954bbef626", + "typeFullFqn": "system.cards.markdown_card" } }, "states": { diff --git a/application/src/main/data/json/system/widget_types/gateway_general_statistics.json b/application/src/main/data/json/system/widget_types/gateway_general_statistics.json index 8cf20c1340..977e09aa7d 100644 --- a/application/src/main/data/json/system/widget_types/gateway_general_statistics.json +++ b/application/src/main/data/json/system/widget_types/gateway_general_statistics.json @@ -1,6 +1,6 @@ { "fqn": "gateway_widgets.gateway_general_statistics", - "name": "Gateway General Statistics", + "name": "Gateway General Chart Statistics", "deprecated": false, "image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAACgCAIAAADGnbT+AAAABmJLR0QA/wD/AP+gvaeTAAAXk0lEQVR42u2deXwb1bXH+Y+lfY/utK98WkogZSk7LcujBF4pAT6lLaWvlBZeCrTw4AGFvrbQkPYRwlIWfyCr7WA7XrN4wzZx7DjxIu+2vEteZHmTJdmOd8faR9K838y1FUWWZVmaGQM585mPPmNZR/fOvV+de+455849iw/7OOuss/gojpaWFhI8cwQFVlQqVbp4JCUlzc3NaTSaveKhVqsJLBKMHCx2eDyeuLg4r9ebl5c3NjZGGosEpQEL+qm+vh4XKSkp0F4ZGRkWi4XAIsFowdqzZw/HcbiAurLb7Z2dndnZ2QQWCUYFVnd3d1FRkU914XV2djY5OZnAIsGowIqPj/cNfOXl5bDiY2Nj+/v7/anC0UIHHeEdwZUQxkRY8WS8k6AENhb5sUiQwCJBAosancAisEiQwCJBAosancAisEiQwCJBAosancAisEiQwCJBAosancAisEiQwCJBAosECSwCiwQJLBIksEiQwCKwSJDAIkECiwQJLAKLBAksEiSwSJDAIrBIkMAiQQKLBAksAosECSwSJLBIkMAisEiQwCJBAuuzK5jV7SKwCCyJBd+pd35nz7x6xE1gEViSCb7XIFCF84lCO4FFYEkj+IFaoOqSuPn1cfMX75nvnvQQWARWtIKvFg6CqnWx8+83Op8ptuP6hWN2AovAikowsd3FqIppcDaOuIv7uUtj5y+JnR+a9RBYBFaEgvs6BKow9r1V6wBV7PzdYRve3KJyEFgEViSC6VrXxSJVL+YN+6jC+ZHOBQV2Wfz8uNW75lXVTni2q50/zbLWGN0E1qdAEP4q0AOqXq92ZKi6/cHC+auPBKX1dp1zTarq9vBweWytctyaamETVZy3pFim7V6FwMKOX2yPQmwup9Pp0tLScnJy2J5NBFaII7uHA1Xora3Vwgi4FKz9ncIQeXWC5aTTq1hVwU1OD/fMUfv3PjzF0w1JlieL7HcftOIaF0qA5Xa7ExISfG/t2LED79SJB4EV4ijs4+BWQD+9orIzjJaChfMnWUJfxrY45a6qYc6T1O56pMB2ady8j6cfpllfOOZI1bgaxMpgSnGVSNtbRf2ygzU9Pf3mm29iYybs+wUthe2Z8KbRaMSOmATWcgd6iFH1t3K7j6GgYCWIs8Ub91nsnPRVbWpu0Yx7Pmh03i/iy851cfP3HLS+WuU40s8trc/OJsHTtj52ric8H1vkYLlcLrPZDC21fft2QIZ9VvGmyWTKzc0lsIIeRwc4phX+Umb377OgYOH80X5BSaRpXBJW1eXhXy53XL131scTBtxNH9t2qJ2Vw1zQavjOxw8LPrb7DlkdbjnBws6XBoMBF9hVdXx8fOfOnbjGRpilpaUE1tKjwuD+brzQkc+V2AM6bDmwdoju+NvTrW6PZFVl4UicN6dY4YyFF63O5A7Nk+8Eed9PnIHstmqHjGBhp8Jdu3YdOHAAJjx2kysuLsbWvbt378ZemP5U0X6FOJLKdevjTqJLHs0cAUZhnukV3awjPyjRS1KNA6qudXtOrgMZhYPhV8P/fLe4/5LYk5jMJpTp5N2vEANi0GvSWL4DHqDL9wpKAhoiqCZYTmPhfLvOAcG7D1g93miranV578wQLKo/lTpClBj6hOAWlTAg3rDPsqKbjfxYMgo2jbqvFOdTyFloWL63lutIjFPf3yeIlw5xUVZ1c4XA6J0ZllqzOxqw6s3un4omPywzL4G1JoLNY27mE3rssB390bh6sHD+X6UAxC9ybNFUtXLYjfELqRPZ3dyKJYYGC6/HBrlrE4X7golGYCkniN9xy5h7W42DUYXYXwiqVuxmmMyYuOF7GszuyKoKz+dNycI3/KPSEU6J4VR1T4sTpGI60jnhIbBkF+ydEpxDd2Sccg49nG+rN4XbW8udfy1ziGrPFllVnz0qWEX3HrL6+I4eLJxPiRk+Pz5gtXEEljyCjKd/3zd9KhKyzwJT3ee5jhKsMgN3+V5B5cCrudqq5uo4CF7xoQUe//BLDKeqNSb3hnSLtIkYBJZwwAeNJKr/2G/1j6yBpzRtWDytqpuZ1nm+xL6qqo7Me68RjaF36hyrLTGcqsJiWy+6fIsHuGhatc7sZhH3Mxos/bQHmcQYAnw8wZLFuPDGkYHQtlQ0YBUtJgAitBdmVWHq/bZAyJJArkQEJYZZ1deqhWH6+iTLqCWSePngrOepIjtrRrTemQWW082PznvbTgjxsnsOWf2DIU8ese9rdzGeJOytEBGVVyocYd5jkhhtBPTHBzn5wIJu/kWugO9v8m2nnG1el3CGbNVZh/f1GgdTeBjoETxFVFResMb82JcbLLTFpM0LIwnauEDPJXe4/ppvQOfhZ/TLXBuGuasSTuWQsBNx/scL7QltrgCrXG6wPupdSAA8seiZDHGPUKvMK4vpW8QlhikIcK9LspyWi9H7DF/1Rb7jXn74XX6+GaD5V5Xz8Cka1/WiCO4IjYkoaqO46E1esKC64VeUFawdTc6NB63wPbK8qNAnxiAYT3ekWx4rtMe3LhtckxssnL/OE3TDPxcTAJe7R/QcS1tAnylT1Q/bhGxYhNih13nj+7zq7NPO2gtnau/jRxJ4x3DZEHfXolWK1KDM7lPaVF6wgD8zC+QDyzzvZfFgdkIbIyKLjJEHc23wJm/KHEHqyHv1Tnj/cns4mKVhWk4KgHWgU2gcuMfmHN4Q9xgjLlG8KcW6XMKCHFV9tkQYqV/K+YivPI9XncOP7uPHMviex/m6i/wh6z16TVLu83/Oyo1tnAr4BhnBwsDkM2KqZUuy/psY3IBNUAJoTGvAx3KC7QbdaMfLjSOh0ldYOGVXk3O5e2wdcyPlC5oYzg4lfwPwPjyRqZ4v+4oAkOGN0zy009pDha+XHb7fWv4lH2Heys+fbLzTpHmta6BGbXbICxZSY9m46wtiSA4WZlXQ2Ehqy+91rZXiWU5wuvnXaPHxtqcbR5ZlImkxARBuyaX3iDeZ++OPxxwKK9cW45i1ej3qX1DwcIF+wXJH5hYML2anAvfnik826yrN2q3zDbd7Kz/ng8xd9dWZpgd554gsYCEHbUO60Chv1DpYKAqRV8nB+suCF9u+hiNaUMHOgXphBBEberLlUfYjDnqyDHQopKX3+HcxsIjE4hqToqO22mw/qb4LNR+tvPmKuBOYLxtPemDVsA7FeVfKBOwKf5Em01xP37GRjs2W+ptx457K83mPTRawEtuE3yKcubBpYOWwZEUk0UoIFrwm+N1cFj+tbXt/qvm3zaaZTwxYHH7E6Jjp5l+5q74iXjykHrEF/fwuMUv4tjSLurk1aKQ5q4dT2BycaP096uysubh12PSQOMO4cnFFBiY90LKhS2wbNuj6imUZCi0u741ifgimXWzAZn/uOq6XECwsXX8k5bC5/FqmGGz117cZBj4JYOl7s1AfV/WFYL1zoJGr/gb+nG26v8k8v/TzcB1BJ6Fx3i/p890azHm2WmuLyq7wPGO4813U1lP5hc6BBvxZbuBYqg/0FhRE+E4+WcBiE5n7Mq2+Yt6sFZTWbUlTbq80YA2NaisL72VI2WuvstddLfRlzbfRkWsL1gGVxl57JSoz2B3P3tEONnPV38Q7c+q7m0yzS0XeqRca5/bkKV/bPF8SGGlWBqxefQGvOhdjmb43x/cmVnj/6bjDf066NmDBRckyTDK0tq6BamPnWzp9Yb3RCS8A3sQqvGjB4qZ4/YselWAtWisuMHR9AJug2TQ517hR/Kl90b9RlAerSfV3QX3WXeNvV2mGNK5qYaKOIbLZOLVcAiBSo3B/Bb0c81/DalbSM6IZbGcDt0n7RvQlSg9WjKpn84Hddccecldd4JspQJc01Lx8R0IH1L7LEylYXk7wy9UKv35Pxbl5BY+W6Uf8TE7HifbnxOLOMWtfWxOwwLdDJdx1r/7jgH+1G/odtZcJP4b6H2DOFZgAKJqhD+TYEKi4TpzrvF3nUGwCK04Dxx11l6N6Uy0Ph3aRKAuWtZs3x/KdD3lqvuHvQLPVXTve+hSGqgVvh+qc+iN31jan8B7rqsGaOsqrr2Hf01V+z8bExv85GsT+MHa+Iyrzs1EuNJnCYGFahKIxpVrGqh1ko6St/rrWYXNAAuCV8XPChEv0LyAAFV6JLoyz0d+j2mydb9ggKNTG25rMFkkaJwqwnKP8eLYQSKq/xB+mE6XfUpc+NNi9t214yFdM56AaHh1nxaJLrfqrfM9j/HSpGLZf6bD1CjEEJth45XBfFkt3LB4I/sPS9+ZiQBRsmsaNWapGxcDCbEgs95wAO8//bB0esdbdgLo5ar/bbujz/9cT2WZfOLxkgFsRqT5dJgZcfNWM6qqBnlS12RnxPeJHKM42LmobHpaqcVYP1vghvvdpvvHy0+JHdd/muzeN6JM2JHRihlzUH7xdDqmaYvLjmotuOyWovlaIRrnGg5fHTfN9/8tXfl74ZM3XhE96nQiZregzxIwGg6/AlurydoNeGbAmWzYJNrvqgdAfazGesNbfJMznay9tH+o9FaEr07EEQKxADCEO7YJpAbhcdHl/zjc49OvSQzjMlrtHUcef7an6knawRcLGWT1Yi34/vvrL/hFv/PcRMWEoRJejQvEtwoTxgfQ218Brp1QdAlL4Kug/X3rGgjl1ofiBc6dqf8Y7T+DtjnHPxaJhuzR7ZIn+GGb9h9l+d79KbrDQK6gnHIN5qrKVTTHjFHN0uWq+BZPZVyIidI8V2kMitRfuJdZoMInwJzyTtap3HbVXLLxZu97QtT2c4YyVqNMf8YrRwD7dIWkbZ/Vg9T7LG2NEmE4zwrHgjoVUkXobukIbDy4GyEDP5Me89kHeFxCA5ht4hR/P4tXXLbzTvpG3dPhmhYgrC4vpjjvCM6VnzKofiVPF8/t0+2UFC64EwVXd8XKYgvA7zKl/LHL/TaYqIIiEk4pgrddsmsbkmvksBPO/7kaMg75IEQRhTQ707LPXfo99APAZunYEdZv5n4WqfE/Vl/F5fLnkjSON8Q59hRmN/0NXQlQI4Qt8Elm2M45FA8s5xpt28k03nja8Qp+NpfvPCptH3cwLHILdwEcIqbRj7S+yqSIs6xXnO5GBhTmggEjV11tM4+ELQgMJMTUhuHZB10BtUEFM1jDD5aoWpkSYUYpIcctU1QVHlBhUOZshC1lMVJcbkedV68Rp4G/CbxalwTrcx7Ek8SpjWBVij/WBHzXwi+bqeN1TfP13+OH3eE9gdiVSGCCFVS6rbQJD105R4SNstwndKS1YsJph3+DLMQatlkjEeRDtEdn6yjFVeoCZD/3HNAqbaSIYF15VuV59nqXh1gW8qr4OvEB8ANNsLJ5v+GGY4+YagIWnXLBJsv+zN0NXCKlIF4u6ZzK89bcAC4+lY0NtuYGLoAkQvXJXf401ZatxVEKwYOiIxs1lDNnVjqHgcqL1CYEA1fmoJPNKQMuyia1Y4Q09faURVLWrv2qm6efsSwAovrPVaFycBj6JNy2qi4CvTDMbCcDC4zfR5bemWle15u5BMbcaidJhgsXyLf2fRLXaJtAOtTlr1jGzt8PQJQlYMJXY9FMcoSJ2gLngixGneP8K/6RX9S9syjLd/J9w00TZzd39lbNNP1nAq/ILY20vjHS8wlCDjSWfLyZasJAzjwdaosuxNmFVFcJiI5b0jaUNK5abVNbDHDwrPvYpdBMgXG9puIUNEJGpgYATowzTgj4zJVJ3JdetenzRg3DeZMt/aQY7JOxmuNamm355akavOrdXny+r9zhasFjWx10HLBEs5nw4P9xHVW9MnQgz1L9iEzSZT0ITMA8Qpk7RtB0whftHiAQMVEsSYDFrXp1o/QNST2WawAJWIAtw4buSO94VFVhY9MOS+LBqKoIKIe0TyZ9IAfVfXrf0QMY+m0WuVl0t3wQucTgQfr4TrY8HtV7Dabvxtv9mSVefkJzVsCMEQwqUGBVYsJDE0Kk14gptEp+vj0TQEIX+PFv4DMK00jYBxgIk0bI5fASJXJohLXQecr07DD2fLrCUEYwcLCyWxWI3TO4OdkXuHCrsc7E1wVg6F7RE+AwF62rvbLVR+iaA15tlHHDV/xZgcq3YdkjcgyCmWp9tPtYArD+XCjE7hHGirBDWH7OHeQb1u94nrvN5/iOjTE0AB8+s+j5mchk73w5TsKevjDmflnouCKyowOqbEfLNcX4cXjJaiAohSQGpCtB8Sx/OVCj6XZHWnFLRI18TwJMkprucwzyoLBISUtDFvNv+IBJY0oD1e1HNPF1sl6RCbHnkH47Ygy5LRFqzAm3X13uQTfEQuoaLMoQgclRYPA4TTAJLSrCwipKlGBwblCbGhJVhLGMEz87zlZUvZuj+IDnax2yuIkNhqI2loyDKdlyVFtwjarY4a4SkDOSonAl8KArWw3mrjtmtWCEkLDCLbSFM5F0IE2GhgZJth6DvnPpeMdn1vKAjHRIBWH7BcstQCawIwTomPo4BTnCVgZOwQogAsg1eak1CnbLFVdS3pCyEiZRsu0WTS1xr2vo7/+QTZASwgONy8WACK3Kw2DSN7XQlbYVeLrezdG9ucRU126d0TdquWvU+CwMLQethE3vzRNsfhVTgpp+dOXwoB5Zo96yw6DviJwqzRyE+J9ryt6VJ/PzW1Qoi/46ZXEgGR74U0ogRHkY8JHQUj8A6DSybzZaZmZmamqrVavGnRqNhexdiM7AAsGC2v9fglKlC/xCfVsDOD/xSv9eq7bBOiz3FAHkHWGnNFv+cUXxEC1Z+fr5er8cWmDExMezP0dHRoBoL1k9kD+cMp0Jwr98gLt3ckGHxL2UN2w7LE3wmF1JNfMMigbWKoRBbNSUmJvLibqvYpAk7geGdALAiq0r4FXpdfL7qrtOTcNa87fp1GTC5TJqtZxofEoDFNlmdmJjgxV3m7HY7tpXLzs5WGCysN0dOX8Mnr+2Qcxf0yQsEViiwsJXc/v37MRoygJhphT3lkpOTFQaLsUW99RkBS6VSbdu2LV08oLTKy8uxjS828O3v7/enCkdkW+PReaadp+1XeNoiZI6DGltqvCugsUjwTPRjEVgkSGCRIIFFggQWgUWCBBYJElgkSGBR25EggUWCBBYJEljUdiRIYJEggUWCBBY1OgkSWCRIYJEggUWNToIEFgkSWCRIYFGjkyCBRYIEFgkSWNToJEhgkSCBRYIEFjU6CRJYJEhgkSCBRY1OggQWCRJYJEhgUaOTIIFFggQWCRJY1OgkSGCRIIFFggQWNToJElgkSGCRIIFFjU5gEVgkqBRYOp0uLS0tJycH+1MQWCQoGVg7duzAZmB14kFgkaA0YEFLYXsmXBiNxry8PAKLBKUBy+VyxcXF4cJkMuXm5hJYJCjZULhz5068YiPM0tJSAosEJQOruLgYGxfu3r0be2EG7FdIBx3hHkE9CxgQQzgdeGUPKvHTWKLS90PHGXIQWHR8AsCqqKiA+YVXxepXVlaGEvEqd0HYqri3t7egoMD3Z3V19ZEjR+Qr0Wq1ZmZmpqamYp7k8/WkpKR4PB6ZSrTZbIcOHYL3G3eKP5ubm9G2WVlZISwfJcCanJxEK+ACNz81NaUAVdPT04mJibjA68zMjKxlDQ4O4gcTExPD/iwqKqqvr5e1RLgJ+/r6gJGv0MOHD2/ZsiUg4CHhgZ/KwMAASty+fbvdbt+zZw9+P1VVVQGecKXB6urqYg6I48eP41oBsNDEmJyirPj4ePma2/9Ai7MLdPbBgwfx+0YHyFqixWJJSkpijkOghvuV9U7n5uZaW1uzs7P9+TYYDGsJlkajYUMSXrVarQLd7HA4kpOToUjw6nQ6lQRr69atKL2jo0PW0RChs4SEhImJCWgRXOAe5QYLAZXCwkKoRvZnd3d3gBt8DcAaHh5mQR5UBT8vBboZ4fCSkhJcHD16lJkFioHFLkZGRvx/3JJbdfv378doyNQV9BYsns2bN/t6XfIDGEFB4mLXrl14haKSz6Q7a1UNAVsHowNeca2MxkLgEl2LV1wrCVZDQwN6GlYI2JKpLGjibdu2pYsH7Ff2pqwaS6/XoyVBM9gFTy+99BKGAplmY/8Pl7O7ukBGoYYAAAAASUVORK5CYII=", "description": "", diff --git a/application/src/main/data/json/system/widget_types/gateway_statistics.json b/application/src/main/data/json/system/widget_types/gateway_statistics.json index 1eb24c4482..198591b6dc 100644 --- a/application/src/main/data/json/system/widget_types/gateway_statistics.json +++ b/application/src/main/data/json/system/widget_types/gateway_statistics.json @@ -1,6 +1,6 @@ { "fqn": "gateway_widgets.gateway_statistics", - "name": "Gateway statistics", + "name": "Gateway Custom Statistics", "deprecated": false, "image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD/2wBDAAIBAQIBAQICAgICAgICAwUDAwMDAwYEBAMFBwYHBwcGBwcICQsJCAgKCAcHCg0KCgsMDAwMBwkODw0MDgsMDAz/2wBDAQICAgMDAwYDAwYMCAcIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAFSBl0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9/KKBwKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiimyLvQ84PY0AOoqKyn+02sb/3lBqWgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooqlr0rR2IwcbmAP05oWrAu0Vy9FachPMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvRRyBzHUUVy9FHIHMdRRXL0Ucgcx1FFcvQrFTkcH1FHIHMdRRUdo5ktY2PUoCfyqSsyiro3/ILg/wBwfyq1VXRv+QXB/uD+VWqACiiigAooqj4l8S6d4M8PX2r6xf2WlaTpkD3V5e3k6wW9pCilnkkkYhURVBJYkAAEmhuyuwSbdkXqK8l8H/t8/Ar4h+KLLRPD/wAafhNrutanKILPT9O8X6fdXV3IeiRxJKXdj6KCa7z4ZfEzQvjJ4D03xP4Z1GLVtC1iLzrO8iVlSdMlcgMAeoI5HajXcV1exvUUUUDCiqPiXxLp3gzw9favrF/ZaVpWmQPdXl7eTrBb2kKKWeSSRiFRFUEliQAASasafqEGrWEN1azRXNtcxrLDNE4eOVGGVZWHBBBBBHXNAE1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUVg6n8UvDOiePtM8KXniLQrTxRrUElzp+jzX8Ud/fxR8ySRQFvMkVP4mVSB3o62Dpc3qKw7v4neG7D4g2nhKfxDocPiq/tHv7XRpL+JdQubZDteZIC3mNGp4LhcA963KOlw62CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACqHiH/jyX/fH8jV+qHiH/AI8l/wB8fyNOO4nsY1cx8YfEOq+Fvh/eXujQST3kTRgmO1a6eGIyKJJVhX5pGRCzBBySOh6V09ZXjPw1J4r0M20Go3mlXCyJNDdWxG+N0YMMg5DKcYKnggkVuQeUx/HvV9I8Dw6npl1pvj2zutesdLgu7XZbzxpNKkcqXERZAkyFiAOPvLuUYOe71b4wQ6J4zttJudJ1WKO7ulsYr11jWF5mjLhVBfey8Ebwu3IIzxWJP+zudQtNWnu9euJdc1fUrHU5L2O0jjjjezZGhRYRxt+T5ssWO4/MMABNQ/Zug1D4nR+I21VsxapHqyxNYwvKJFj8sxidgXWIjkKuMHPJHFICt4S+O+o+IdN0KbUdOl0aXU/FF5oix+XHOJ0h+1YOVlynEAy3zfMDhcHIl/4aObXfhzrWvaL4e1W4jsbCW9s3laDyrrYSCpxLmNhjJR9rYB4yMVoWHwHjtH09X1a5lt9K8QXGv2qeUqsjTrPviLDqA1w5BwCMAc9ap6J+zfDp9xq0l1rNzeSanpkulGYW0UMzxv1kndR+/mGAA7AcZ4ySaAHy/HlNE1TUf7Ut7yD7Ho+nXp09LdHl866mliSNZFlIdmdFXbgAcHecnb1/g7xZN4ojuhc6Pqui3FnII3ivUX58qGDI6MyOvOPlY4IIOK5TUv2eodf+3y6hq91LfX+mWFibmGFIjBLZzSTRXCKdw3eY4O05HyDrk11Xgzw1f+H4rt9S1q51q7vJRIzvGsMUAChQkca8KvGTkkksTnoAwNuiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6Ox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+VS1FY/8eUP+4v8AKpa5zQq6N/yC4P8AcH8qtVV0b/kFwf7g/lVqgAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAqh4h/48l/3x/I1frnPib420bwHoMV3rmraZo1pJcCFJ766S3jZyrEKGcgFsKxx1wD6U47iexFVTXdBsfFOjXWnanZWmo6fexNDc2t1Cs0NxGwwyOjAqykdQRiuW/4aP+Hn/Q+eDP8Awd23/wAXR/w0f8PP+h88Gf8Ag7tv/i63IJfBX7P/AID+G1j9m8O+CfCOgW32NtP8rTdHt7VPszMXaDbGgHlliSU+6SScVqaT8NfDmg3ul3FjoGiWdxodidM06WCxijfT7Q7M28JCgxxHy48ouF+ReOBWN/w0f8PP+h88Gf8Ag7tv/i6P+Gj/AIef9D54M/8AB3bf/F0gMnwn+xl8HvAXjr/hKNC+FHw10XxN5rz/ANr2Hhiytr7zHOWfzkiD7mJyTnJNTan8Er/xR+0JpvjLWdfivNI8NW8q6BokOnCIWVzMgjmuppzIxmfZuRAqRhFkfO8kEaH/AA0f8PP+h88Gf+Du2/8Ai6P+Gj/h5/0Pngz/AMHdt/8AF0AbWtfDjw94k8WaVr2oaDot/rug+YNM1G5sYpbvTvMG2TyZWUvHuHB2kZHWs0fAfwOPicfG3/CGeFP+EzMfknX/AOyLf+0ymMbftOzzcY4xuxVf/ho/4ef9D54M/wDB3bf/ABdH/DR/w8/6HzwZ/wCDu2/+LoAn1f4CeBfEHxItPGN/4L8J3vi+wUJa65caRbyalbKOgS4ZDIo9g1N+Jv7P3gL41XVhP4y8EeEfFs2ltvspNa0e3v2s265jMqMUPuuKi/4aP+Hn/Q+eDP8Awd23/wAXR/w0f8PP+h88Gf8Ag7tv/i6ANbxx8LPD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JWk3M8QUlURi/wBX0UAeL/tl/GeX4IeHtGv9L8La5rXiTVbiTS7HVtN8Iah4jHhyN1DTXM0dhBNOI8IuEUASyCNSyrl15HxN4ZsPEH/BP06X4I07xlqEP2i12R6v4dvtL1e9mGpxSXM8tpcwQzqXfzZSfKVSCWX5cV9LUUAeV/G/xL4X+H1t4u8R3XgDW/Fms6PpFpeTR6b4Zn1G41ZYp5HtbeArGwmljm3OETc0W8OQMg186anaP8e/hHf681r8T7jxBN4r0jXvGMVt4N13w5cJYQEqlrpovbWCa4FuuH3QAzMyu6hHdEH2/RQB87fsv2URtoTrGkeO9S0KLxPK3gC58V2Go3esaZbHTwJJbmW8VruBS5u0R7wrIQ6qT8yg9Bpmh6npPxr+Nupnwzda3a32laV9htJYxHDrbR21wHgSSQeW2SVU5OAXG7Fe00UAfNn7L0uqeL/2mPEficL8QNR0W60VbX7R4y8ONodx4fnFxv8A7MskNtbCe2wSxl8uQlkT/SJRhU+k6KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvkr9unwzrN78YftcVz8S/D2n33hSTSLa+8E+HJNcl16eSZy2nXwW3uBa2+NhEwFu372TF1Fjn61ooA+EvH/AMM/FXhPX9S1KXRvijo3jnV/C2iQ+C7bwfPqMmiadqFtavG9neNbE2/kxzMSf7RJgKSZQl91fSvxC8P6rqH7Snwk1D7DczwadZ6yt/cwws0Fq8kFuFDuBhdzBguSM4OOlesUUAeC/G3xodE+LXgH4gnQPGV/4d8NSa1ompR2Phy9vb60klESx3KWkUTXEsJa3ZBJFGwKzKw+Qlq6b9jTwvqfhb4E266tYXOl3Wp6tqurraXKbJ7eG71C4uYlkXqj+XKm5TypyDyK9UooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA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qf8APnYf+Bj/APxqgDQorP8AtOqf8+dh/wCBj/8Axqj7Tqn/AD52H/gY/wD8aoA0KKz/ALTqn/PnYf8AgY//AMao+06p/wA+dh/4GP8A/GqANCis/wC06p/z52H/AIGP/wDGqPtOqf8APnYf+Bj/APxqgDQorP8AtOqf8+dh/wCBj/8Axqj7Tqn/AD52H/gY/wD8aoA0KKz/ALTqn/PnYf8AgY//AMao+06p/wA+dh/4GP8A/GqANCis/wC06p/z52H/AIGP/wDGqPtOqf8APnYf+Bj/APxqgDQorP8AtOqf8+dh/wCBj/8Axqj7Tqn/AD52H/gY/wD8aoA0KKz/ALTqn/PnYf8AgY//AMao+06p/wA+dh/4GP8A/GqANCis/wC06p/z52H/AIGP/wDGqPtOqf8APnYf+Bj/APxqgDQorP8AtOqf8+dh/wCBj/8Axqj7Tqn/AD52H/gY/wD8aoA0KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigCro3/ILg/3B/KrVVdG/wCQXB/uD+VWqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK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J1KPzbe4QMu8ZIIKsAysCCCrAMpBBAIIrxz42+NDonxa8A/EE6B4yv8Aw74ak1rRNSjsfDl7e31pJKIljuUtIomuJYS1uyCSKNgVmVh8hLV037GnhfU/C3wJt11awudLutT1bVdXW0uU2T28N3qFxcxLIvVH8uVNynlTkHkUAeqUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAVdG/5BcH+4P5Vaqro3/ILg/3B/KrVABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAVdG/wCQXB/uD+VWqq6N/wAguD/cH8qtUAFFFFAF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UPtOqf8APnYf+Bj/APxqj7Tqn/PnYf8AgY//AMaq41wFpn2ugCt9p1T/AJ87D/wMf/41R9p1T/nzsP8AwMf/AONVZF1UizA0AUvtOqf8+dh/4GP/APGqPtOqf8+dh/4GP/8AGqvg5paACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAq6N/yC4P9wfyq1RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFACHpUMxoooAqTGod1FFAChuasQmiigC1Ef51LRRQB//9k=", "description": null, diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.html index 6f8c675e6f..ed45f6e830 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.html @@ -556,9 +556,9 @@
gateway.statistics.commands
gateway.hints.commands
-
-
+
gateway.statistics.attribute-name @@ -619,7 +619,7 @@
+ [class.no-padding-bottom]="gatewayConfigGroup.get('thingsboard.checkingDeviceActivity.checkDeviceInactivity').value">
diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.scss index 803654734f..d15c05a902 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.scss @@ -45,6 +45,14 @@ .saving-period { flex: 1; } + + .statistics-container { + width: 50%; + + .command-container { + width: 100%; + } + } } :host ::ng-deep { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.ts index bef0c2cc74..ed64c96799 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-configuration.component.ts @@ -48,6 +48,7 @@ import { StorageTypes, StorageTypesTranslationMap } from './gateway-widget.models'; +import { deepTrim } from '@core/utils'; @Component({ selector: 'tb-gateway-configuration', @@ -91,7 +92,7 @@ export class GatewayConfigurationComponent implements OnInit { ngOnInit() { this.gatewayConfigGroup = this.fb.group({ thingsboard: this.fb.group({ - host: [window.location.hostname, [Validators.required]], + host: [window.location.hostname, [Validators.required, Validators.pattern(/^[^\s]+$/)]], port: [1883, [Validators.required, Validators.min(1), Validators.max(65535), Validators.pattern(/^-?[0-9]+$/)]], remoteShell: [false, []], remoteConfiguration: [true, []], @@ -107,30 +108,30 @@ export class GatewayConfigurationComponent implements OnInit { handleDeviceRenaming: [true, []], checkingDeviceActivity: this.fb.group({ checkDeviceInactivity: [false, []], - inactivityTimeoutSeconds: [200, [Validators.min(1)]], - inactivityCheckPeriodSeconds: [500, [Validators.min(1)]] + inactivityTimeoutSeconds: [200, [Validators.min(1), Validators.pattern(/^[^.\s]+$/)]], + inactivityCheckPeriodSeconds: [500, [Validators.min(1), Validators.pattern(/^[^.\s]+$/)]] }), security: this.fb.group({ type: [SecurityTypes.ACCESS_TOKEN, [Validators.required]], - accessToken: [null, [Validators.required]], - clientId: [null, []], - username: [null, []], - password: [null, []], + accessToken: [null, [Validators.required, Validators.pattern(/^[^.\s]+$/)]], + clientId: [null, [Validators.pattern(/^[^.\s]+$/)]], + username: [null, [Validators.pattern(/^[^.\s]+$/)]], + password: [null, [Validators.pattern(/^[^.\s]+$/)]], caCert: [null, []], cert: [null, []], privateKey: [null, []], }), - qos: [1, [Validators.min(0), Validators.max(1), Validators.required]] + qos: [1, [Validators.min(0), Validators.max(1), Validators.required, Validators.pattern(/^[^.\s]+$/)]] }), storage: this.fb.group({ type: [StorageTypes.MEMORY, [Validators.required]], - read_records_count: [100, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.required]], - max_records_count: [100000, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.required]], - data_folder_path: ['./data/', []], + read_records_count: [100, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.required, Validators.pattern(/^[^.\s]+$/)]], + max_records_count: [100000, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.required, Validators.pattern(/^[^.\s]+$/)]], + data_folder_path: ['./data/', [Validators.pattern(/^[^\s]+$/)]], max_file_count: [10, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], max_read_records_count: [10, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], max_records_per_file: [10000, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], - data_file_path: ['./data/data.db', []], + data_file_path: ['./data/data.db', [Validators.pattern(/^[^\s]+$/)]], messages_ttl_check_in_hours: [1, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], messages_ttl_in_days: [7, [Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], @@ -147,9 +148,9 @@ export class GatewayConfigurationComponent implements OnInit { }), connectors: this.fb.array([]), logs: this.fb.group({ - dateFormat: ['%Y-%m-%d %H:%M:%S', [Validators.required]], + dateFormat: ['%Y-%m-%d %H:%M:%S', [Validators.required, Validators.pattern(/^[^\s].*[^\s]$/)]], logFormat: ['%(asctime)s - |%(levelname)s| - [%(filename)s] - %(module)s - %(funcName)s - %(lineno)d - %(message)s', - [Validators.required]], + [Validators.required, Validators.pattern(/^[^\s].*[^\s]$/)]], type: ['remote', [Validators.required]], remote: this.fb.group({ enabled: [false], @@ -204,7 +205,7 @@ export class GatewayConfigurationComponent implements OnInit { securityGroup.get('type').valueChanges.subscribe(type => { this.removeAllSecurityValidators(); if (type === SecurityTypes.ACCESS_TOKEN) { - securityGroup.get('accessToken').addValidators([Validators.required]); + securityGroup.get('accessToken').addValidators([Validators.required, Validators.pattern(/^[^.\s]+$/)]); securityGroup.get('accessToken').updateValueAndValidity(); } else if (type === SecurityTypes.TLS_PRIVATE_KEY) { securityGroup.get('caCert').addValidators([Validators.required]); @@ -214,7 +215,7 @@ export class GatewayConfigurationComponent implements OnInit { securityGroup.get('cert').addValidators([Validators.required]); securityGroup.get('cert').updateValueAndValidity(); } else if (type === SecurityTypes.TLS_ACCESS_TOKEN) { - securityGroup.get('accessToken').addValidators([Validators.required]); + securityGroup.get('accessToken').addValidators([Validators.required, Validators.pattern(/^[^.\s]+$/)]); securityGroup.get('accessToken').updateValueAndValidity(); securityGroup.get('caCert').addValidators([Validators.required]); securityGroup.get('caCert').updateValueAndValidity(); @@ -239,7 +240,7 @@ export class GatewayConfigurationComponent implements OnInit { storageGroup.get('read_records_count').updateValueAndValidity({emitEvent: false}); storageGroup.get('max_records_count').updateValueAndValidity({emitEvent: false}); } else if (type === StorageTypes.FILE) { - storageGroup.get('data_folder_path').addValidators([Validators.required]); + storageGroup.get('data_folder_path').addValidators([Validators.required, Validators.pattern(/^[^.\s]+$/)]); storageGroup.get('max_file_count').addValidators( [Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.required]); storageGroup.get('max_read_records_count').addValidators( @@ -251,7 +252,7 @@ export class GatewayConfigurationComponent implements OnInit { storageGroup.get('max_read_records_count').updateValueAndValidity({emitEvent: false}); storageGroup.get('max_records_per_file').updateValueAndValidity({emitEvent: false}); } else if (type === StorageTypes.SQLITE) { - storageGroup.get('data_file_path').addValidators([Validators.required]); + storageGroup.get('data_file_path').addValidators([Validators.required, Validators.pattern(/^[^.\s]+$/)]); storageGroup.get('messages_ttl_check_in_hours').addValidators( [Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.required]); storageGroup.get('messages_ttl_in_days').addValidators( @@ -342,8 +343,8 @@ export class GatewayConfigurationComponent implements OnInit { this.initialCredentials = credentials; if (credentials.credentialsType === DeviceCredentialsType.ACCESS_TOKEN || security.type === SecurityTypes.TLS_ACCESS_TOKEN) { this.gatewayConfigGroup.get('thingsboard.security.type').setValue(security.type === SecurityTypes.TLS_ACCESS_TOKEN - ? SecurityTypes.TLS_ACCESS_TOKEN - : SecurityTypes.ACCESS_TOKEN); + ? SecurityTypes.TLS_ACCESS_TOKEN + : SecurityTypes.ACCESS_TOKEN); this.gatewayConfigGroup.get('thingsboard.security.accessToken').setValue(credentials.credentialsId); if(security.type === SecurityTypes.TLS_ACCESS_TOKEN) { this.gatewayConfigGroup.get('thingsboard.security.caCert').setValue(security.caCert); @@ -407,9 +408,9 @@ export class GatewayConfigurationComponent implements OnInit { addCommand(command: any = {}): void { const commandsFormArray = this.commandFormArray(); const commandFormGroup = this.fb.group({ - attributeOnGateway: [command.attributeOnGateway || null, [Validators.required]], - command: [command.command || null, [Validators.required]], - timeout: [command.timeout || null, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/)]], + attributeOnGateway: [command.attributeOnGateway || null, [Validators.required, Validators.pattern(/^[^.\s]+$/)]], + command: [command.command || null, [Validators.required, Validators.pattern(/^[^.\s]+$/)]], + timeout: [command.timeout || null, [Validators.required, Validators.min(1), Validators.pattern(/^-?[0-9]+$/), Validators.pattern(/^[^.\s]+$/)]], }); commandsFormArray.push(commandFormGroup); } @@ -542,7 +543,7 @@ export class GatewayConfigurationComponent implements OnInit { } saveConfig(): void { - const value = this.removeEmpty(this.gatewayConfigGroup.value); + const value = deepTrim(this.removeEmpty(this.gatewayConfigGroup.value)); value.thingsboard.statistics.commands = Object.values(value.thingsboard.statistics.commands); const attributes = []; attributes.push({ @@ -609,8 +610,8 @@ export class GatewayConfigurationComponent implements OnInit { credentialsValue.password = securityConfig.password; } newCredentials = { - credentialsType, - credentialsValue: JSON.stringify(credentialsValue) + credentialsType, + credentialsValue: JSON.stringify(credentialsValue) }; } } else if (securityConfig.type === SecurityTypes.ACCESS_TOKEN || securityConfig.type === SecurityTypes.TLS_ACCESS_TOKEN) { diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.html b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.html index 973b3e02b7..e195dcece9 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.html +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.html @@ -25,13 +25,13 @@ matSort [matSortActive]="pageLink.sortOrder.property" [matSortDirection]="pageLink.sortDirection()" matSortDisableClear> - {{ 'widgets.gateway.created-time' | translate }} + {{ 'widgets.gateway.created-time' | translate }} {{ attribute.ts | date:'yyyy-MM-dd HH:mm:ss' }} - {{ 'widgets.gateway.status' | translate }} + {{ 'widgets.gateway.status' | translate }} {{ attribute.status }} diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-statistics.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-statistics.component.ts index 2e1deb900a..503f5643bf 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-statistics.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-statistics.component.ts @@ -50,6 +50,7 @@ export class GatewayStatisticsComponent implements AfterViewInit { public general: boolean; public isNumericData = false; + public dataTypeDefined: boolean = false; public chartInited: boolean; private flot: TbFlot; private flotCtx: WidgetContext; @@ -155,6 +156,7 @@ export class GatewayStatisticsComponent implements AfterViewInit { subscriptionInfo[0].timeseries = [{name: attr, label: attr}]; this.subscriptionInfo = subscriptionInfo; this.changeSubscription(subscriptionInfo); + this.ctx.defaultSubscription.unsubscribe(); } private createGeneralChartsSubscription(gateway: BaseData, attrData: string[]) { @@ -175,8 +177,8 @@ export class GatewayStatisticsComponent implements AfterViewInit { subscriptionInfo[0].timeseries.push({name: dataKey.name, label: dataKey.label}); }); - this.subscriptionInfo = subscriptionInfo; this.changeSubscription(subscriptionInfo); + this.ctx.defaultSubscription.unsubscribe(); } private init = () => { @@ -252,7 +254,10 @@ export class GatewayStatisticsComponent implements AfterViewInit { return; } this.dataSource.data = this.subscription.data.length ? this.subscription.data[0].data : []; - this.isNumericData = this.dataSource.data.every(data => !isNaN(+data[1])); + if (this.dataSource.data.length && !this.dataTypeDefined) { + this.dataTypeDefined = true; + this.isNumericData = this.dataSource.data.every(data => !isNaN(+data[1])); + } } @@ -263,6 +268,7 @@ export class GatewayStatisticsComponent implements AfterViewInit { if (this.ctx.datasources[0].entity) { this.ctx.subscriptionApi.createSubscriptionFromInfo(widgetType.timeseries, subscriptionInfo, this.subscriptionOptions, false, true).subscribe(subscription => { + this.dataTypeDefined = false; this.subscription = subscription; this.isDataOnlyNumbers(); this.legendData = this.subscription.legendData; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts index 5d3ea09447..c543ee99fb 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/settings/gateway/gateway-logs-settings.component.ts @@ -41,14 +41,14 @@ export class GatewayLogsSettingsComponent extends WidgetSettingsComponent { protected defaultSettings(): WidgetSettings { return { isConnectorLog: false, - connectorLogState: 'default' + connectorLogState: '' }; } protected onSettingsSet(settings: WidgetSettings) { this.gatewayLogSettingForm = this.fb.group({ isConnectorLog: [false, []], - connectorLogState: ['default', Validators.required] + connectorLogState: ['', Validators.required] }); } diff --git a/ui-ngx/src/app/shared/components/file-input.component.scss b/ui-ngx/src/app/shared/components/file-input.component.scss index 45ed704336..8577744995 100644 --- a/ui-ngx/src/app/shared/components/file-input.component.scss +++ b/ui-ngx/src/app/shared/components/file-input.component.scss @@ -83,6 +83,12 @@ $previewSize: 100px !default; } } } + + .input-hint { + cursor:pointer; + transform: translate(5px,-3px); + position: absolute; + } } :host ::ng-deep { diff --git a/ui-ngx/src/assets/locale/locale.constant-en_US.json b/ui-ngx/src/assets/locale/locale.constant-en_US.json index 7397f82993..053c1713bc 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2683,7 +2683,7 @@ "rpc-command-result": "Result", "rpc-command-edit-params": "Edit parameters", "select-connector": "Select connector", - "gateway-configuration": "Gateway Configuration", + "gateway-configuration": "General Configuration", "docker-label": "In order to run ThingsBoard IoT gateway in docker with credentials for this device you can use the following commands.", "copy-command": "Copy docker command", "create-new-gateway": "Create a new gateway", @@ -5329,8 +5329,8 @@ "events-title": "Gateway events form title", "events-filter": "Events filter", "event-key-contains": "Event key contains...", - "is-connector": "Is Connector", - "state-param-name": "State parameter connector name", + "is-connector": "Show for the connector", + "state-param-name": "Connector state parameter key", "status": "Status", "message": "Message", "created-time": "Created time"