thingsboard-aplcache

Entity view fixes

9/10/2018 9:31:36 AM

Details

diff --git a/ui/src/app/api/entity.service.js b/ui/src/app/api/entity.service.js
index 2e29238..ce4dc42 100644
--- a/ui/src/app/api/entity.service.js
+++ b/ui/src/app/api/entity.service.js
@@ -20,8 +20,9 @@ export default angular.module('thingsboard.api.entity', [thingsboardTypes])
     .name;
 
 /*@ngInject*/
-function EntityService($http, $q, $filter, $translate, $log, userService, deviceService,
-                       assetService, tenantService, customerService, ruleChainService, dashboardService, entityRelationService, attributeService, types, utils) {
+function EntityService($http, $q, $filter, $translate, $log, userService, deviceService, assetService, tenantService,
+                       customerService, ruleChainService, dashboardService, entityRelationService, attributeService,
+                       entityViewService, types, utils) {
     var service = {
         getEntity: getEntity,
         getEntities: getEntities,
@@ -54,6 +55,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
             case types.entityType.asset:
                 promise = assetService.getAsset(entityId, true, config);
                 break;
+            case types.entityType.entityView:
+                promise = entityViewService.getEntityView(entityId, true, config);
+                break;
             case types.entityType.tenant:
                 promise = tenantService.getTenant(entityId, config);
                 break;
@@ -239,6 +243,13 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
                     promise = assetService.getTenantAssets(pageLink, false, config, subType);
                 }
                 break;
+            case types.entityType.entityView:
+                if (user.authority === 'CUSTOMER_USER') {
+                    promise = entityViewService.getCustomerEntityViews(customerId, pageLink, false, config, subType);
+                } else {
+                    promise = entityViewService.getTenantEntityViews(pageLink, false, config, subType);
+                }
+                break;
             case types.entityType.tenant:
                 if (user.authority === 'TENANT_ADMIN') {
                     promise = getSingleTenantByPageLinkPromise(pageLink, config);
@@ -725,6 +736,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
             case 'TENANT_ADMIN':
                 entityTypes.device = types.entityType.device;
                 entityTypes.asset = types.entityType.asset;
+                entityTypes.entityView = types.entityType.entityView;
                 entityTypes.tenant = types.entityType.tenant;
                 entityTypes.customer = types.entityType.customer;
                 entityTypes.dashboard = types.entityType.dashboard;
@@ -735,6 +747,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
             case 'CUSTOMER_USER':
                 entityTypes.device = types.entityType.device;
                 entityTypes.asset = types.entityType.asset;
+                entityTypes.entityView = types.entityType.entityView;
                 entityTypes.customer = types.entityType.customer;
                 entityTypes.dashboard = types.entityType.dashboard;
                 if (useAliasEntityTypes) {
diff --git a/ui/src/app/api/entity-view.service.js b/ui/src/app/api/entity-view.service.js
index f2d1908..d6d5868 100644
--- a/ui/src/app/api/entity-view.service.js
+++ b/ui/src/app/api/entity-view.service.js
@@ -157,7 +157,7 @@ function EntityViewService($http, $q, $window, userService, attributeService, cu
         var url = '/api/entityView';
 
         entityView.keys = {};
-        entityView.keys.timeseries = ['a', 'b'];
+        entityView.keys.timeseries = ['temp'];
 
         $http.post(url, entityView).then(function success(response) {
             deferred.resolve(response.data);
diff --git a/ui/src/app/common/types.constant.js b/ui/src/app/common/types.constant.js
index 060b557..15da584 100644
--- a/ui/src/app/common/types.constant.js
+++ b/ui/src/app/common/types.constant.js
@@ -346,6 +346,12 @@ export default angular.module('thingsboard.types', [])
                     list: 'entity.list-of-assets',
                     nameStartsWith: 'entity.asset-name-starts-with'
                 },
+                "ENTITY_VIEW": {
+                    type: 'entity.type-entity-view',
+                    typePlural: 'entity.type-entity-views',
+                    list: 'entity.list-of-entity-views',
+                    nameStartsWith: 'entity.entity-view-name-starts-with'
+                },
                 "TENANT": {
                     type: 'entity.type-tenant',
                     typePlural: 'entity.type-tenants',
diff --git a/ui/src/app/entity/entity-autocomplete.directive.js b/ui/src/app/entity/entity-autocomplete.directive.js
index e46c614..8c1fed7 100644
--- a/ui/src/app/entity/entity-autocomplete.directive.js
+++ b/ui/src/app/entity/entity-autocomplete.directive.js
@@ -131,6 +131,12 @@ export default function EntityAutocomplete($compile, $templateCache, $q, $filter
                     scope.noEntitiesMatchingText = 'device.no-devices-matching';
                     scope.entityRequiredText = 'device.device-required';
                     break;
+                case types.entityType.entityView:
+                    scope.selectEntityText = 'entity-view.select-entity-view';
+                    scope.entityText = 'entity-view.entity-view';
+                    scope.noEntitiesMatchingText = 'entity-view.no-entity-views-matching';
+                    scope.entityRequiredText = 'entity-view.entity-view-required';
+                    break;
                 case types.entityType.rulechain:
                     scope.selectEntityText = 'rulechain.select-rulechain';
                     scope.entityText = 'rulechain.rulechain';
diff --git a/ui/src/app/entity-view/entity-view.directive.js b/ui/src/app/entity-view/entity-view.directive.js
index 4d4e84b..4ec03a1 100644
--- a/ui/src/app/entity-view/entity-view.directive.js
+++ b/ui/src/app/entity-view/entity-view.directive.js
@@ -47,8 +47,8 @@ export default function EntityViewDirective($compile, $templateCache, $filter, t
                     scope.isPublic = false;
                     scope.assignedCustomer = null;
                 }
-                scope.startTs = $filter('date')(scope.entityView.endTs, 'yyyy-MM-dd HH:mm:ss');
-                scope.endTs = $filter('date')(scope.entityView.startTs, 'yyyy-MM-dd HH:mm:ss');
+                scope.startTs = new Date(scope.entityView.startTs);
+                scope.endTs = new Date(scope.entityView.endTs);
             }
         });
 
diff --git a/ui/src/app/locale/locale.constant-en_US.json b/ui/src/app/locale/locale.constant-en_US.json
index e98d4fe..87a1b1b 100644
--- a/ui/src/app/locale/locale.constant-en_US.json
+++ b/ui/src/app/locale/locale.constant-en_US.json
@@ -708,6 +708,10 @@
         "type-assets": "Assets",
         "list-of-assets": "{ count, plural, 1 {One asset} other {List of # assets} }",
         "asset-name-starts-with": "Assets whose names start with '{{prefix}}'",
+        "type-entity-view": "Entity View",
+        "type-entity-views": "Entity Views",
+        "list-of-entity-views": "{ count, plural, 1 {One entity view} other {List of # entity views} }",
+        "entity-view-name-starts-with": "Entity Views whose names start with '{{prefix}}'",
         "type-rule": "Rule",
         "type-rules": "Rules",
         "list-of-rules": "{ count, plural, 1 {One rule} other {List of # rules} }",