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 3f92f54388..70b555a561 100644 --- a/application/src/main/data/json/demo/dashboards/gateway_list.json +++ b/application/src/main/data/json/demo/dashboards/gateway_list.json @@ -446,7 +446,7 @@ "decimals": null, "funcBody": null, "usePostProcessing": true, - "postFuncBody": "var newValue = value == true ? \"Active\" : \"Inactive\";\r\nreturn newValue;" + "postFuncBody": "var newValue = value == 'true' ? \"Active\" : \"Inactive\";\r\nreturn newValue;" }, { "name": "activeDevices", @@ -480,7 +480,12 @@ "settings": {}, "_hash": 0.36755550699981954 } - ] + ], + "alarmFilterConfig": { + "statusList": [ + "ACTIVE" + ] + } }, { "type": "entityCount", @@ -569,7 +574,8 @@ "widgetCss": "", "pageSize": 1024, "noDataDisplayMessage": "", - "enableDataExport": false + "enableDataExport": false, + "displayTimewindow": true }, "row": 0, "col": 0, @@ -5283,7 +5289,7 @@ "widgets": { "27e6b37c-085e-824d-fb13-69651a545ec1": { "sizeX": 48, - "sizeY": 21, + "sizeY": 16, "row": 0, "col": 0 } 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 6b2cc21038..bdf7d0d16e 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 @@ -48,7 +48,14 @@ *matRowDef="let attribute; columns: displayedColumns;"> {{'attribute.no-telemetry-text' | translate}} + + diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.scss b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.scss index 34b5f9d249..8aa334b819 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.scss +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.scss @@ -16,7 +16,8 @@ :host { width: 100%; height: 100%; - display: block; + display: flex; + flex-direction: column; overflow-x: auto; padding: 0; diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.ts index a0291a3ee0..5f031bf5c3 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/gateway-logs.component.ts @@ -33,6 +33,7 @@ import { MatTableDataSource } from '@angular/material/table'; import { GatewayLogLevel } from '@home/components/widget/lib/gateway/gateway-configuration.component'; import { DialogService } from '@core/services/dialog.service'; import { WidgetContext } from '@home/models/widget-component.models'; +import { MatPaginator } from '@angular/material/paginator'; export interface GatewayConnector { @@ -73,6 +74,7 @@ export class GatewayLogsComponent extends PageComponent implements AfterViewInit @ViewChild('searchInput') searchInputField: ElementRef; @ViewChild(MatSort) sort: MatSort; + @ViewChild(MatPaginator) paginator: MatPaginator; connectorForm: FormGroup; @@ -125,7 +127,7 @@ export class GatewayLogsComponent extends PageComponent implements AfterViewInit public dialog: MatDialog) { super(store); const sortOrder: SortOrder = {property: 'ts', direction: Direction.DESC}; - this.pageLink = new PageLink(Number.POSITIVE_INFINITY, 0, null, sortOrder); + this.pageLink = new PageLink(10, 0, null, sortOrder); this.dataSource = new MatTableDataSource([]); } @@ -133,6 +135,7 @@ export class GatewayLogsComponent extends PageComponent implements AfterViewInit ngAfterViewInit() { this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; this.ctx.defaultSubscription.onTimewindowChangeFunction = timewindow => { this.ctx.defaultSubscription.options.timeWindowConfig = timewindow; this.ctx.defaultSubscription.updateDataSubscriptions(); 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 7619c1104c..b53a6ecd0c 100644 --- a/ui-ngx/src/assets/locale/locale.constant-en_US.json +++ b/ui-ngx/src/assets/locale/locale.constant-en_US.json @@ -2808,7 +2808,7 @@ "hints": { "remote-configuration": "Enables remote configuration and management of the gateway", "remote-shell": "Enables remote control of the operating system with the gateway from the Remote Shell widget", - "host": "Hostname or ip address of ThingsBoard server", + "host": "Hostname or IP address of ThingsBoard server", "port": "Port of MQTT service on ThingsBoard server", "token": "Access token for the gateway from ThingsBoard server", "client-id": "MQTT client id for the gateway form ThingsBoard server", @@ -2817,16 +2817,16 @@ "ca-cert": "Path to CA certificate file", "cert": "Path to certificate file", "private-key": "Path to private key file", - "date-form": "Date format of log message", + "date-form": "Date format in log message", "log-format": "Log message format", "remote-log": "Enables remote logging and logs reading from the gateway", - "backup-count": "If Backup count is > 0, when a rollover is done, no more than Backup count files are kept - the oldest ones are deleted", + "backup-count": "If backup count is > 0, when a rollover is done, no more than backup count files are kept - the oldest ones are deleted", "storage": "Provides configuration for saving incoming data before it is sent to the ThingsBoard platform", "file": "Received data saving to the hard drive", "memory": "Received data saving to the RAM memory", "sqlite": "Received data saving to the .db file", "data-folder": "Path to folder, that will contains data (Relative or Absolute)", - "max-file-count": "Maximum count of file that will be saved", + "max-file-count": "Maximum count of file that will be created", "max-read-count": "Count of messages to get from storage and send to ThingsBoard", "max-records": "Maximum count of records that will be stored in one file", "read-record-count": "Count of messages to get from storage and send to ThingsBoard", @@ -2834,20 +2834,20 @@ "ttl-check-hour": "How often will Gateway check data for obsolescence", "ttl-messages-day": "Maximum days that storage will save data", "commands": "Commands for collecting additional statistic", - "attribute": "Gateway client attribute name", + "attribute": "Statistic telemetry key", "timeout": "Timeout for command executing", - "command": "The result of the command will be used as the value of the client attribute (\"/bin/sh -c ipconfig getifaddr en0\")", + "command": "The result of the command execution, will be used as the value for telemetry", "check-device-activity": "Enables monitor the activity of each connected device", - "inactivity-timeout": "Inactivity device time after whose the gateway will disconnect device", + "inactivity-timeout": "Time after whose the gateway will disconnect device", "inactivity-period": "Periodicity of device activity check", - "minimal-pack-delay": "Delay between sending packets (Decreasing this setting results in increased CPU usage)", + "minimal-pack-delay": "Delay between sending packs of messages (Decreasing this setting results in increased CPU usage)", "qos": "Quality of Service in MQTT messaging (0 - at most once, 1 - at least once)", "server-port": "Network port on which GRPC server will listen for incoming connections.", - "grpc-keep-alive-timeout": "Maximum time (in milliseconds) the server should wait for a keepalive ping response before considering the connection dead.", - "grpc-keep-alive": "Duration (in milliseconds) between two successive keepalive ping messages when there is no active RPC call.", - "grpc-min-time-between-pings": "Minimum amount of time (in milliseconds) the server should wait between sending keepalive ping messages", + "grpc-keep-alive-timeout": "Maximum time the server should wait for a keepalive ping response before considering the connection dead.", + "grpc-keep-alive": "Duration between two successive keepalive ping messages when there is no active RPC call.", + "grpc-min-time-between-pings": "Minimum amount of time the server should wait between sending keepalive ping messages", "grpc-max-pings-without-data": "Maximum number of keepalive ping messages that the server can send without receiving any data before it considers the connection dead.", - "grpc-min-ping-interval-without-data": "Minimum amount of time (in milliseconds) the server should wait between sending keepalive ping messages when there is no data being sent or received.", + "grpc-min-ping-interval-without-data": "Minimum amount of time the server should wait between sending keepalive ping messages when there is no data being sent or received.", "permit-without-calls": "Allow server to keep the GRPC connection alive even when there are no active RPC calls." } },