thingsboard-aplcache
Changes
ui/src/app/api/entity.service.js 51(+35 -16)
Details
ui/src/app/api/entity.service.js 51(+35 -16)
diff --git a/ui/src/app/api/entity.service.js b/ui/src/app/api/entity.service.js
index 9cf08d9..1388536 100644
--- a/ui/src/app/api/entity.service.js
+++ b/ui/src/app/api/entity.service.js
@@ -892,10 +892,10 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
}
}
- function getRelatedEntities(rootEntityId, entityType, entitySubTypes, maxLevel, keys, typeTranslatePrefix) {
+ function getRelatedEntities(rootEntityId, entityType, entitySubTypes, maxLevel, keys, typeTranslatePrefix, relationType) {
var deferred = $q.defer();
- var entitySearchQuery = constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel);
+ var entitySearchQuery = constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel, relationType);
if (!entitySearchQuery) {
deferred.reject();
} else {
@@ -930,12 +930,12 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
return deferred.promise;
}
- function saveRelatedEntity(relatedEntity, parentEntityId, keys) {
+ function saveRelatedEntity(relatedEntity, parentEntityId, keys, relation) {
var deferred = $q.defer();
if (relatedEntity.id.id) {
- updateRelatedEntity(relatedEntity, keys, deferred);
+ updateRelatedEntity(relatedEntity, keys, deferred, relation);
} else {
- addRelatedEntity(relatedEntity, parentEntityId, keys, deferred);
+ addRelatedEntity(relatedEntity, parentEntityId, keys, deferred, relation);
}
return deferred.promise;
}
@@ -1073,7 +1073,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
}
}
- function addRelatedEntity(relatedEntity, parentEntityId, keys, deferred) {
+ function addRelatedEntity(relatedEntity, parentEntityId, keys, deferred, relation) {
var entity = {};
entity.id = relatedEntity.id;
entity.name = relatedEntity.name;
@@ -1081,14 +1081,18 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
saveEntityPromise(entity).then(
function success(entity) {
relatedEntity.id = entity.id;
- var relation = {
- from: parentEntityId,
- to: relatedEntity.id,
- type: types.entityRelationType.contains
- };
+ if (!relation) {
+ relation = {
+ from: parentEntityId,
+ to: relatedEntity.id,
+ type: types.entityRelationType.contains
+ };
+ } else {
+ relation.to = relatedEntity.id;
+ }
entityRelationService.saveRelation(relation).then(
function success() {
- updateEntity(entity, relatedEntity, keys, deferred);
+ updateEntity(entity, relatedEntity, keys, deferred, relation);
},
function fail() {
deferred.reject();
@@ -1101,10 +1105,22 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
);
}
- function updateRelatedEntity(relatedEntity, keys, deferred) {
+ function updateRelatedEntity(relatedEntity, keys, deferred, relation) {
getEntityPromise(relatedEntity.id.entityType, relatedEntity.id.id, {ignoreLoading: true}).then(
function success(entity) {
- updateEntity(entity, relatedEntity, keys, deferred);
+ if (relation) {
+ relation.to = relatedEntity.id;
+ entityRelationService.saveRelation(relation).then(
+ function success() {
+ updateEntity(entity, relatedEntity, keys, deferred);
+ },
+ function fail() {
+ deferred.reject();
+ }
+ );
+ } else {
+ updateEntity(entity, relatedEntity, keys, deferred);
+ }
},
function fail() {
deferred.reject();
@@ -1146,7 +1162,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
);
}
- function constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel) {
+ function constructRelatedEntitiesSearchQuery(rootEntityId, entityType, entitySubTypes, maxLevel, relationType) {
var searchQuery = {
parameters: {
@@ -1154,8 +1170,11 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
rootType: rootEntityId.entityType,
direction: types.entitySearchDirection.from
},
- relationType: types.entityRelationType.contains
+ relationType: relationType
};
+ if (!relationType) {
+ searchQuery.relationType = types.entityRelationType.contains;
+ }
if (maxLevel) {
searchQuery.parameters.maxLevel = maxLevel;
diff --git a/ui/src/app/entity/relation/relation-table.tpl.html b/ui/src/app/entity/relation/relation-table.tpl.html
index c93755b..56970f9 100644
--- a/ui/src/app/entity/relation/relation-table.tpl.html
+++ b/ui/src/app/entity/relation/relation-table.tpl.html
@@ -125,7 +125,7 @@
</md-table-container>
<md-table-pagination md-limit="vm.query.limit" md-limit-options="[5, 10, 15]"
md-page="vm.query.page" md-total="{{vm.relationsCount}}"
- md-on-paginate="onPaginate" md-page-select>
+ md-on-paginate="vm.onPaginate" md-page-select>
</md-table-pagination>
</div>
</md-content>