Showing
10 changed files
with
178 additions
and
129 deletions
@@ -96,6 +96,7 @@ export default class AliasController { | @@ -96,6 +96,7 @@ export default class AliasController { | ||
96 | function success(aliasInfo) { | 96 | function success(aliasInfo) { |
97 | aliasCtrl.resolvedAliases[aliasId] = aliasInfo; | 97 | aliasCtrl.resolvedAliases[aliasId] = aliasInfo; |
98 | if (entityAlias.filter.stateEntity) { | 98 | if (entityAlias.filter.stateEntity) { |
99 | + aliasInfo.stateEntity = true; | ||
99 | aliasCtrl.resolvedAliasesToStateEntities[aliasId] = | 100 | aliasCtrl.resolvedAliasesToStateEntities[aliasId] = |
100 | aliasCtrl.stateController.getStateParams().entityId; | 101 | aliasCtrl.stateController.getStateParams().entityId; |
101 | } | 102 | } |
@@ -120,12 +121,13 @@ export default class AliasController { | @@ -120,12 +121,13 @@ export default class AliasController { | ||
120 | function success(aliasInfo) { | 121 | function success(aliasInfo) { |
121 | datasource.aliasName = aliasInfo.alias; | 122 | datasource.aliasName = aliasInfo.alias; |
122 | if (aliasInfo.resolveMultiple) { | 123 | if (aliasInfo.resolveMultiple) { |
124 | + var newDatasource; | ||
123 | var resolvedEntities = aliasInfo.resolvedEntities; | 125 | var resolvedEntities = aliasInfo.resolvedEntities; |
124 | if (resolvedEntities && resolvedEntities.length) { | 126 | if (resolvedEntities && resolvedEntities.length) { |
125 | var datasources = []; | 127 | var datasources = []; |
126 | for (var i=0;i<resolvedEntities.length;i++) { | 128 | for (var i=0;i<resolvedEntities.length;i++) { |
127 | var resolvedEntity = resolvedEntities[i]; | 129 | var resolvedEntity = resolvedEntities[i]; |
128 | - var newDatasource = angular.copy(datasource); | 130 | + newDatasource = angular.copy(datasource); |
129 | newDatasource.entityId = resolvedEntity.id; | 131 | newDatasource.entityId = resolvedEntity.id; |
130 | newDatasource.entityType = resolvedEntity.entityType; | 132 | newDatasource.entityType = resolvedEntity.entityType; |
131 | newDatasource.entityName = resolvedEntity.name; | 133 | newDatasource.entityName = resolvedEntity.name; |
@@ -135,15 +137,30 @@ export default class AliasController { | @@ -135,15 +137,30 @@ export default class AliasController { | ||
135 | } | 137 | } |
136 | deferred.resolve(datasources); | 138 | deferred.resolve(datasources); |
137 | } else { | 139 | } else { |
138 | - deferred.reject(); | 140 | + if (aliasInfo.stateEntity) { |
141 | + newDatasource = angular.copy(datasource); | ||
142 | + newDatasource.unresolvedStateEntity = true; | ||
143 | + deferred.resolve([newDatasource]); | ||
144 | + } else { | ||
145 | + deferred.reject(); | ||
146 | + } | ||
139 | } | 147 | } |
140 | } else { | 148 | } else { |
141 | var entity = aliasInfo.currentEntity; | 149 | var entity = aliasInfo.currentEntity; |
142 | - datasource.entityId = entity.id; | ||
143 | - datasource.entityType = entity.entityType; | ||
144 | - datasource.entityName = entity.name; | ||
145 | - datasource.name = entity.name; | ||
146 | - deferred.resolve([datasource]); | 150 | + if (entity) { |
151 | + datasource.entityId = entity.id; | ||
152 | + datasource.entityType = entity.entityType; | ||
153 | + datasource.entityName = entity.name; | ||
154 | + datasource.name = entity.name; | ||
155 | + deferred.resolve([datasource]); | ||
156 | + } else { | ||
157 | + if (aliasInfo.stateEntity) { | ||
158 | + datasource.unresolvedStateEntity = true; | ||
159 | + deferred.resolve([datasource]); | ||
160 | + } else { | ||
161 | + deferred.reject(); | ||
162 | + } | ||
163 | + } | ||
147 | } | 164 | } |
148 | }, | 165 | }, |
149 | function fail() { | 166 | function fail() { |
@@ -29,10 +29,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -29,10 +29,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
29 | getEntitiesByNameFilter: getEntitiesByNameFilter, | 29 | getEntitiesByNameFilter: getEntitiesByNameFilter, |
30 | resolveAlias: resolveAlias, | 30 | resolveAlias: resolveAlias, |
31 | resolveAliasFilter: resolveAliasFilter, | 31 | resolveAliasFilter: resolveAliasFilter, |
32 | + checkEntityAlias: checkEntityAlias, | ||
32 | filterAliasByEntityTypes: filterAliasByEntityTypes, | 33 | filterAliasByEntityTypes: filterAliasByEntityTypes, |
33 | - //processEntityAliases: processEntityAliases, | ||
34 | getEntityKeys: getEntityKeys, | 34 | getEntityKeys: getEntityKeys, |
35 | - checkEntityAlias: checkEntityAlias, | ||
36 | createDatasourcesFromSubscriptionsInfo: createDatasourcesFromSubscriptionsInfo, | 35 | createDatasourcesFromSubscriptionsInfo: createDatasourcesFromSubscriptionsInfo, |
37 | getRelatedEntities: getRelatedEntities, | 36 | getRelatedEntities: getRelatedEntities, |
38 | saveRelatedEntity: saveRelatedEntity, | 37 | saveRelatedEntity: saveRelatedEntity, |
@@ -259,7 +258,32 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -259,7 +258,32 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
259 | return entitiesInfo; | 258 | return entitiesInfo; |
260 | } | 259 | } |
261 | 260 | ||
262 | - function resolveAliasFilter(filter, stateParams) { | 261 | + function resolveAlias(entityAlias, stateParams) { |
262 | + var deferred = $q.defer(); | ||
263 | + var filter = entityAlias.filter; | ||
264 | + resolveAliasFilter(filter, stateParams, 100).then( | ||
265 | + function (result) { | ||
266 | + var entities = result.entities; | ||
267 | + var aliasInfo = { | ||
268 | + alias: entityAlias.alias, | ||
269 | + resolveMultiple: filter.resolveMultiple | ||
270 | + }; | ||
271 | + var resolvedEntities = entitiesToEntitiesInfo(entities); | ||
272 | + aliasInfo.resolvedEntities = resolvedEntities; | ||
273 | + aliasInfo.currentEntity = null; | ||
274 | + if (aliasInfo.resolvedEntities.length) { | ||
275 | + aliasInfo.currentEntity = aliasInfo.resolvedEntities[0]; | ||
276 | + } | ||
277 | + deferred.resolve(aliasInfo); | ||
278 | + }, | ||
279 | + function fail() { | ||
280 | + deferred.reject(); | ||
281 | + } | ||
282 | + ); | ||
283 | + return deferred.promise; | ||
284 | + } | ||
285 | + | ||
286 | + function resolveAliasFilter(filter, stateParams, maxItems) { | ||
263 | var deferred = $q.defer(); | 287 | var deferred = $q.defer(); |
264 | var result = { | 288 | var result = { |
265 | entities: [], | 289 | entities: [], |
@@ -299,7 +323,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -299,7 +323,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
299 | } | 323 | } |
300 | break; | 324 | break; |
301 | case types.aliasFilterType.entityName.value: | 325 | case types.aliasFilterType.entityName.value: |
302 | - getEntitiesByNameFilter(filter.entityType, filter.entityNameFilter, 100).then( | 326 | + getEntitiesByNameFilter(filter.entityType, filter.entityNameFilter, maxItems).then( |
303 | function success(entities) { | 327 | function success(entities) { |
304 | if (entities && entities.length) { | 328 | if (entities && entities.length) { |
305 | result.entities = entities; | 329 | result.entities = entities; |
@@ -318,31 +342,6 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -318,31 +342,6 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
318 | return deferred.promise; | 342 | return deferred.promise; |
319 | } | 343 | } |
320 | 344 | ||
321 | - function resolveAlias(entityAlias, stateParams) { | ||
322 | - var deferred = $q.defer(); | ||
323 | - var filter = entityAlias.filter; | ||
324 | - resolveAliasFilter(filter, stateParams).then( | ||
325 | - function (result) { | ||
326 | - var entities = result.entities; | ||
327 | - var aliasInfo = { | ||
328 | - alias: entityAlias.alias, | ||
329 | - resolveMultiple: filter.resolveMultiple | ||
330 | - }; | ||
331 | - var resolvedEntities = entitiesToEntitiesInfo(entities); | ||
332 | - aliasInfo.resolvedEntities = resolvedEntities; | ||
333 | - aliasInfo.currentEntity = null; | ||
334 | - if (aliasInfo.resolvedEntities.length) { | ||
335 | - aliasInfo.currentEntity = aliasInfo.resolvedEntities[0]; | ||
336 | - } | ||
337 | - deferred.resolve(aliasInfo); | ||
338 | - }, | ||
339 | - function fail() { | ||
340 | - deferred.reject(); | ||
341 | - } | ||
342 | - ); | ||
343 | - return deferred.promise; | ||
344 | - } | ||
345 | - | ||
346 | function filterAliasByEntityTypes(entityAlias, entityTypes) { | 345 | function filterAliasByEntityTypes(entityAlias, entityTypes) { |
347 | var filter = entityAlias.filter; | 346 | var filter = entityAlias.filter; |
348 | switch (filter.type) { | 347 | switch (filter.type) { |
@@ -359,6 +358,28 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -359,6 +358,28 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
359 | return false; | 358 | return false; |
360 | } | 359 | } |
361 | 360 | ||
361 | + function checkEntityAlias(entityAlias) { | ||
362 | + var deferred = $q.defer(); | ||
363 | + resolveAliasFilter(entityAlias.filter, null, 1).then( | ||
364 | + function success(result) { | ||
365 | + if (result.stateEntity) { | ||
366 | + deferred.resolve(true); | ||
367 | + } else { | ||
368 | + var entities = result.entities; | ||
369 | + if (entities && entities.length) { | ||
370 | + deferred.resolve(true); | ||
371 | + } else { | ||
372 | + deferred.resolve(false); | ||
373 | + } | ||
374 | + } | ||
375 | + }, | ||
376 | + function fail() { | ||
377 | + deferred.resolve(false); | ||
378 | + } | ||
379 | + ); | ||
380 | + return deferred.promise; | ||
381 | + } | ||
382 | + | ||
362 | /*function processEntityAlias(index, aliasIds, entityAliases, stateParams, resolution, deferred) { | 383 | /*function processEntityAlias(index, aliasIds, entityAliases, stateParams, resolution, deferred) { |
363 | if (index < aliasIds.length) { | 384 | if (index < aliasIds.length) { |
364 | var aliasId = aliasIds[index]; | 385 | var aliasId = aliasIds[index]; |
@@ -433,33 +454,6 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -433,33 +454,6 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
433 | return deferred.promise; | 454 | return deferred.promise; |
434 | } | 455 | } |
435 | 456 | ||
436 | - function checkEntityAlias(entityAlias) { | ||
437 | - var deferred = $q.defer(); | ||
438 | - var entityType = entityAlias.entityType; | ||
439 | - var entityFilter = entityAlias.entityFilter; | ||
440 | - var promise; | ||
441 | - if (entityFilter.useFilter) { | ||
442 | - var entityNameFilter = entityFilter.entityNameFilter; | ||
443 | - promise = getEntitiesByNameFilter(entityType, entityNameFilter, 1); | ||
444 | - } else { | ||
445 | - var entityList = entityFilter.entityList; | ||
446 | - promise = getEntities(entityType, entityList); | ||
447 | - } | ||
448 | - promise.then( | ||
449 | - function success(entities) { | ||
450 | - if (entities && entities.length > 0) { | ||
451 | - deferred.resolve(true); | ||
452 | - } else { | ||
453 | - deferred.resolve(false); | ||
454 | - } | ||
455 | - }, | ||
456 | - function fail() { | ||
457 | - deferred.resolve(false); | ||
458 | - } | ||
459 | - ); | ||
460 | - return deferred.promise; | ||
461 | - } | ||
462 | - | ||
463 | function createDatasourcesFromSubscriptionsInfo(subscriptionsInfo) { | 457 | function createDatasourcesFromSubscriptionsInfo(subscriptionsInfo) { |
464 | var deferred = $q.defer(); | 458 | var deferred = $q.defer(); |
465 | var datasources = []; | 459 | var datasources = []; |
@@ -125,17 +125,22 @@ export default class Subscription { | @@ -125,17 +125,22 @@ export default class Subscription { | ||
125 | 125 | ||
126 | initDataSubscription() { | 126 | initDataSubscription() { |
127 | var deferred = this.ctx.$q.defer(); | 127 | var deferred = this.ctx.$q.defer(); |
128 | - var subscription = this; | ||
129 | - this.ctx.aliasController.resolveDatasources(this.datasources).then( | ||
130 | - function success(datasources) { | ||
131 | - subscription.datasources = datasources; | ||
132 | - subscription.configureData(); | ||
133 | - deferred.resolve(); | ||
134 | - }, | ||
135 | - function fail() { | ||
136 | - deferred.reject(); | ||
137 | - } | ||
138 | - ); | 128 | + if (!this.ctx.aliasController) { |
129 | + this.configureData(); | ||
130 | + deferred.resolve(); | ||
131 | + } else { | ||
132 | + var subscription = this; | ||
133 | + this.ctx.aliasController.resolveDatasources(this.datasources).then( | ||
134 | + function success(datasources) { | ||
135 | + subscription.datasources = datasources; | ||
136 | + subscription.configureData(); | ||
137 | + deferred.resolve(); | ||
138 | + }, | ||
139 | + function fail() { | ||
140 | + deferred.reject(); | ||
141 | + } | ||
142 | + ); | ||
143 | + } | ||
139 | return deferred.promise; | 144 | return deferred.promise; |
140 | } | 145 | } |
141 | 146 |
@@ -57,6 +57,9 @@ function DashboardUtils(types, utils, timeService) { | @@ -57,6 +57,9 @@ function DashboardUtils(types, utils, timeService) { | ||
57 | for (aliasId in entityAliases) { | 57 | for (aliasId in entityAliases) { |
58 | entityAlias = entityAliases[aliasId]; | 58 | entityAlias = entityAliases[aliasId]; |
59 | entityAliases[aliasId] = validateAndUpdateEntityAlias(entityAlias); | 59 | entityAliases[aliasId] = validateAndUpdateEntityAlias(entityAlias); |
60 | + if (!entityAliases[aliasId].id) { | ||
61 | + entityAliases[aliasId].id = aliasId; | ||
62 | + } | ||
60 | } | 63 | } |
61 | } | 64 | } |
62 | return configuration; | 65 | return configuration; |
@@ -202,6 +205,12 @@ function DashboardUtils(types, utils, timeService) { | @@ -202,6 +205,12 @@ function DashboardUtils(types, utils, timeService) { | ||
202 | states[firstStateId].root = true; | 205 | states[firstStateId].root = true; |
203 | } | 206 | } |
204 | } | 207 | } |
208 | + | ||
209 | + /* var datasources = {}; | ||
210 | + for (var widgetId in dashboard.configuration.widgets) { | ||
211 | + | ||
212 | + }*/ | ||
213 | + | ||
205 | dashboard.configuration = validateAndUpdateEntityAliases(dashboard.configuration); | 214 | dashboard.configuration = validateAndUpdateEntityAliases(dashboard.configuration); |
206 | 215 | ||
207 | if (angular.isUndefined(dashboard.configuration.timewindow)) { | 216 | if (angular.isUndefined(dashboard.configuration.timewindow)) { |
@@ -38,6 +38,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | @@ -38,6 +38,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | ||
38 | 38 | ||
39 | var gridsterItemInited = false; | 39 | var gridsterItemInited = false; |
40 | var subscriptionInited = false; | 40 | var subscriptionInited = false; |
41 | + var widgetSizeDetected = false; | ||
41 | 42 | ||
42 | var cafs = {}; | 43 | var cafs = {}; |
43 | 44 | ||
@@ -206,9 +207,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | @@ -206,9 +207,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | ||
206 | 207 | ||
207 | initialize().then( | 208 | initialize().then( |
208 | function(){ | 209 | function(){ |
209 | - if (checkSize()) { | ||
210 | - onInit(); | ||
211 | - } | 210 | + onInit(); |
212 | } | 211 | } |
213 | ); | 212 | ); |
214 | 213 | ||
@@ -488,10 +487,15 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | @@ -488,10 +487,15 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | ||
488 | $scope.widgetErrorData = utils.processWidgetException(e); | 487 | $scope.widgetErrorData = utils.processWidgetException(e); |
489 | } | 488 | } |
490 | 489 | ||
491 | - function onInit() { | ||
492 | - if (!widgetContext.inited && | ||
493 | - subscriptionInited && | ||
494 | - gridsterItemInited) { | 490 | + function isReady() { |
491 | + return subscriptionInited && gridsterItemInited && widgetSizeDetected; | ||
492 | + } | ||
493 | + | ||
494 | + function onInit(skipSizeCheck) { | ||
495 | + if (!skipSizeCheck) { | ||
496 | + checkSize(); | ||
497 | + } | ||
498 | + if (!widgetContext.inited && isReady()) { | ||
495 | widgetContext.inited = true; | 499 | widgetContext.inited = true; |
496 | try { | 500 | try { |
497 | widgetTypeInstance.onInit(); | 501 | widgetTypeInstance.onInit(); |
@@ -516,6 +520,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | @@ -516,6 +520,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | ||
516 | widgetContext.width = width; | 520 | widgetContext.width = width; |
517 | widgetContext.height = height; | 521 | widgetContext.height = height; |
518 | sizeChanged = true; | 522 | sizeChanged = true; |
523 | + widgetSizeDetected = true; | ||
519 | } | 524 | } |
520 | } | 525 | } |
521 | return sizeChanged; | 526 | return sizeChanged; |
@@ -536,7 +541,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | @@ -536,7 +541,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | ||
536 | } | 541 | } |
537 | }); | 542 | }); |
538 | } else { | 543 | } else { |
539 | - onInit(); | 544 | + onInit(true); |
540 | } | 545 | } |
541 | } | 546 | } |
542 | } | 547 | } |
@@ -545,9 +550,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | @@ -545,9 +550,7 @@ export default function WidgetController($scope, $timeout, $window, $element, $q | ||
545 | if (item && item.gridster) { | 550 | if (item && item.gridster) { |
546 | widgetContext.isMobile = item.gridster.isMobile; | 551 | widgetContext.isMobile = item.gridster.isMobile; |
547 | gridsterItemInited = true; | 552 | gridsterItemInited = true; |
548 | - if (checkSize()) { | ||
549 | - onInit(); | ||
550 | - } | 553 | + onInit(); |
551 | // gridsterItemElement = $(item.$element); | 554 | // gridsterItemElement = $(item.$element); |
552 | //updateVisibility(); | 555 | //updateVisibility(); |
553 | } | 556 | } |
@@ -344,6 +344,8 @@ export default function DashboardController(types, utils, dashboardUtils, widget | @@ -344,6 +344,8 @@ export default function DashboardController(types, utils, dashboardUtils, widget | ||
344 | vm.dashboardConfiguration = vm.dashboard.configuration; | 344 | vm.dashboardConfiguration = vm.dashboard.configuration; |
345 | vm.dashboardCtx.dashboard = vm.dashboard; | 345 | vm.dashboardCtx.dashboard = vm.dashboard; |
346 | vm.dashboardCtx.dashboardTimewindow = vm.dashboardConfiguration.timewindow; | 346 | vm.dashboardCtx.dashboardTimewindow = vm.dashboardConfiguration.timewindow; |
347 | + vm.dashboardCtx.aliasController = new AliasController($scope, $q, $filter, utils, | ||
348 | + types, entityService, vm.dashboardCtx.stateController, vm.dashboardConfiguration.entityAliases); | ||
347 | var parentScope = $window.parent.angular.element($window.frameElement).scope(); | 349 | var parentScope = $window.parent.angular.element($window.frameElement).scope(); |
348 | parentScope.$root.$broadcast('widgetEditModeInited'); | 350 | parentScope.$root.$broadcast('widgetEditModeInited'); |
349 | parentScope.$root.$apply(); | 351 | parentScope.$root.$apply(); |
@@ -22,7 +22,8 @@ import selectTargetLayoutTemplate from '../../dashboard/layouts/select-target-la | @@ -22,7 +22,8 @@ import selectTargetLayoutTemplate from '../../dashboard/layouts/select-target-la | ||
22 | /* eslint-enable import/no-unresolved, import/default */ | 22 | /* eslint-enable import/no-unresolved, import/default */ |
23 | 23 | ||
24 | /*@ngInject*/ | 24 | /*@ngInject*/ |
25 | -export default function AddWidgetToDashboardDialogController($scope, $mdDialog, $state, $q, $document, itembuffer, dashboardService, entityId, entityType, entityName, widget) { | 25 | +export default function AddWidgetToDashboardDialogController($scope, $mdDialog, $state, $q, $document, |
26 | + types, itembuffer, dashboardService, entityId, entityType, entityName, widget) { | ||
26 | 27 | ||
27 | var vm = this; | 28 | var vm = this; |
28 | 29 | ||
@@ -125,12 +126,14 @@ export default function AddWidgetToDashboardDialogController($scope, $mdDialog, | @@ -125,12 +126,14 @@ export default function AddWidgetToDashboardDialogController($scope, $mdDialog, | ||
125 | targetDeviceAliases: {} | 126 | targetDeviceAliases: {} |
126 | }; | 127 | }; |
127 | aliasesInfo.datasourceAliases[0] = { | 128 | aliasesInfo.datasourceAliases[0] = { |
128 | - aliasName: entityName, | ||
129 | - entityType: entityType, | ||
130 | - entityFilter: { | ||
131 | - useFilter: false, | ||
132 | - entityNameFilter: '', | ||
133 | - entityList: [entityId] | 129 | + id: 1, |
130 | + alias: entityName, | ||
131 | + filter: { | ||
132 | + type: types.aliasFilterType.entityList.value, | ||
133 | + stateEntity: false, | ||
134 | + entityList: [entityId], | ||
135 | + entityType: entityType, | ||
136 | + resolveMultiple: false | ||
134 | } | 137 | } |
135 | }; | 138 | }; |
136 | itembuffer.addWidgetToDashboard(theDashboard, targetState, targetLayout, vm.widget, aliasesInfo, null, 48, null, -1, -1).then( | 139 | itembuffer.addWidgetToDashboard(theDashboard, targetState, targetLayout, vm.widget, aliasesInfo, null, 48, null, -1, -1).then( |
@@ -64,7 +64,7 @@ export default function EntityFilterDialogController($scope, $mdDialog, $q, enti | @@ -64,7 +64,7 @@ export default function EntityFilterDialogController($scope, $mdDialog, $q, enti | ||
64 | entity: null, | 64 | entity: null, |
65 | stateEntity: false | 65 | stateEntity: false |
66 | } | 66 | } |
67 | - entityService.resolveAliasFilter(vm.filter).then( | 67 | + entityService.resolveAliasFilter(vm.filter, null, 1).then( |
68 | function success(result) { | 68 | function success(result) { |
69 | validationResult.stateEntity = result.stateEntity; | 69 | validationResult.stateEntity = result.stateEntity; |
70 | var entities = result.entities; | 70 | var entities = result.entities; |
@@ -359,30 +359,50 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | @@ -359,30 +359,50 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | ||
359 | } | 359 | } |
360 | 360 | ||
361 | function prepareEntityAlias(aliasInfo) { | 361 | function prepareEntityAlias(aliasInfo) { |
362 | - var entityFilter; | ||
363 | - var entityType; | 362 | + var alias; |
363 | + var filter; | ||
364 | if (aliasInfo.deviceId) { | 364 | if (aliasInfo.deviceId) { |
365 | - entityFilter = { | ||
366 | - useFilter: false, | ||
367 | - entityNameFilter: '', | ||
368 | - entityList: [aliasInfo.deviceId] | ||
369 | - } | ||
370 | - entityType = types.entityType.device; | 365 | + alias = aliasInfo.aliasName; |
366 | + filter = { | ||
367 | + type: types.aliasFilterType.entityList.value, | ||
368 | + stateEntity: false, | ||
369 | + entityType: types.entityType.device, | ||
370 | + entityList: [aliasInfo.deviceId], | ||
371 | + resolveMultiple: false | ||
372 | + }; | ||
371 | } else if (aliasInfo.deviceFilter) { | 373 | } else if (aliasInfo.deviceFilter) { |
372 | - entityFilter = { | ||
373 | - useFilter: aliasInfo.deviceFilter.useFilter, | ||
374 | - entityNameFilter: aliasInfo.deviceFilter.deviceNameFilter, | ||
375 | - entityList: aliasInfo.deviceFilter.deviceList | 374 | + alias = aliasInfo.aliasName; |
375 | + filter = { | ||
376 | + type: aliasInfo.deviceFilter.useFilter ? types.aliasFilterType.entityName.value : types.aliasFilterType.entityList.value, | ||
377 | + entityType: types.entityType.device, | ||
378 | + resolveMultiple: false | ||
379 | + } | ||
380 | + if (filter.type == types.aliasFilterType.entityList.value) { | ||
381 | + filter.stateEntity = false; | ||
382 | + filter.entityList = aliasInfo.deviceFilter.deviceList | ||
383 | + } else { | ||
384 | + filter.entityNameFilter = aliasInfo.deviceFilter.deviceNameFilter; | ||
385 | + } | ||
386 | + } else if (aliasInfo.entityFilter) { | ||
387 | + alias = aliasInfo.aliasName; | ||
388 | + filter = { | ||
389 | + type: aliasInfo.entityFilter.useFilter ? types.aliasFilterType.entityName.value : types.aliasFilterType.entityList.value, | ||
390 | + entityType: aliasInfo.entityType, | ||
391 | + resolveMultiple: false | ||
392 | + } | ||
393 | + if (filter.type == types.aliasFilterType.entityList.value) { | ||
394 | + filter.stateEntity = false; | ||
395 | + filter.entityList = aliasInfo.entityFilter.entityList; | ||
396 | + } else { | ||
397 | + filter.entityNameFilter = aliasInfo.entityFilter.entityNameFilter; | ||
376 | } | 398 | } |
377 | - entityType = types.entityType.device; | ||
378 | } else { | 399 | } else { |
379 | - entityFilter = aliasInfo.entityFilter; | ||
380 | - entityType = aliasInfo.entityType; | 400 | + alias = aliasInfo.alias; |
401 | + filter = aliasInfo.filter; | ||
381 | } | 402 | } |
382 | return { | 403 | return { |
383 | - aliasName: aliasInfo.aliasName, | ||
384 | - entityType: entityType, | ||
385 | - entityFilter: entityFilter | 404 | + alias: alias, |
405 | + filter: filter | ||
386 | }; | 406 | }; |
387 | } | 407 | } |
388 | 408 | ||
@@ -411,6 +431,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | @@ -411,6 +431,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | ||
411 | for (datasourceIndex in datasourceAliases) { | 431 | for (datasourceIndex in datasourceAliases) { |
412 | datasourceAliasesMap[aliasId] = datasourceIndex; | 432 | datasourceAliasesMap[aliasId] = datasourceIndex; |
413 | entityAliases[aliasId] = datasourceAliases[datasourceIndex]; | 433 | entityAliases[aliasId] = datasourceAliases[datasourceIndex]; |
434 | + entityAliases[aliasId].id = aliasId; | ||
414 | aliasId++; | 435 | aliasId++; |
415 | } | 436 | } |
416 | } | 437 | } |
@@ -418,6 +439,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | @@ -418,6 +439,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | ||
418 | for (datasourceIndex in targetDeviceAliases) { | 439 | for (datasourceIndex in targetDeviceAliases) { |
419 | targetDeviceAliasesMap[aliasId] = datasourceIndex; | 440 | targetDeviceAliasesMap[aliasId] = datasourceIndex; |
420 | entityAliases[aliasId] = targetDeviceAliases[datasourceIndex]; | 441 | entityAliases[aliasId] = targetDeviceAliases[datasourceIndex]; |
442 | + entityAliases[aliasId].id = aliasId; | ||
421 | aliasId++; | 443 | aliasId++; |
422 | } | 444 | } |
423 | } | 445 | } |
@@ -435,12 +457,10 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | @@ -435,12 +457,10 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | ||
435 | var datasourceIndex; | 457 | var datasourceIndex; |
436 | if (datasourceAliasesMap[aliasId]) { | 458 | if (datasourceAliasesMap[aliasId]) { |
437 | datasourceIndex = datasourceAliasesMap[aliasId]; | 459 | datasourceIndex = datasourceAliasesMap[aliasId]; |
438 | - datasourceAliases[datasourceIndex].entityType = entityAlias.entityType; | ||
439 | - datasourceAliases[datasourceIndex].entityFilter = entityAlias.entityFilter; | 460 | + datasourceAliases[datasourceIndex] = entityAlias; |
440 | } else if (targetDeviceAliasesMap[aliasId]) { | 461 | } else if (targetDeviceAliasesMap[aliasId]) { |
441 | datasourceIndex = targetDeviceAliasesMap[aliasId]; | 462 | datasourceIndex = targetDeviceAliasesMap[aliasId]; |
442 | - targetDeviceAliases[datasourceIndex].entityType = entityAlias.entityType; | ||
443 | - targetDeviceAliases[datasourceIndex].entityFilter = entityAlias.entityFilter; | 463 | + targetDeviceAliases[datasourceIndex] = entityAlias; |
444 | } | 464 | } |
445 | } | 465 | } |
446 | addImportedWidget(dashboard, targetState, targetLayoutFunction, $event, widget, | 466 | addImportedWidget(dashboard, targetState, targetLayoutFunction, $event, widget, |
@@ -622,7 +642,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | @@ -622,7 +642,7 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document, | ||
622 | checkNextEntityAliasOrComplete(index, aliasIds, entityAliases, missingEntityAliases, deferred); | 642 | checkNextEntityAliasOrComplete(index, aliasIds, entityAliases, missingEntityAliases, deferred); |
623 | } else { | 643 | } else { |
624 | var missingEntityAlias = angular.copy(entityAlias); | 644 | var missingEntityAlias = angular.copy(entityAlias); |
625 | - missingEntityAlias.entityFilter = null; | 645 | + missingEntityAlias.filter = null; |
626 | missingEntityAliases[aliasId] = missingEntityAlias; | 646 | missingEntityAliases[aliasId] = missingEntityAlias; |
627 | checkNextEntityAliasOrComplete(index, aliasIds, entityAliases, missingEntityAliases, deferred); | 647 | checkNextEntityAliasOrComplete(index, aliasIds, entityAliases, missingEntityAliases, deferred); |
628 | } | 648 | } |
@@ -46,16 +46,14 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | @@ -46,16 +46,14 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | ||
46 | aliasesInfo { | 46 | aliasesInfo { |
47 | datasourceAliases: { | 47 | datasourceAliases: { |
48 | datasourceIndex: { | 48 | datasourceIndex: { |
49 | - aliasName: "...", | ||
50 | - entityType: "...", | ||
51 | - entityFilter: "..." | 49 | + alias: "...", |
50 | + filter: "..." | ||
52 | } | 51 | } |
53 | } | 52 | } |
54 | targetDeviceAliases: { | 53 | targetDeviceAliases: { |
55 | targetDeviceAliasIndex: { | 54 | targetDeviceAliasIndex: { |
56 | - aliasName: "...", | ||
57 | - entityType: "...", | ||
58 | - entityFilter: "..." | 55 | + alias: "...", |
56 | + filter: "..." | ||
59 | } | 57 | } |
60 | } | 58 | } |
61 | .... | 59 | .... |
@@ -64,9 +62,8 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | @@ -64,9 +62,8 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | ||
64 | 62 | ||
65 | function prepareAliasInfo(entityAlias) { | 63 | function prepareAliasInfo(entityAlias) { |
66 | return { | 64 | return { |
67 | - aliasName: entityAlias.alias, | ||
68 | - entityType: entityAlias.entityType, | ||
69 | - entityFilter: entityAlias.entityFilter | 65 | + alias: entityAlias.alias, |
66 | + filter: entityAlias.filter | ||
70 | }; | 67 | }; |
71 | } | 68 | } |
72 | 69 | ||
@@ -288,8 +285,7 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | @@ -288,8 +285,7 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | ||
288 | } | 285 | } |
289 | 286 | ||
290 | function isEntityAliasEqual(alias1, alias2) { | 287 | function isEntityAliasEqual(alias1, alias2) { |
291 | - return alias1.entityType === alias2.entityType && | ||
292 | - angular.equals(alias1.entityFilter, alias2.entityFilter); | 288 | + return angular.equals(alias1.filter, alias2.filter); |
293 | } | 289 | } |
294 | 290 | ||
295 | function getEntityAliasId(entityAliases, aliasInfo) { | 291 | function getEntityAliasId(entityAliases, aliasInfo) { |
@@ -301,13 +297,13 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | @@ -301,13 +297,13 @@ function ItemBuffer($q, bufferStore, types, utils, dashboardUtils) { | ||
301 | } | 297 | } |
302 | } | 298 | } |
303 | if (!newAliasId) { | 299 | if (!newAliasId) { |
304 | - var newAliasName = createEntityAliasName(entityAliases, aliasInfo.aliasName); | 300 | + var newAliasName = createEntityAliasName(entityAliases, aliasInfo.alias); |
305 | newAliasId = 0; | 301 | newAliasId = 0; |
306 | for (aliasId in entityAliases) { | 302 | for (aliasId in entityAliases) { |
307 | newAliasId = Math.max(newAliasId, aliasId); | 303 | newAliasId = Math.max(newAliasId, aliasId); |
308 | } | 304 | } |
309 | newAliasId++; | 305 | newAliasId++; |
310 | - entityAliases[newAliasId] = {alias: newAliasName, entityType: aliasInfo.entityType, entityFilter: aliasInfo.entityFilter}; | 306 | + entityAliases[newAliasId] = {id: newAliasId, alias: newAliasName, filter: aliasInfo.filter}; |
311 | } | 307 | } |
312 | return newAliasId; | 308 | return newAliasId; |
313 | } | 309 | } |