diff --git a/ui/src/app/api/edge.service.js b/ui/src/app/api/edge.service.js
index f5e43f7ef5..debd49069a 100644
--- a/ui/src/app/api/edge.service.js
+++ b/ui/src/app/api/edge.service.js
@@ -36,7 +36,8 @@ function EdgeService($http, $q, customerService) {
makeEdgePublic: makeEdgePublic,
setRootRuleChain: setRootRuleChain,
getEdgeEvents: getEdgeEvents,
- syncEdge: syncEdge
+ syncEdge: syncEdge,
+ findMissingToRelatedRuleChains: findMissingToRelatedRuleChains
};
return service;
@@ -305,4 +306,15 @@ function EdgeService($http, $q, customerService) {
});
return deferred.promise;
}
+
+ function findMissingToRelatedRuleChains(edgeId) {
+ var deferred = $q.defer();
+ var url = '/api/edge/missingToRelatedRuleChains/' + edgeId;
+ $http.get(url, null).then(function success(response) {
+ deferred.resolve(response.data);
+ }, function fail(response) {
+ deferred.reject(response.data);
+ });
+ return deferred.promise;
+ }
}
diff --git a/ui/src/app/api/entity.service.js b/ui/src/app/api/entity.service.js
index df684c334e..56e4378eba 100644
--- a/ui/src/app/api/entity.service.js
+++ b/ui/src/app/api/entity.service.js
@@ -910,6 +910,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device
}
}
}
+ if (!userService.isEdgesSupportEnabled()) {
+ delete entityTypes.edge;
+ }
return entityTypes;
}
diff --git a/ui/src/app/api/user.service.js b/ui/src/app/api/user.service.js
index b84bcf8428..cdf18c27ed 100644
--- a/ui/src/app/api/user.service.js
+++ b/ui/src/app/api/user.service.js
@@ -29,7 +29,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
allowedDashboardIds = [],
redirectParams = null,
userTokenAccessEnabled = false,
- userLoaded = false;
+ userLoaded = false,
+ edgesSupportEnabled = false;
var refreshTokenQueue = [];
@@ -65,7 +66,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
reloadUser: reloadUser,
isUserTokenAccessEnabled: isUserTokenAccessEnabled,
loginAsUser: loginAsUser,
- setUserCredentialsEnabled: setUserCredentialsEnabled
+ setUserCredentialsEnabled: setUserCredentialsEnabled,
+ isEdgesSupportEnabled: isEdgesSupportEnabled
}
reloadUser();
@@ -451,6 +453,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
function loadSystemParams() {
var promises = [];
promises.push(loadIsUserTokenAccessEnabled());
+ promises.push(loadIsEdgesSupportEnabled());
promises.push(timeService.loadMaxDatapointsLimit());
return $q.all(promises);
}
@@ -685,4 +688,20 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
});
}
+ function isEdgesSupportEnabled() {
+ return edgesSupportEnabled;
+ }
+
+ function loadIsEdgesSupportEnabled() {
+ var deferred = $q.defer();
+ var url = '/api/edges/enabled';
+ $http.get(url).then(function success(response) {
+ edgesSupportEnabled = response.data;
+ deferred.resolve(response);
+ }, function fail() {
+ deferred.reject();
+ });
+ return deferred.promise;
+ }
+
}
diff --git a/ui/src/app/common/types.constant.js b/ui/src/app/common/types.constant.js
index a9a833bd7e..e43dd9aa8a 100644
--- a/ui/src/app/common/types.constant.js
+++ b/ui/src/app/common/types.constant.js
@@ -1076,6 +1076,127 @@ export default angular.module('thingsboard.types', [])
},
translate: {
customTranslationsPrefix: "custom."
- }
+ },
+ edgeEventActionType: {
+ "ADDED": {
+ name: "audit-log.type-added"
+ },
+ "DELETED": {
+ name: "audit-log.type-deleted"
+ },
+ "UPDATED": {
+ name: "audit-log.type-updated"
+ },
+ "ATTRIBUTES_UPDATED": {
+ name: "audit-log.type-attributes-updated"
+ },
+ "ATTRIBUTES_DELETED": {
+ name: "audit-log.type-attributes-deleted"
+ },
+ "RPC_CALL": {
+ name: "audit-log.type-rpc-call"
+ },
+ "CREDENTIALS_UPDATED": {
+ name: "audit-log.type-credentials-updated"
+ },
+ "RELATION_ADD_OR_UPDATE": {
+ name: "audit-log.type-relation-add-or-update"
+ },
+ "RELATION_DELETED": {
+ name: "audit-log.type-relation-delete"
+ },
+ "ALARM_ACK": {
+ name: "audit-log.type-alarm-ack"
+ },
+ "ALARM_CLEAR": {
+ name: "audit-log.type-alarm-clear"
+ },
+ "CREDENTIALS_REQUEST": {
+ name: "edge.credentials-request"
+ },
+ "ATTRIBUTES_REQUEST": {
+ name: "edge.attributes-request"
+ },
+ "TIMESERIES_UPDATED": {
+ name: "edge.timeseries-updated"
+ },
+ "RELATION_REQUEST": {
+ name: "edge.relation-request"
+ },
+ "RULE_CHAIN_METADATA_REQUEST": {
+ name: "edge.rule-chain-metadata-request"
+ },
+ "GROUP_ENTITIES_REQUEST": {
+ name: "edge.group_entities_request"
+ },
+ "GROUP_PERMISSIONS_REQUEST": {
+ name: "edge.group-permissions-request"
+ },
+ "ASSIGNED_TO_EDGE": {
+ name: "audit-log.type-assigned-to-edge"
+ },
+ "UNASSIGNED_FROM_EDGE": {
+ name: "audit-log.type-unassigned-from-edge"
+ }
+ },
+ edgeEventTypeTranslations:{
+ "DASHBOARD": {
+ name: "entity.type-dashboard"
+ },
+ "ASSET": {
+ name: "entity.type-asset"
+ },
+ "DEVICE": {
+ name: "entity.type-device"
+ },
+ "ENTITY_VIEW": {
+ name: "entity.type-entity_view"
+ },
+ "ALARM": {
+ name: "entity.type-alarm"
+ },
+ "RULE_CHAIN": {
+ name: "entity.type-rulechain"
+ },
+ "RULE_CHAIN_META_DATA": {
+ name: "entity.type-rule-chain-metadata"
+ },
+ "EDGE": {
+ name: "entity.type-edge"
+ },
+ "USER": {
+ name: "entity.type-user"
+ },
+ "CUSTOMER": {
+ name: "entity.type-customer"
+ },
+ "RELATION": {
+ name: "entity.type-relation"
+ },
+ "ENTITY_GROUP": {
+ name: "entity.type-entity-group"
+ },
+ "SCHEDULER_EVENT": {
+ name: "entity.type-scheduler-event"
+ },
+ "WHITE_LABELING": {
+ name: "white-labeling.white-labeling"
+ },
+ "LOGIN_WHITE_LABELING": {
+ name: "white-labeling.login-white-labeling"
+ },
+ "CUSTOM_TRANSLATION": {
+ name: "custom-translation.custom-translation",
+ },
+ "WIDGETS_BUNDLE": {
+ name: "widget.widget-bundle"
+ },
+ "WIDGET_TYPE": {
+ name: "widget.type"
+ },
+ "ADMIN_SETTINGS": {
+ name: "permission.resource.display-type.ADMIN_SETTINGS"
+ }
+ },
}
).name;
diff --git a/ui/src/app/customer/customer.controller.js b/ui/src/app/customer/customer.controller.js
index c61962f9f3..2d1d2202a8 100644
--- a/ui/src/app/customer/customer.controller.js
+++ b/ui/src/app/customer/customer.controller.js
@@ -81,7 +81,7 @@ export default function CustomerController(customerService, $state, $stateParams
onAction: function ($event, item) {
openCustomerEdges($event, item);
},
- name: function() { return $translate.instant('edge.edges') },
+ name: function() { return $translate.instant('edge.edge-instances') },
details: function(customer) {
if (customer && customer.additionalInfo && customer.additionalInfo.isPublic) {
return $translate.instant('customer.manage-public-edges')
diff --git a/ui/src/app/edge/edge-fieldset.tpl.html b/ui/src/app/edge/edge-fieldset.tpl.html
index 2f2195ec39..aee00875b9 100644
--- a/ui/src/app/edge/edge-fieldset.tpl.html
+++ b/ui/src/app/edge/edge-fieldset.tpl.html
@@ -15,34 +15,38 @@
limitations under the License.
-->
-