Commit 308fa1fd8c497b0dcab14b61c96826dfa2737576

Authored by DudnikMaksym
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.
@@ -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": "Параметр сутності стану",