Commit 308fa1fd8c497b0dcab14b61c96826dfa2737576
Committed by
GitHub
1 parent
7c9f8d75
UI: (#2372)
Added fetchLastLevelOnly checkbox to alias query filter. Updated ENG, RUS, UKR locales. Updated getRelatedEntities and (constructRelatedEntitiesSearchQuery) function(s) by adding fetchLastLevelOnly attribute.
Showing
6 changed files
with
45 additions
and
6 deletions
@@ -593,7 +593,8 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -593,7 +593,8 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
593 | parameters: { | 593 | parameters: { |
594 | rootId: relationQueryRootEntityId.id, | 594 | rootId: relationQueryRootEntityId.id, |
595 | rootType: relationQueryRootEntityId.entityType, | 595 | rootType: relationQueryRootEntityId.entityType, |
596 | - direction: filter.direction | 596 | + direction: filter.direction, |
597 | + fetchLastLevelOnly: filter.fetchLastLevelOnly | ||
597 | }, | 598 | }, |
598 | filters: filter.filters | 599 | filters: filter.filters |
599 | }; | 600 | }; |
@@ -643,7 +644,8 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -643,7 +644,8 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
643 | parameters: { | 644 | parameters: { |
644 | rootId: searchQueryRootEntityId.id, | 645 | rootId: searchQueryRootEntityId.id, |
645 | rootType: searchQueryRootEntityId.entityType, | 646 | rootType: searchQueryRootEntityId.entityType, |
646 | - direction: filter.direction | 647 | + direction: filter.direction, |
648 | + fetchLastLevelOnly: filter.fetchLastLevelOnly | ||
647 | }, | 649 | }, |
648 | relationType: filter.relationType | 650 | relationType: filter.relationType |
649 | }; | 651 | }; |
@@ -1075,10 +1077,10 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -1075,10 +1077,10 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
1075 | } | 1077 | } |
1076 | } | 1078 | } |
1077 | 1079 | ||
1078 | - function getRelatedEntities(rootEntityId, entityType, entitySubTypes, maxLevel, keys, typeTranslatePrefix, relationType, direction) { | 1080 | + function getRelatedEntities(rootEntityId, entityType, entitySubTypes, maxLevel, keys, typeTranslatePrefix, relationType, direction, fetchLastLevelOnly) { |
1079 | var deferred = $q.defer(); | 1081 | var deferred = $q.defer(); |
1080 | 1082 | ||
1081 | - var entitySearchQuery = constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel, relationType, direction); | 1083 | + var entitySearchQuery = constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel, relationType, direction,fetchLastLevelOnly); |
1082 | if (!entitySearchQuery) { | 1084 | if (!entitySearchQuery) { |
1083 | deferred.reject(); | 1085 | deferred.reject(); |
1084 | } else { | 1086 | } else { |
@@ -1499,13 +1501,14 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -1499,13 +1501,14 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
1499 | ); | 1501 | ); |
1500 | } | 1502 | } |
1501 | 1503 | ||
1502 | - function constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel, relationType, direction) { | 1504 | + function constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel, relationType, direction, fetchLastLevelOnly) { |
1503 | 1505 | ||
1504 | var searchQuery = { | 1506 | var searchQuery = { |
1505 | parameters: { | 1507 | parameters: { |
1506 | rootId: rootEntityId.id, | 1508 | rootId: rootEntityId.id, |
1507 | rootType: rootEntityId.entityType, | 1509 | rootType: rootEntityId.entityType, |
1508 | - direction: direction | 1510 | + direction: direction, |
1511 | + fetchLastLevelOnly: !!fetchLastLevelOnly | ||
1509 | }, | 1512 | }, |
1510 | relationType: relationType | 1513 | relationType: relationType |
1511 | }; | 1514 | }; |
@@ -83,6 +83,7 @@ export default function EntityFilterDirective($compile, $templateCache, $q, $doc | @@ -83,6 +83,7 @@ export default function EntityFilterDirective($compile, $templateCache, $q, $doc | ||
83 | filter.rootEntity = null; | 83 | filter.rootEntity = null; |
84 | filter.direction = types.entitySearchDirection.from; | 84 | filter.direction = types.entitySearchDirection.from; |
85 | filter.maxLevel = 1; | 85 | filter.maxLevel = 1; |
86 | + filter.fetchLastLevelOnly = false; | ||
86 | if (filter.type === types.aliasFilterType.relationsQuery.value) { | 87 | if (filter.type === types.aliasFilterType.relationsQuery.value) { |
87 | filter.filters = []; | 88 | filter.filters = []; |
88 | } else if (filter.type === types.aliasFilterType.assetSearchQuery.value) { | 89 | } else if (filter.type === types.aliasFilterType.assetSearchQuery.value) { |
@@ -162,6 +162,14 @@ | @@ -162,6 +162,14 @@ | ||
162 | </div> | 162 | </div> |
163 | </div> | 163 | </div> |
164 | <div flex layout="row"> | 164 | <div flex layout="row"> |
165 | + <section class="tb-root-state-entity-switch" layout="row" layout-align="start center" style="padding-left: 0px;"> | ||
166 | + <md-switch class="root-state-entity-switch" ng-model="filter.fetchLastLevelOnly" | ||
167 | + aria-label="{{ 'alias.last-level-relation' | translate }}"> | ||
168 | + </md-switch> | ||
169 | + <label class="tb-small root-state-entity-label" translate>alias.last-level-relation</label> | ||
170 | + </section> | ||
171 | + </div> | ||
172 | + <div flex layout="row"> | ||
165 | <md-input-container class="md-block" style="min-width: 100px;"> | 173 | <md-input-container class="md-block" style="min-width: 100px;"> |
166 | <label translate>relation.direction</label> | 174 | <label translate>relation.direction</label> |
167 | <md-select required ng-model="filter.direction"> | 175 | <md-select required ng-model="filter.direction"> |
@@ -223,6 +231,14 @@ | @@ -223,6 +231,14 @@ | ||
223 | </div> | 231 | </div> |
224 | </div> | 232 | </div> |
225 | <div flex layout="row"> | 233 | <div flex layout="row"> |
234 | + <section class="tb-root-state-entity-switch" layout="row" layout-align="start center" style="padding-left: 0px;"> | ||
235 | + <md-switch class="root-state-entity-switch" ng-model="filter.fetchLastLevelOnly" | ||
236 | + aria-label="{{ 'alias.last-level-relation' | translate }}"> | ||
237 | + </md-switch> | ||
238 | + <label class="tb-small root-state-entity-label" translate>alias.last-level-relation</label> | ||
239 | + </section> | ||
240 | + </div> | ||
241 | + <div flex layout="row"> | ||
226 | <md-input-container class="md-block" style="min-width: 100px;"> | 242 | <md-input-container class="md-block" style="min-width: 100px;"> |
227 | <label translate>relation.direction</label> | 243 | <label translate>relation.direction</label> |
228 | <md-select required ng-model="filter.direction"> | 244 | <md-select required ng-model="filter.direction"> |
@@ -292,6 +308,14 @@ | @@ -292,6 +308,14 @@ | ||
292 | </div> | 308 | </div> |
293 | </div> | 309 | </div> |
294 | <div flex layout="row"> | 310 | <div flex layout="row"> |
311 | + <section class="tb-root-state-entity-switch" layout="row" layout-align="start center" style="padding-left: 0px;"> | ||
312 | + <md-switch class="root-state-entity-switch" ng-model="filter.fetchLastLevelOnly" | ||
313 | + aria-label="{{ 'alias.last-level-relation' | translate }}"> | ||
314 | + </md-switch> | ||
315 | + <label class="tb-small root-state-entity-label" translate>alias.last-level-relation</label> | ||
316 | + </section> | ||
317 | + </div> | ||
318 | + <div flex layout="row"> | ||
295 | <md-input-container class="md-block" style="min-width: 100px;"> | 319 | <md-input-container class="md-block" style="min-width: 100px;"> |
296 | <label translate>relation.direction</label> | 320 | <label translate>relation.direction</label> |
297 | <md-select required ng-model="filter.direction"> | 321 | <md-select required ng-model="filter.direction"> |
@@ -361,6 +385,14 @@ | @@ -361,6 +385,14 @@ | ||
361 | </div> | 385 | </div> |
362 | </div> | 386 | </div> |
363 | <div flex layout="row"> | 387 | <div flex layout="row"> |
388 | + <section class="tb-root-state-entity-switch" layout="row" layout-align="start center" style="padding-left: 0px;"> | ||
389 | + <md-switch class="root-state-entity-switch" ng-model="filter.fetchLastLevelOnly" | ||
390 | + aria-label="{{ 'alias.last-level-relation' | translate }}"> | ||
391 | + </md-switch> | ||
392 | + <label class="tb-small root-state-entity-label" translate>alias.last-level-relation</label> | ||
393 | + </section> | ||
394 | + </div> | ||
395 | + <div flex layout="row"> | ||
364 | <md-input-container class="md-block" style="min-width: 100px;"> | 396 | <md-input-container class="md-block" style="min-width: 100px;"> |
365 | <label translate>relation.direction</label> | 397 | <label translate>relation.direction</label> |
366 | <md-select required ng-model="filter.direction"> | 398 | <md-select required ng-model="filter.direction"> |
@@ -207,6 +207,7 @@ | @@ -207,6 +207,7 @@ | ||
207 | "entity-filter-no-entity-matched": "No entities matching specified filter were found.", | 207 | "entity-filter-no-entity-matched": "No entities matching specified filter were found.", |
208 | "no-entity-filter-specified": "No entity filter specified", | 208 | "no-entity-filter-specified": "No entity filter specified", |
209 | "root-state-entity": "Use dashboard state entity as root", | 209 | "root-state-entity": "Use dashboard state entity as root", |
210 | + "last-level-relation": "Fetch last level relation only", | ||
210 | "root-entity": "Root entity", | 211 | "root-entity": "Root entity", |
211 | "state-entity-parameter-name": "State entity parameter name", | 212 | "state-entity-parameter-name": "State entity parameter name", |
212 | "default-state-entity": "Default state entity", | 213 | "default-state-entity": "Default state entity", |
@@ -206,6 +206,7 @@ | @@ -206,6 +206,7 @@ | ||
206 | "entity-filter-no-entity-matched": "Объекты, соответствующие фильтру, не найдены.", | 206 | "entity-filter-no-entity-matched": "Объекты, соответствующие фильтру, не найдены.", |
207 | "no-entity-filter-specified": "Не указан фильтр объектов", | 207 | "no-entity-filter-specified": "Не указан фильтр объектов", |
208 | "root-state-entity": "Использовать объект, полученный из дашборда, как корневой", | 208 | "root-state-entity": "Использовать объект, полученный из дашборда, как корневой", |
209 | + "last-level-relation": "Использовать только отношения последнего уровня", | ||
209 | "root-entity": "Корневой объект", | 210 | "root-entity": "Корневой объект", |
210 | "state-entity-parameter-name": "Название объекта состояния", | 211 | "state-entity-parameter-name": "Название объекта состояния", |
211 | "default-state-entity": "Объект состояния по умолчанию", | 212 | "default-state-entity": "Объект состояния по умолчанию", |
@@ -225,6 +225,7 @@ | @@ -225,6 +225,7 @@ | ||
225 | "entity-filter-no-entity-matched": "Не знайдено жодних сутностей, які відповідають вказаному фільтру.", | 225 | "entity-filter-no-entity-matched": "Не знайдено жодних сутностей, які відповідають вказаному фільтру.", |
226 | "no-entity-filter-specified": "Фільтр обїектів не вказано", | 226 | "no-entity-filter-specified": "Фільтр обїектів не вказано", |
227 | "root-state-entity": "Використовувати сутінсть стану як кореневу", | 227 | "root-state-entity": "Використовувати сутінсть стану як кореневу", |
228 | + "last-level-relation": "Використовувати лише відношення останнього рівня", | ||
228 | "group-state-entity": "Використовувати групу сутностей стану як кореневу", | 229 | "group-state-entity": "Використовувати групу сутностей стану як кореневу", |
229 | "root-entity": "Коренева сутність", | 230 | "root-entity": "Коренева сутність", |
230 | "state-entity-parameter-name": "Параметр сутності стану", | 231 | "state-entity-parameter-name": "Параметр сутності стану", |