Merge branch 'develop/2.6-edge' of github.com:volodymyr-babak/thingsboard into develop/2.6-edge
This commit is contained in:
commit
773d38067b
@ -25,6 +25,7 @@ import org.apache.http.HttpHost;
|
||||
import org.apache.http.conn.ssl.DefaultHostnameVerifier;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClients;
|
||||
import org.hibernate.exception.ConstraintViolationException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.cache.Cache;
|
||||
@ -172,7 +173,22 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
|
||||
public Edge saveEdge(Edge edge) {
|
||||
log.trace("Executing saveEdge [{}]", edge);
|
||||
edgeValidator.validate(edge, Edge::getTenantId);
|
||||
return edgeDao.save(edge.getTenantId(), edge);
|
||||
Edge savedEdge;
|
||||
if (!sqlDatabaseUsed) {
|
||||
savedEdge = edgeDao.save(edge.getTenantId(), edge);
|
||||
} else {
|
||||
try {
|
||||
savedEdge = edgeDao.save(edge.getTenantId(), edge);
|
||||
} catch (Exception t) {
|
||||
ConstraintViolationException e = extractConstraintViolationException(t).orElse(null);
|
||||
if (e != null && e.getConstraintName() != null && e.getConstraintName().equalsIgnoreCase("edge_name_unq_key")) {
|
||||
throw new DataValidationException("Edge with such name already exists!");
|
||||
} else {
|
||||
throw t;
|
||||
}
|
||||
}
|
||||
}
|
||||
return savedEdge;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -322,19 +322,13 @@ function AssetService($http, $q, $filter, customerService, userService) {
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function getEdgeAssets(edgeId, pageLink, config, type) {
|
||||
function getEdgeAssets(edgeId, pageLink, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/edge/' + edgeId + '/assets?limit=' + pageLink.limit;
|
||||
if (angular.isDefined(pageLink.idOffset)) {
|
||||
url += '&offset=' + pageLink.idOffset;
|
||||
}
|
||||
$http.get(url, config).then(function success(response) {
|
||||
if (pageLink.textSearch) {
|
||||
response.data.data = $filter('filter')(response.data.data, {name: pageLink.textSearch});
|
||||
}
|
||||
if (angular.isDefined(type) && type.length) {
|
||||
response.data.data = $filter('filter')(response.data.data, {type: type});
|
||||
}
|
||||
deferred.resolve(response.data);
|
||||
}, function fail() {
|
||||
deferred.reject();
|
||||
|
||||
@ -302,9 +302,6 @@ function DashboardService($rootScope, $http, $q, $location, $filter) {
|
||||
}
|
||||
$http.get(url, config).then(function success(response) {
|
||||
response.data = prepareDashboards(response.data);
|
||||
if (pageLink.textSearch) {
|
||||
response.data.data = $filter('filter')(response.data.data, {title: pageLink.textSearch});
|
||||
}
|
||||
deferred.resolve(response.data);
|
||||
}, function fail() {
|
||||
deferred.reject();
|
||||
|
||||
@ -384,19 +384,13 @@ function DeviceService($http, $q, $window, $filter, userService, attributeServic
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function getEdgeDevices(edgeId, pageLink, config, type) {
|
||||
function getEdgeDevices(edgeId, pageLink, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/edge/' + edgeId + '/devices?limit=' + pageLink.limit;
|
||||
if (angular.isDefined(pageLink.idOffset)) {
|
||||
url += '&offset=' + pageLink.idOffset;
|
||||
}
|
||||
$http.get(url, config).then(function success(response) {
|
||||
if (pageLink.textSearch) {
|
||||
response.data.data = $filter('filter')(response.data.data, {name: pageLink.textSearch});
|
||||
}
|
||||
if (angular.isDefined(type) && type.length) {
|
||||
response.data.data = $filter('filter')(response.data.data, {type: type});
|
||||
}
|
||||
deferred.resolve(response.data);
|
||||
}, function fail() {
|
||||
deferred.reject();
|
||||
|
||||
@ -30,6 +30,7 @@ function EdgeService($http, $q, customerService) {
|
||||
getTenantEdges: getTenantEdges,
|
||||
getCustomerEdges: getCustomerEdges,
|
||||
assignEdgeToCustomer: assignEdgeToCustomer,
|
||||
findByQuery: findByQuery,
|
||||
unassignEdgeFromCustomer: unassignEdgeFromCustomer,
|
||||
makeEdgePublic: makeEdgePublic,
|
||||
setRootRuleChain: setRootRuleChain,
|
||||
@ -61,13 +62,7 @@ function EdgeService($http, $q, customerService) {
|
||||
|
||||
function getEdgesByIds(edgeIds, config) {
|
||||
var deferred = $q.defer();
|
||||
var ids = '';
|
||||
for (var i=0;i<edgeIds.length;i++) {
|
||||
if (i>0) {
|
||||
ids += ',';
|
||||
}
|
||||
ids += edgeIds[i];
|
||||
}
|
||||
var ids = edgeIds.join(',');
|
||||
var url = '/api/edges?edgeIds=' + ids;
|
||||
$http.get(url, config).then(function success(response) {
|
||||
var entities = response.data;
|
||||
@ -85,9 +80,13 @@ function EdgeService($http, $q, customerService) {
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function getEdge(edgeId, config) {
|
||||
function getEdge(edgeId, ignoreErrors, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/edge/' + edgeId;
|
||||
if (!config) {
|
||||
config = {};
|
||||
}
|
||||
config = Object.assign(config, { ignoreErrors: ignoreErrors });
|
||||
$http.get(url, config).then(function success(response) {
|
||||
deferred.resolve(response.data);
|
||||
}, function fail(response) {
|
||||
@ -129,7 +128,7 @@ function EdgeService($http, $q, customerService) {
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function getTenantEdges(pageLink, applyCustomersInfo, config, type) {
|
||||
function getTenantEdges(pageLink, applyCustomersInfo, type, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/tenant/edges?limit=' + pageLink.limit;
|
||||
if (angular.isDefined(pageLink.textSearch)) {
|
||||
@ -164,7 +163,7 @@ function EdgeService($http, $q, customerService) {
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function getCustomerEdges(customerId, pageLink, applyCustomersInfo, config, type) {
|
||||
function getCustomerEdges(customerId, pageLink, applyCustomersInfo, type, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/customer/' + customerId + '/edges?limit=' + pageLink.limit;
|
||||
if (angular.isDefined(pageLink.textSearch)) {
|
||||
@ -200,6 +199,21 @@ function EdgeService($http, $q, customerService) {
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function findByQuery(query, ignoreErrors, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/edges';
|
||||
if (!config) {
|
||||
config = {};
|
||||
}
|
||||
config = Object.assign(config, { ignoreErrors: ignoreErrors });
|
||||
$http.post(url, query, config).then(function success(response) {
|
||||
deferred.resolve(response.data);
|
||||
}, function fail() {
|
||||
deferred.reject();
|
||||
});
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function assignEdgeToCustomer(customerId, edgeId) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/customer/' + customerId + '/edge/' + edgeId;
|
||||
|
||||
@ -245,19 +245,13 @@ function EntityViewService($http, $q, $window, $filter, userService, attributeSe
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function getEdgeEntityViews(edgeId, pageLink, config, type) {
|
||||
function getEdgeEntityViews(edgeId, pageLink, config) {
|
||||
var deferred = $q.defer();
|
||||
var url = '/api/edge/' + edgeId + '/entityViews?limit=' + pageLink.limit;
|
||||
if (angular.isDefined(pageLink.idOffset)) {
|
||||
url += '&offset=' + pageLink.idOffset;
|
||||
}
|
||||
$http.get(url, config).then(function success(response) {
|
||||
if (pageLink.textSearch) {
|
||||
response.data.data = $filter('filter')(response.data.data, {name: pageLink.textSearch});
|
||||
}
|
||||
if (angular.isDefined(type) && type.length) {
|
||||
response.data.data = $filter('filter')(response.data.data, {type: type});
|
||||
}
|
||||
deferred.resolve(response.data);
|
||||
}, function fail() {
|
||||
deferred.reject();
|
||||
|
||||
@ -78,7 +78,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
|
||||
$log.error('Get Alarm Entity is not implemented!');
|
||||
break;
|
||||
case types.entityType.edge:
|
||||
promise = edgeService.getEdge(entityId, config);
|
||||
promise = edgeService.getEdge(entityId, true, config);
|
||||
break;
|
||||
}
|
||||
return promise;
|
||||
@ -164,7 +164,7 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
|
||||
break;
|
||||
case types.entityType.edge:
|
||||
promise = getEntitiesByIdsPromise(
|
||||
(id) => edgeService.getEdge(id, config), entityIds);
|
||||
(id) => edgeService.getEdge(id, true, config), entityIds);
|
||||
break;
|
||||
}
|
||||
return promise;
|
||||
@ -294,9 +294,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
|
||||
break;
|
||||
case types.entityType.edge:
|
||||
if (user.authority === 'CUSTOMER_USER') {
|
||||
promise = edgeService.getCustomerEdges(customerId, pageLink, false, config, subType);
|
||||
promise = edgeService.getCustomerEdges(customerId, pageLink, false, subType, config);
|
||||
} else {
|
||||
promise = edgeService.getTenantEdges(pageLink, false, config, subType);
|
||||
promise = edgeService.getTenantEdges(pageLink, false, subType, config);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -960,9 +960,6 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
|
||||
break;
|
||||
case types.entityType.entityView:
|
||||
case types.entityType.edge:
|
||||
entityFieldKeys.push(types.entityField.name.keyName);
|
||||
entityFieldKeys.push(types.entityField.type.keyName);
|
||||
break;
|
||||
case types.entityType.device:
|
||||
case types.entityType.asset:
|
||||
entityFieldKeys.push(types.entityField.name.keyName);
|
||||
|
||||
@ -321,9 +321,6 @@ function RuleChainService($http, $q, $filter, $ocLazyLoad, $translate, types, co
|
||||
url += '&offset=' + pageLink.idOffset;
|
||||
}
|
||||
$http.get(url, config).then(function success(response) {
|
||||
if (pageLink.textSearch) {
|
||||
response.data.data = $filter('filter')(response.data.data, {title: pageLink.textSearch});
|
||||
}
|
||||
deferred.resolve(response.data);
|
||||
}, function fail() {
|
||||
deferred.reject();
|
||||
|
||||
@ -324,8 +324,8 @@ export function AssetController($rootScope, userService, assetService, customerS
|
||||
vm.assetGridConfig.addItemActions = [];
|
||||
|
||||
} else if (vm.assetsScope === 'edge') {
|
||||
fetchAssetsFunction = function (pageLink, assetType) {
|
||||
return assetService.getEdgeAssets(edgeId, pageLink, null, assetType);
|
||||
fetchAssetsFunction = function (pageLink) {
|
||||
return assetService.getEdgeAssets(edgeId, pageLink, null);
|
||||
};
|
||||
deleteAssetFunction = function (assetId) {
|
||||
return assetService.unassignAssetFromEdge(edgeId, assetId);
|
||||
|
||||
@ -357,8 +357,8 @@ export function DeviceController($rootScope, userService, deviceService, custome
|
||||
vm.deviceGridConfig.addItemActions = [];
|
||||
|
||||
} else if (vm.devicesScope === 'edge') {
|
||||
fetchDevicesFunction = function (pageLink, deviceType) {
|
||||
return deviceService.getEdgeDevices(edgeId, pageLink, null, deviceType);
|
||||
fetchDevicesFunction = function (pageLink) {
|
||||
return deviceService.getEdgeDevices(edgeId, pageLink, null);
|
||||
};
|
||||
deleteDeviceFunction = function (deviceId) {
|
||||
return deviceService.unassignDeviceFromEdge(edgeId, deviceId);
|
||||
|
||||
@ -161,7 +161,7 @@ export function EdgeController($rootScope, userService, edgeService, customerSer
|
||||
|
||||
if (vm.edgesScope === 'tenant') {
|
||||
fetchEdgesFunction = function (pageLink, edgeType) {
|
||||
return edgeService.getTenantEdges(pageLink, true, null, edgeType);
|
||||
return edgeService.getTenantEdges(pageLink, true, edgeType, null);
|
||||
};
|
||||
deleteEdgeFunction = function (edgeId) {
|
||||
return edgeService.deleteEdge(edgeId);
|
||||
@ -337,7 +337,7 @@ export function EdgeController($rootScope, userService, edgeService, customerSer
|
||||
|
||||
} else if (vm.edgesScope === 'customer' || vm.edgesScope === 'customer_user') {
|
||||
fetchEdgesFunction = function (pageLink, edgeType) {
|
||||
return edgeService.getCustomerEdges(customerId, pageLink, true, null, edgeType);
|
||||
return edgeService.getCustomerEdges(customerId, pageLink, true, edgeType, null);
|
||||
};
|
||||
deleteEdgeFunction = function (edgeId) {
|
||||
return edgeService.unassignEdgeFromCustomer(edgeId);
|
||||
|
||||
@ -285,8 +285,8 @@ export function EntityViewController($rootScope, userService, entityViewService,
|
||||
vm.entityViewGridConfig.addItemAction = {};
|
||||
}
|
||||
} else if (vm.entityViewsScope === 'edge') {
|
||||
fetchEntityViewsFunction = function (pageLink, entityViewType) {
|
||||
return entityViewService.getEdgeEntityViews(edgeId, pageLink, null, entityViewType);
|
||||
fetchEntityViewsFunction = function (pageLink) {
|
||||
return entityViewService.getEdgeEntityViews(edgeId, pageLink, null);
|
||||
};
|
||||
deleteEntityViewFunction = function (entityViewId) {
|
||||
return entityViewService.unassignEntityViewFromEdge(edgeId, entityViewId);
|
||||
|
||||
@ -614,6 +614,16 @@ export default function ImportExport($log, $translate, $q, $mdDialog, $document,
|
||||
}
|
||||
);
|
||||
return deferred.promise;
|
||||
case types.entityType.edge:
|
||||
openImportDialogCSV($event, entityType, 'edge.import', 'edge.edge-file').then(
|
||||
function success() {
|
||||
deferred.resolve();
|
||||
},
|
||||
function fail() {
|
||||
deferred.reject();
|
||||
}
|
||||
);
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -765,6 +765,7 @@
|
||||
"edge": {
|
||||
"edge": "Edge",
|
||||
"edges": "Edges",
|
||||
"edge-file": "Edge file",
|
||||
"management": "Edge management",
|
||||
"no-edges-matching": "No edges matching '{{entity}}' were found.",
|
||||
"add": "Add Edge",
|
||||
|
||||
@ -107,7 +107,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
|
||||
var deleteRuleChainFunction = null;
|
||||
|
||||
if (edgeId) {
|
||||
edgeService.getEdge(edgeId).then(
|
||||
edgeService.getEdge(edgeId, true, null).then(
|
||||
function success(edge) {
|
||||
vm.edge = edge;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user