diff --git a/application/pom.xml b/application/pom.xml index 272097c210..a51ad29672 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard application diff --git a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java index 7a3127dd36..dc48e881cd 100644 --- a/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java +++ b/application/src/main/java/org/thingsboard/server/actors/tenant/TenantActor.java @@ -109,11 +109,15 @@ public class TenantActor extends RuleChainManagerActor { } private void onServiceToRuleEngineMsg(ServiceToRuleEngineMsg msg) { + if (ruleChainManager.getRootChainActor()!=null) ruleChainManager.getRootChainActor().tell(msg, self()); + else logger.info("[{}] No Root Chain", msg); } private void onDeviceActorToRuleEngineMsg(DeviceActorToRuleEngineMsg msg) { + if (ruleChainManager.getRootChainActor()!=null) ruleChainManager.getRootChainActor().tell(msg, self()); + else logger.info("[{}] No Root Chain", msg); } private void onRuleChainMsg(RuleChainToRuleChainMsg msg) { diff --git a/application/src/main/scripts/windows/service.xml b/application/src/main/scripts/windows/service.xml index 6590f42424..2cc46a7e91 100644 --- a/application/src/main/scripts/windows/service.xml +++ b/application/src/main/scripts/windows/service.xml @@ -10,6 +10,32 @@ java -Dplatform=windows -Dinstall.data_dir=%BASE%\data + -Xloggc:%BASE%\logs\gc.log + -XX:+HeapDumpOnOutOfMemoryError + -XX:+PrintGCDetails + -XX:+PrintGCDateStamps + -XX:+PrintHeapAtGC + -XX:+PrintTenuringDistribution + -XX:+PrintGCApplicationStoppedTime + -XX:+UseGCLogFileRotation + -XX:NumberOfGCLogFiles=10 + -XX:GCLogFileSize=10M + -XX:-UseBiasedLocking + -XX:+UseTLAB + -XX:+ResizeTLAB + -XX:+PerfDisableSharedMem + -XX:+UseCondCardMark + -XX:CMSWaitDuration=10000 + -XX:+UseParNewGC + -XX:+UseConcMarkSweepGC + -XX:+CMSParallelRemarkEnabled + -XX:+CMSParallelInitialMarkEnabled + -XX:+CMSEdenChunksRecordAlways + -XX:CMSInitiatingOccupancyFraction=75 + -XX:+UseCMSInitiatingOccupancyOnly + -Xms512m + -Xmx1024m -jar %BASE%\lib\${pkg.name}.jar + diff --git a/common/data/pom.xml b/common/data/pom.xml index 2f40b35e7d..4fabbb6a02 100644 --- a/common/data/pom.xml +++ b/common/data/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT common org.thingsboard.common diff --git a/common/message/pom.xml b/common/message/pom.xml index 26f73f5787..0c3045bc47 100644 --- a/common/message/pom.xml +++ b/common/message/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT common org.thingsboard.common diff --git a/common/pom.xml b/common/pom.xml index 75bbb50755..b8020bb3f5 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard org.thingsboard diff --git a/common/transport/pom.xml b/common/transport/pom.xml index 0ab2d9b744..f7595078b5 100644 --- a/common/transport/pom.xml +++ b/common/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT common org.thingsboard.common diff --git a/dao/pom.xml b/dao/pom.xml index dad607af78..51469f5c43 100644 --- a/dao/pom.xml +++ b/dao/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard dao diff --git a/netty-mqtt/pom.xml b/netty-mqtt/pom.xml index 029ef59c85..f4607a4e39 100644 --- a/netty-mqtt/pom.xml +++ b/netty-mqtt/pom.xml @@ -19,12 +19,12 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard org.thingsboard netty-mqtt - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT jar Netty MQTT Client diff --git a/pom.xml b/pom.xml index 83d353d15b..f18e7f9c40 100755 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT pom Thingsboard diff --git a/rule-engine/pom.xml b/rule-engine/pom.xml index 02247614fb..dccf16e03e 100644 --- a/rule-engine/pom.xml +++ b/rule-engine/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard rule-engine diff --git a/rule-engine/rule-engine-api/pom.xml b/rule-engine/rule-engine-api/pom.xml index 633a8ad5e2..182c98c234 100644 --- a/rule-engine/rule-engine-api/pom.xml +++ b/rule-engine/rule-engine-api/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT rule-engine org.thingsboard.rule-engine diff --git a/rule-engine/rule-engine-components/pom.xml b/rule-engine/rule-engine-components/pom.xml index 0798f46403..4071cdc0c1 100644 --- a/rule-engine/rule-engine-components/pom.xml +++ b/rule-engine/rule-engine-components/pom.xml @@ -22,7 +22,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT rule-engine org.thingsboard.rule-engine diff --git a/tools/pom.xml b/tools/pom.xml index 5c52532de1..8b5bfc5cd6 100644 --- a/tools/pom.xml +++ b/tools/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard org.thingsboard diff --git a/transport/coap/pom.xml b/transport/coap/pom.xml index bf04267931..63abab21bc 100644 --- a/transport/coap/pom.xml +++ b/transport/coap/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/http/pom.xml b/transport/http/pom.xml index 77f77284eb..54e89d51ac 100644 --- a/transport/http/pom.xml +++ b/transport/http/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/mqtt/pom.xml b/transport/mqtt/pom.xml index c7004cfc90..5c3795c98e 100644 --- a/transport/mqtt/pom.xml +++ b/transport/mqtt/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT transport org.thingsboard.transport diff --git a/transport/pom.xml b/transport/pom.xml index 8bcff2bc18..0ae885bbf7 100644 --- a/transport/pom.xml +++ b/transport/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard org.thingsboard diff --git a/ui/package.json b/ui/package.json index 83bca57b60..892664faec 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,7 +1,7 @@ { "name": "thingsboard", "private": true, - "version": "2.0.2", + "version": "2.0.4", "description": "Thingsboard UI", "licenses": [ { diff --git a/ui/pom.xml b/ui/pom.xml index a5d2a2e07f..ecb71dee7e 100644 --- a/ui/pom.xml +++ b/ui/pom.xml @@ -20,7 +20,7 @@ 4.0.0 org.thingsboard - 2.0.3-SNAPSHOT + 2.0.4-SNAPSHOT thingsboard org.thingsboard diff --git a/ui/src/app/api/alias-controller.js b/ui/src/app/api/alias-controller.js index 10b110743f..66781a8dbb 100644 --- a/ui/src/app/api/alias-controller.js +++ b/ui/src/app/api/alias-controller.js @@ -146,6 +146,7 @@ export default class AliasController { newDatasource.entityId = resolvedEntity.id; newDatasource.entityType = resolvedEntity.entityType; newDatasource.entityName = resolvedEntity.name; + newDatasource.entityDescription = resolvedEntity.entityDescription newDatasource.name = resolvedEntity.name; newDatasource.generated = i > 0 ? true : false; datasources.push(newDatasource); @@ -167,6 +168,7 @@ export default class AliasController { datasource.entityType = entity.entityType; datasource.entityName = entity.name; datasource.name = entity.name; + datasource.entityDescription = entity.entityDescription; deferred.resolve([datasource]); } else { if (aliasInfo.stateEntity) { diff --git a/ui/src/app/api/entity.service.js b/ui/src/app/api/entity.service.js index 762bf1aba3..2e29238dfe 100644 --- a/ui/src/app/api/entity.service.js +++ b/ui/src/app/api/entity.service.js @@ -329,7 +329,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device } function entityToEntityInfo(entity) { - return { name: entity.name, entityType: entity.id.entityType, id: entity.id.id }; + return { name: entity.name, entityType: entity.id.entityType, id: entity.id.id, entityDescription: entity.additionalInfo?entity.additionalInfo.description:"" }; } function entityRelationInfoToEntityInfo(entityRelationInfo, direction) { diff --git a/ui/src/app/components/datasource-entity.tpl.html b/ui/src/app/components/datasource-entity.tpl.html index 484164f838..db6fd3be96 100644 --- a/ui/src/app/components/datasource-entity.tpl.html +++ b/ui/src/app/components/datasource-entity.tpl.html @@ -60,7 +60,7 @@
-
+
{{$chip.label}}
@@ -112,7 +112,7 @@
-
+
{{$chip.label}}
@@ -164,7 +164,7 @@
-
+
{{$chip.label}}
diff --git a/ui/src/app/components/datasource-func.tpl.html b/ui/src/app/components/datasource-func.tpl.html index 134dcd7552..6bf49ba8f7 100644 --- a/ui/src/app/components/datasource-func.tpl.html +++ b/ui/src/app/components/datasource-func.tpl.html @@ -61,7 +61,7 @@
-
+
{{$chip.label}}
@@ -112,7 +112,7 @@
-
+
{{$chip.label}}
diff --git a/ui/src/app/components/details-sidenav.scss b/ui/src/app/components/details-sidenav.scss index 360b1330e4..c7e991912b 100644 --- a/ui/src/app/components/details-sidenav.scss +++ b/ui/src/app/components/details-sidenav.scss @@ -59,14 +59,4 @@ md-sidenav.tb-sidenav-details { background-color: $primary-hue-3; } } - - md-tab-content.md-active > div { - height: 100%; - & > *:first-child { - height: 100%; - } - md-content { - height: 100%; - } - } } diff --git a/ui/src/app/components/widget/widget-config.tpl.html b/ui/src/app/components/widget/widget-config.tpl.html index ce796d4210..e8762bdeeb 100644 --- a/ui/src/app/components/widget/widget-config.tpl.html +++ b/ui/src/app/components/widget/widget-config.tpl.html @@ -187,17 +187,17 @@
- {{ 'widget-config.display-title' | translate }}
- {{ 'widget-config.drop-shadow' | translate }}
- {{ 'widget-config.enable-fullscreen' | translate }}
diff --git a/ui/src/app/device/device-card.tpl.html b/ui/src/app/device/device-card.tpl.html index 522f1ab376..de8b7eebc4 100644 --- a/ui/src/app/device/device-card.tpl.html +++ b/ui/src/app/device/device-card.tpl.html @@ -16,7 +16,8 @@ -->
-
{{vm.item.type}}
+
{{vm.item.additionalInfo.description}}
+
{{vm.item.type}}
{{'device.assignedToCustomer' | translate}} '{{vm.item.assignedCustomer.title}}'
{{'device.public' | translate}}
diff --git a/ui/src/app/widget/lib/CanvasDigitalGauge.js b/ui/src/app/widget/lib/CanvasDigitalGauge.js index 0166e913c1..ee8b0ed559 100644 --- a/ui/src/app/widget/lib/CanvasDigitalGauge.js +++ b/ui/src/app/widget/lib/CanvasDigitalGauge.js @@ -204,8 +204,13 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { } var valueChanged = false; - - if (!this.elementValueClone.initialized || this.elementValueClone.renderedValue !== this.value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) { + if (!this.elementValueClone.initialized || angular.isDefined(this._value) && this.elementValueClone.renderedValue !== this._value || (options.showTimestamp && this.elementValueClone.renderedTimestamp !== this.timestamp)) { + if (angular.isDefined(this._value)) { + this.elementValueClone.renderedValue = this._value; + } + if (angular.isUndefined(this.elementValueClone.renderedValue)) { + this.elementValueClone.renderedValue = options.minValue; + } let context = this.contextValueClone; // clear the cache context.clearRect(x, y, w, h); @@ -214,7 +219,7 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { context.drawImage(canvas.elementClone, x, y, w, h); context.save(); - drawDigitalValue(context, options, this.value); + drawDigitalValue(context, options, this.elementValueClone.renderedValue); if (options.showTimestamp) { drawDigitalLabel(context, options); @@ -222,7 +227,6 @@ export default class CanvasDigitalGauge extends canvasGauges.BaseGauge { } this.elementValueClone.initialized = true; - this.elementValueClone.renderedValue = this.value; valueChanged = true; } diff --git a/ui/src/app/widget/lib/canvas-digital-gauge.js b/ui/src/app/widget/lib/canvas-digital-gauge.js index 8e6db0468e..283a42676b 100644 --- a/ui/src/app/widget/lib/canvas-digital-gauge.js +++ b/ui/src/app/widget/lib/canvas-digital-gauge.js @@ -70,6 +70,10 @@ export default class TbCanvasDigitalGauge { (settings.title && settings.title.length > 0 ? settings.title : dataKey.label) : ''); + if (!this.localSettings.unitTitle && this.localSettings.showTimestamp) { + this.localSettings.unitTitle = ' '; + } + this.localSettings.titleFont = {}; var settingsTitleFont = settings.titleFont; if (!settingsTitleFont) { @@ -206,6 +210,7 @@ export default class TbCanvasDigitalGauge { var value = tvPair[1]; if(value !== this.gauge.value) { this.gauge.value = value; + this.gauge._value = value; } else if (this.localSettings.showTimestamp && this.gauge.timestamp != timestamp) { this.gauge.timestamp = timestamp; }