Commit 1bb77e2eba46819a051f9b757fdcf4819386b0d7
Committed by
GitHub
Merge pull request #71 from deaflynx/develop/2.6-edge
Develop/2.6 edge Edge management, enableEdge
Showing
25 changed files
with
530 additions
and
275 deletions
@@ -36,7 +36,8 @@ function EdgeService($http, $q, customerService) { | @@ -36,7 +36,8 @@ function EdgeService($http, $q, customerService) { | ||
36 | makeEdgePublic: makeEdgePublic, | 36 | makeEdgePublic: makeEdgePublic, |
37 | setRootRuleChain: setRootRuleChain, | 37 | setRootRuleChain: setRootRuleChain, |
38 | getEdgeEvents: getEdgeEvents, | 38 | getEdgeEvents: getEdgeEvents, |
39 | - syncEdge: syncEdge | 39 | + syncEdge: syncEdge, |
40 | + findMissingToRelatedRuleChains: findMissingToRelatedRuleChains | ||
40 | }; | 41 | }; |
41 | 42 | ||
42 | return service; | 43 | return service; |
@@ -305,4 +306,15 @@ function EdgeService($http, $q, customerService) { | @@ -305,4 +306,15 @@ function EdgeService($http, $q, customerService) { | ||
305 | }); | 306 | }); |
306 | return deferred.promise; | 307 | return deferred.promise; |
307 | } | 308 | } |
309 | + | ||
310 | + function findMissingToRelatedRuleChains(edgeId) { | ||
311 | + var deferred = $q.defer(); | ||
312 | + var url = '/api/edge/missingToRelatedRuleChains/' + edgeId; | ||
313 | + $http.get(url, null).then(function success(response) { | ||
314 | + deferred.resolve(response.data); | ||
315 | + }, function fail(response) { | ||
316 | + deferred.reject(response.data); | ||
317 | + }); | ||
318 | + return deferred.promise; | ||
319 | + } | ||
308 | } | 320 | } |
@@ -910,6 +910,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | @@ -910,6 +910,9 @@ function EntityService($http, $q, $filter, $translate, $log, userService, device | ||
910 | } | 910 | } |
911 | } | 911 | } |
912 | } | 912 | } |
913 | + if (!userService.isEdgesSupportEnabled()) { | ||
914 | + delete entityTypes.edge; | ||
915 | + } | ||
913 | return entityTypes; | 916 | return entityTypes; |
914 | } | 917 | } |
915 | 918 |
@@ -29,7 +29,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | @@ -29,7 +29,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | ||
29 | allowedDashboardIds = [], | 29 | allowedDashboardIds = [], |
30 | redirectParams = null, | 30 | redirectParams = null, |
31 | userTokenAccessEnabled = false, | 31 | userTokenAccessEnabled = false, |
32 | - userLoaded = false; | 32 | + userLoaded = false, |
33 | + edgesSupportEnabled = false; | ||
33 | 34 | ||
34 | var refreshTokenQueue = []; | 35 | var refreshTokenQueue = []; |
35 | 36 | ||
@@ -65,7 +66,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | @@ -65,7 +66,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | ||
65 | reloadUser: reloadUser, | 66 | reloadUser: reloadUser, |
66 | isUserTokenAccessEnabled: isUserTokenAccessEnabled, | 67 | isUserTokenAccessEnabled: isUserTokenAccessEnabled, |
67 | loginAsUser: loginAsUser, | 68 | loginAsUser: loginAsUser, |
68 | - setUserCredentialsEnabled: setUserCredentialsEnabled | 69 | + setUserCredentialsEnabled: setUserCredentialsEnabled, |
70 | + isEdgesSupportEnabled: isEdgesSupportEnabled | ||
69 | } | 71 | } |
70 | 72 | ||
71 | reloadUser(); | 73 | reloadUser(); |
@@ -451,6 +453,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | @@ -451,6 +453,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | ||
451 | function loadSystemParams() { | 453 | function loadSystemParams() { |
452 | var promises = []; | 454 | var promises = []; |
453 | promises.push(loadIsUserTokenAccessEnabled()); | 455 | promises.push(loadIsUserTokenAccessEnabled()); |
456 | + promises.push(loadIsEdgesSupportEnabled()); | ||
454 | promises.push(timeService.loadMaxDatapointsLimit()); | 457 | promises.push(timeService.loadMaxDatapointsLimit()); |
455 | return $q.all(promises); | 458 | return $q.all(promises); |
456 | } | 459 | } |
@@ -685,4 +688,20 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | @@ -685,4 +688,20 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time | ||
685 | }); | 688 | }); |
686 | } | 689 | } |
687 | 690 | ||
691 | + function isEdgesSupportEnabled() { | ||
692 | + return edgesSupportEnabled; | ||
693 | + } | ||
694 | + | ||
695 | + function loadIsEdgesSupportEnabled() { | ||
696 | + var deferred = $q.defer(); | ||
697 | + var url = '/api/edges/enabled'; | ||
698 | + $http.get(url).then(function success(response) { | ||
699 | + edgesSupportEnabled = response.data; | ||
700 | + deferred.resolve(response); | ||
701 | + }, function fail() { | ||
702 | + deferred.reject(); | ||
703 | + }); | ||
704 | + return deferred.promise; | ||
705 | + } | ||
706 | + | ||
688 | } | 707 | } |
@@ -1076,6 +1076,127 @@ export default angular.module('thingsboard.types', []) | @@ -1076,6 +1076,127 @@ export default angular.module('thingsboard.types', []) | ||
1076 | }, | 1076 | }, |
1077 | translate: { | 1077 | translate: { |
1078 | customTranslationsPrefix: "custom." | 1078 | customTranslationsPrefix: "custom." |
1079 | - } | 1079 | + }, |
1080 | + edgeEventActionType: { | ||
1081 | + "ADDED": { | ||
1082 | + name: "audit-log.type-added" | ||
1083 | + }, | ||
1084 | + "DELETED": { | ||
1085 | + name: "audit-log.type-deleted" | ||
1086 | + }, | ||
1087 | + "UPDATED": { | ||
1088 | + name: "audit-log.type-updated" | ||
1089 | + }, | ||
1090 | + "ATTRIBUTES_UPDATED": { | ||
1091 | + name: "audit-log.type-attributes-updated" | ||
1092 | + }, | ||
1093 | + "ATTRIBUTES_DELETED": { | ||
1094 | + name: "audit-log.type-attributes-deleted" | ||
1095 | + }, | ||
1096 | + "RPC_CALL": { | ||
1097 | + name: "audit-log.type-rpc-call" | ||
1098 | + }, | ||
1099 | + "CREDENTIALS_UPDATED": { | ||
1100 | + name: "audit-log.type-credentials-updated" | ||
1101 | + }, | ||
1102 | + "RELATION_ADD_OR_UPDATE": { | ||
1103 | + name: "audit-log.type-relation-add-or-update" | ||
1104 | + }, | ||
1105 | + "RELATION_DELETED": { | ||
1106 | + name: "audit-log.type-relation-delete" | ||
1107 | + }, | ||
1108 | + "ALARM_ACK": { | ||
1109 | + name: "audit-log.type-alarm-ack" | ||
1110 | + }, | ||
1111 | + "ALARM_CLEAR": { | ||
1112 | + name: "audit-log.type-alarm-clear" | ||
1113 | + }, | ||
1114 | + "CREDENTIALS_REQUEST": { | ||
1115 | + name: "edge.credentials-request" | ||
1116 | + }, | ||
1117 | + "ATTRIBUTES_REQUEST": { | ||
1118 | + name: "edge.attributes-request" | ||
1119 | + }, | ||
1120 | + "TIMESERIES_UPDATED": { | ||
1121 | + name: "edge.timeseries-updated" | ||
1122 | + }, | ||
1123 | + "RELATION_REQUEST": { | ||
1124 | + name: "edge.relation-request" | ||
1125 | + }, | ||
1126 | + "RULE_CHAIN_METADATA_REQUEST": { | ||
1127 | + name: "edge.rule-chain-metadata-request" | ||
1128 | + }, | ||
1129 | + "GROUP_ENTITIES_REQUEST": { | ||
1130 | + name: "edge.group_entities_request" | ||
1131 | + }, | ||
1132 | + "GROUP_PERMISSIONS_REQUEST": { | ||
1133 | + name: "edge.group-permissions-request" | ||
1134 | + }, | ||
1135 | + "ASSIGNED_TO_EDGE": { | ||
1136 | + name: "audit-log.type-assigned-to-edge" | ||
1137 | + }, | ||
1138 | + "UNASSIGNED_FROM_EDGE": { | ||
1139 | + name: "audit-log.type-unassigned-from-edge" | ||
1140 | + } | ||
1141 | + }, | ||
1142 | + edgeEventTypeTranslations:{ | ||
1143 | + "DASHBOARD": { | ||
1144 | + name: "entity.type-dashboard" | ||
1145 | + }, | ||
1146 | + "ASSET": { | ||
1147 | + name: "entity.type-asset" | ||
1148 | + }, | ||
1149 | + "DEVICE": { | ||
1150 | + name: "entity.type-device" | ||
1151 | + }, | ||
1152 | + "ENTITY_VIEW": { | ||
1153 | + name: "entity.type-entity_view" | ||
1154 | + }, | ||
1155 | + "ALARM": { | ||
1156 | + name: "entity.type-alarm" | ||
1157 | + }, | ||
1158 | + "RULE_CHAIN": { | ||
1159 | + name: "entity.type-rulechain" | ||
1160 | + }, | ||
1161 | + "RULE_CHAIN_META_DATA": { | ||
1162 | + name: "entity.type-rule-chain-metadata" | ||
1163 | + }, | ||
1164 | + "EDGE": { | ||
1165 | + name: "entity.type-edge" | ||
1166 | + }, | ||
1167 | + "USER": { | ||
1168 | + name: "entity.type-user" | ||
1169 | + }, | ||
1170 | + "CUSTOMER": { | ||
1171 | + name: "entity.type-customer" | ||
1172 | + }, | ||
1173 | + "RELATION": { | ||
1174 | + name: "entity.type-relation" | ||
1175 | + }, | ||
1176 | + "ENTITY_GROUP": { | ||
1177 | + name: "entity.type-entity-group" | ||
1178 | + }, | ||
1179 | + "SCHEDULER_EVENT": { | ||
1180 | + name: "entity.type-scheduler-event" | ||
1181 | + }, | ||
1182 | + "WHITE_LABELING": { | ||
1183 | + name: "white-labeling.white-labeling" | ||
1184 | + }, | ||
1185 | + "LOGIN_WHITE_LABELING": { | ||
1186 | + name: "white-labeling.login-white-labeling" | ||
1187 | + }, | ||
1188 | + "CUSTOM_TRANSLATION": { | ||
1189 | + name: "custom-translation.custom-translation", | ||
1190 | + }, | ||
1191 | + "WIDGETS_BUNDLE": { | ||
1192 | + name: "widget.widget-bundle" | ||
1193 | + }, | ||
1194 | + "WIDGET_TYPE": { | ||
1195 | + name: "widget.type" | ||
1196 | + }, | ||
1197 | + "ADMIN_SETTINGS": { | ||
1198 | + name: "permission.resource.display-type.ADMIN_SETTINGS" | ||
1199 | + } | ||
1200 | + }, | ||
1080 | } | 1201 | } |
1081 | ).name; | 1202 | ).name; |
@@ -81,7 +81,7 @@ export default function CustomerController(customerService, $state, $stateParams | @@ -81,7 +81,7 @@ export default function CustomerController(customerService, $state, $stateParams | ||
81 | onAction: function ($event, item) { | 81 | onAction: function ($event, item) { |
82 | openCustomerEdges($event, item); | 82 | openCustomerEdges($event, item); |
83 | }, | 83 | }, |
84 | - name: function() { return $translate.instant('edge.edges') }, | 84 | + name: function() { return $translate.instant('edge.edge-instances') }, |
85 | details: function(customer) { | 85 | details: function(customer) { |
86 | if (customer && customer.additionalInfo && customer.additionalInfo.isPublic) { | 86 | if (customer && customer.additionalInfo && customer.additionalInfo.isPublic) { |
87 | return $translate.instant('customer.manage-public-edges') | 87 | return $translate.instant('customer.manage-public-edges') |
@@ -15,34 +15,38 @@ | @@ -15,34 +15,38 @@ | ||
15 | limitations under the License. | 15 | limitations under the License. |
16 | 16 | ||
17 | --> | 17 | --> |
18 | -<md-button ng-click="onAssignToCustomer({event: $event})" | ||
19 | - ng-show="!isEdit && edgeScope === 'tenant' && !isAssignedToCustomer" | ||
20 | - class="md-raised md-primary">{{ 'edge.assign-to-customer' | translate }}</md-button> | ||
21 | -<md-button ng-click="onUnassignFromCustomer({event: $event, isPublic: isPublic})" | ||
22 | - ng-show="!isEdit && (edgeScope === 'customer' || edgeScope === 'tenant') && isAssignedToCustomer" | ||
23 | - class="md-raised md-primary">{{ isPublic ? 'edge.make-private' : 'edge.unassign-from-customer' | translate }}</md-button> | ||
24 | -<md-button ng-click="onMakePublic({event: $event})" | ||
25 | - ng-show="!isEdit && edgeScope === 'tenant' && !isAssignedToCustomer && !isPublic" | ||
26 | - class="md-raised md-primary">{{ 'edge.make-public' | translate }}</md-button> | ||
27 | -<md-button ng-click="onManageEdgeAssets({event: $event})" | ||
28 | - ng-show="!isEdit && edgeScope === 'tenant'" | ||
29 | - class="md-raised md-primary">{{ 'edge.manage-edge-assets' | translate }}</md-button> | ||
30 | -<md-button ng-click="onManageEdgeDevices({event: $event})" | ||
31 | - ng-show="!isEdit && edgeScope === 'tenant'" | ||
32 | - class="md-raised md-primary">{{ 'edge.manage-edge-devices' | translate }}</md-button> | ||
33 | -<md-button ng-click="onManageEdgeEntityViews({event: $event})" | ||
34 | - ng-show="!isEdit && edgeScope === 'tenant'" | ||
35 | - class="md-raised md-primary">{{ 'edge.manage-edge-entity-views' | translate }}</md-button> | ||
36 | -<md-button ng-click="onManageEdgeDashboards({event: $event})" | ||
37 | - ng-show="!isEdit && edgeScope === 'tenant'" | ||
38 | - class="md-raised md-primary">{{ 'edge.manage-edge-dashboards' | translate }}</md-button> | ||
39 | -<md-button ng-click="onManageEdgeRuleChains({event: $event})" | ||
40 | - ng-show="!isEdit && edgeScope === 'tenant'" | ||
41 | - class="md-raised md-primary">{{ 'edge.manage-edge-rulechains' | translate }}</md-button> | ||
42 | -<md-button ng-click="onDeleteEdge({event: $event})" | ||
43 | - ng-show="!isEdit && edgeScope === 'tenant'" | ||
44 | - class="md-raised md-primary">{{ 'edge.delete' | translate }}</md-button> | 18 | +<div layout="row"> |
19 | + <md-button ng-click="onAssignToCustomer({event: $event})" | ||
20 | + ng-show="!isEdit && edgeScope === 'tenant' && !isAssignedToCustomer" | ||
21 | + class="md-raised md-primary">{{ 'edge.assign-to-customer' | translate }}</md-button> | ||
22 | + <md-button ng-click="onUnassignFromCustomer({event: $event, isPublic: isPublic})" | ||
23 | + ng-show="!isEdit && (edgeScope === 'customer' || edgeScope === 'tenant') && isAssignedToCustomer" | ||
24 | + class="md-raised md-primary">{{ isPublic ? 'edge.make-private' : 'edge.unassign-from-customer' | translate }}</md-button> | ||
25 | + <md-button ng-click="onMakePublic({event: $event})" | ||
26 | + ng-show="!isEdit && edgeScope === 'tenant' && !isAssignedToCustomer && !isPublic" | ||
27 | + class="md-raised md-primary">{{ 'edge.make-public' | translate }}</md-button> | ||
28 | + <md-button ng-click="onDeleteEdge({event: $event})" | ||
29 | + ng-show="!isEdit && edgeScope === 'tenant'" | ||
30 | + class="md-raised md-primary">{{ 'edge.delete' | translate }}</md-button> | ||
31 | +</div> | ||
32 | +<div layout="row"> | ||
33 | + <md-button ng-click="onManageEdgeAssets({event: $event})" | ||
34 | + ng-show="!isEdit && edgeScope === 'tenant'" | ||
35 | + class="md-raised md-primary">{{ 'edge.assets' | translate }}</md-button> | ||
36 | + <md-button ng-click="onManageEdgeDevices({event: $event})" | ||
37 | + ng-show="!isEdit && edgeScope === 'tenant'" | ||
38 | + class="md-raised md-primary">{{ 'edge.devices' | translate }}</md-button> | ||
39 | + <md-button ng-click="onManageEdgeEntityViews({event: $event})" | ||
40 | + ng-show="!isEdit && edgeScope === 'tenant'" | ||
41 | + class="md-raised md-primary">{{ 'edge.entity-views' | translate }}</md-button> | ||
42 | + <md-button ng-click="onManageEdgeDashboards({event: $event})" | ||
43 | + ng-show="!isEdit && edgeScope === 'tenant'" | ||
44 | + class="md-raised md-primary">{{ 'edge.dashboards' | translate }}</md-button> | ||
45 | + <md-button ng-click="onManageEdgeRuleChains({event: $event})" | ||
46 | + ng-show="!isEdit && edgeScope === 'tenant'" | ||
47 | + class="md-raised md-primary">{{ 'edge.rulechain-templates' | translate }}</md-button> | ||
45 | 48 | ||
49 | +</div> | ||
46 | <div layout="row"> | 50 | <div layout="row"> |
47 | <md-button ngclipboard data-clipboard-action="copy" | 51 | <md-button ngclipboard data-clipboard-action="copy" |
48 | ngclipboard-success="onEdgeIdCopied()" | 52 | ngclipboard-success="onEdgeIdCopied()" |
@@ -98,14 +102,7 @@ | @@ -98,14 +102,7 @@ | ||
98 | ng-model="edge.type" | 102 | ng-model="edge.type" |
99 | entity-type="types.entityType.edge"> | 103 | entity-type="types.entityType.edge"> |
100 | </tb-entity-subtype-autocomplete> | 104 | </tb-entity-subtype-autocomplete> |
101 | - <md-input-container class="md-block"> | ||
102 | - <label translate>edge.label</label> | ||
103 | - <input name="label" ng-model="edge.label"> | ||
104 | - </md-input-container> | ||
105 | - <md-input-container class="md-block"> | ||
106 | - <label translate>edge.description</label> | ||
107 | - <textarea ng-model="edge.additionalInfo.description" rows="2"></textarea> | ||
108 | - </md-input-container> | 105 | + <div translate class="tb-hint">edge.license-key-hint</div> |
109 | <md-input-container class="md-block"> | 106 | <md-input-container class="md-block"> |
110 | <label translate>edge.edge-license-key</label> | 107 | <label translate>edge.edge-license-key</label> |
111 | <input required name="edgeLicenseKey" ng-model="edge.edgeLicenseKey"> | 108 | <input required name="edgeLicenseKey" ng-model="edge.edgeLicenseKey"> |
@@ -113,6 +110,7 @@ | @@ -113,6 +110,7 @@ | ||
113 | <div translate ng-message="required">edge.edge-license-key-required</div> | 110 | <div translate ng-message="required">edge.edge-license-key-required</div> |
114 | </div> | 111 | </div> |
115 | </md-input-container> | 112 | </md-input-container> |
113 | + <div translate class="tb-hint">edge.cloud-endpoint-hint</div> | ||
116 | <md-input-container class="md-block"> | 114 | <md-input-container class="md-block"> |
117 | <label translate>edge.cloud-endpoint</label> | 115 | <label translate>edge.cloud-endpoint</label> |
118 | <input required name="cloudEndpoint" ng-model="edge.cloudEndpoint"> | 116 | <input required name="cloudEndpoint" ng-model="edge.cloudEndpoint"> |
@@ -122,7 +120,6 @@ | @@ -122,7 +120,6 @@ | ||
122 | </md-input-container> | 120 | </md-input-container> |
123 | </fieldset> | 121 | </fieldset> |
124 | <div layout="row"> | 122 | <div layout="row"> |
125 | - | ||
126 | <md-input-container class="md-block" flex> | 123 | <md-input-container class="md-block" flex> |
127 | <label translate>edge.edge-key</label> | 124 | <label translate>edge.edge-key</label> |
128 | <input ng-model="edge.routingKey" disabled> | 125 | <input ng-model="edge.routingKey" disabled> |
@@ -152,4 +149,14 @@ | @@ -152,4 +149,14 @@ | ||
152 | </md-tooltip> | 149 | </md-tooltip> |
153 | </md-button> | 150 | </md-button> |
154 | </div> | 151 | </div> |
152 | + <fieldset ng-disabled="$root.loading || !isEdit"> | ||
153 | + <md-input-container class="md-block"> | ||
154 | + <label translate>edge.label</label> | ||
155 | + <input name="label" ng-model="edge.label"> | ||
156 | + </md-input-container> | ||
157 | + <md-input-container class="md-block"> | ||
158 | + <label translate>edge.description</label> | ||
159 | + <textarea ng-model="edge.additionalInfo.description" rows="2"></textarea> | ||
160 | + </md-input-container> | ||
161 | + </fieldset> | ||
155 | </md-content> | 162 | </md-content> |
@@ -283,7 +283,7 @@ export function EdgeController($rootScope, userService, edgeService, customerSer | @@ -283,7 +283,7 @@ export function EdgeController($rootScope, userService, edgeService, customerSer | ||
283 | details: function() { | 283 | details: function() { |
284 | return $translate.instant('edge.manage-edge-rulechains'); | 284 | return $translate.instant('edge.manage-edge-rulechains'); |
285 | }, | 285 | }, |
286 | - icon: "code" | 286 | + icon: "settings_ethernet" |
287 | } | 287 | } |
288 | ); | 288 | ); |
289 | 289 |
@@ -36,6 +36,7 @@ export default function EdgeDirective($compile, $templateCache, $translate, $mdD | @@ -36,6 +36,7 @@ export default function EdgeDirective($compile, $templateCache, $translate, $mdD | ||
36 | scope.edge.routingKey = utils.guid(''); | 36 | scope.edge.routingKey = utils.guid(''); |
37 | scope.edge.secret = generateSecret(20); | 37 | scope.edge.secret = generateSecret(20); |
38 | scope.edge.cloudEndpoint = utils.baseUrl(); | 38 | scope.edge.cloudEndpoint = utils.baseUrl(); |
39 | + scope.edge.type = 'default'; | ||
39 | } | 40 | } |
40 | if (scope.edge.customerId && scope.edge.customerId.id !== types.id.nullUid) { | 41 | if (scope.edge.customerId && scope.edge.customerId.id !== types.id.nullUid) { |
41 | scope.isAssignedToCustomer = true; | 42 | scope.isAssignedToCustomer = true; |
@@ -46,10 +46,10 @@ export default function EdgeRoutes($stateProvider, types) { | @@ -46,10 +46,10 @@ export default function EdgeRoutes($stateProvider, types) { | ||
46 | searchEnabled: true, | 46 | searchEnabled: true, |
47 | searchByEntitySubtype: true, | 47 | searchByEntitySubtype: true, |
48 | searchEntityType: types.entityType.edge, | 48 | searchEntityType: types.entityType.edge, |
49 | - pageTitle: 'edge.edges' | 49 | + pageTitle: 'edge.edge-instances' |
50 | }, | 50 | }, |
51 | ncyBreadcrumb: { | 51 | ncyBreadcrumb: { |
52 | - label: '{"icon": "router", "label": "edge.edges"}' | 52 | + label: '{"icon": "router", "label": "edge.edge-instances"}' |
53 | } | 53 | } |
54 | }).state('home.edges.entityViews', { | 54 | }).state('home.edges.entityViews', { |
55 | url: '/:edgeId/entityViews', | 55 | url: '/:edgeId/entityViews', |
@@ -194,11 +194,11 @@ export default function EdgeRoutes($stateProvider, types) { | @@ -194,11 +194,11 @@ export default function EdgeRoutes($stateProvider, types) { | ||
194 | }, | 194 | }, |
195 | data: { | 195 | data: { |
196 | searchEnabled: true, | 196 | searchEnabled: true, |
197 | - pageTitle: 'edge.rulechains', | 197 | + pageTitle: 'edge.rulechain-templates', |
198 | ruleChainsType: 'edge' | 198 | ruleChainsType: 'edge' |
199 | }, | 199 | }, |
200 | ncyBreadcrumb: { | 200 | ncyBreadcrumb: { |
201 | - label: '{"icon": "code", "label": "rulechain.edge-rulechains"}' | 201 | + label: '{"icon": "settings_ethernet", "label": "edge.rulechain-templates"}' |
202 | } | 202 | } |
203 | }).state('home.edges.ruleChains.ruleChain', { | 203 | }).state('home.edges.ruleChains.ruleChain', { |
204 | url: '/:ruleChainId', | 204 | url: '/:ruleChainId', |
@@ -232,10 +232,10 @@ export default function EdgeRoutes($stateProvider, types) { | @@ -232,10 +232,10 @@ export default function EdgeRoutes($stateProvider, types) { | ||
232 | data: { | 232 | data: { |
233 | import: false, | 233 | import: false, |
234 | searchEnabled: false, | 234 | searchEnabled: false, |
235 | - pageTitle: 'edge.rulechain' | 235 | + pageTitle: 'edge.rulechain-templates' |
236 | }, | 236 | }, |
237 | ncyBreadcrumb: { | 237 | ncyBreadcrumb: { |
238 | - label: '{"icon": "code", "label": "{{ vm.ruleChain.name }}", "translate": "false"}' | 238 | + label: '{"icon": "settings_ethernet", "label": "{{ vm.ruleChain.name }}", "translate": "false"}' |
239 | } | 239 | } |
240 | }); | 240 | }); |
241 | } | 241 | } |
@@ -22,7 +22,7 @@ import entityFilterTemplate from './entity-filter.tpl.html'; | @@ -22,7 +22,7 @@ import entityFilterTemplate from './entity-filter.tpl.html'; | ||
22 | import './entity-filter.scss'; | 22 | import './entity-filter.scss'; |
23 | 23 | ||
24 | /*@ngInject*/ | 24 | /*@ngInject*/ |
25 | -export default function EntityFilterDirective($compile, $templateCache, $q, $document, $mdDialog, types, entityService) { | 25 | +export default function EntityFilterDirective($compile, $templateCache, $q, $document, $mdDialog, types, entityService, userService) { |
26 | 26 | ||
27 | var linker = function (scope, element, attrs, ngModelCtrl) { | 27 | var linker = function (scope, element, attrs, ngModelCtrl) { |
28 | 28 | ||
@@ -31,6 +31,9 @@ export default function EntityFilterDirective($compile, $templateCache, $q, $doc | @@ -31,6 +31,9 @@ export default function EntityFilterDirective($compile, $templateCache, $q, $doc | ||
31 | 31 | ||
32 | scope.ngModelCtrl = ngModelCtrl; | 32 | scope.ngModelCtrl = ngModelCtrl; |
33 | scope.types = types; | 33 | scope.types = types; |
34 | + if (!userService.isEdgesSupportEnabled()) { | ||
35 | + scope.allowedEntityTypes = Object.values(types.entityType).filter(entityType => entityType !== types.entityType.edge); | ||
36 | + } | ||
34 | scope.aliasFilterTypes = entityService.getAliasFilterTypesByEntityTypes(scope.allowedEntityTypes); | 37 | scope.aliasFilterTypes = entityService.getAliasFilterTypesByEntityTypes(scope.allowedEntityTypes); |
35 | 38 | ||
36 | scope.$watch('filter.type', function (newType, prevType) { | 39 | scope.$watch('filter.type', function (newType, prevType) { |
@@ -16,8 +16,8 @@ | @@ -16,8 +16,8 @@ | ||
16 | 16 | ||
17 | --> | 17 | --> |
18 | <div translate class="tb-cell" flex="20">event.event-time</div> | 18 | <div translate class="tb-cell" flex="20">event.event-time</div> |
19 | -<div translate class="tb-cell" flex="20">event.event-type</div> | ||
20 | -<div translate class="tb-cell" flex="40">edge.event-action</div> | ||
21 | -<div translate class="tb-cell" flex="20">edge.entity-id</div> | 19 | +<div translate class="tb-cell" flex="10">event.event-type</div> |
20 | +<div translate class="tb-cell" flex="15">edge.event-action</div> | ||
21 | +<div translate class="tb-cell" flex="30">edge.entity-id</div> | ||
22 | <div translate class="tb-cell" flex="15">edge.status</div> | 22 | <div translate class="tb-cell" flex="15">edge.status</div> |
23 | <div translate class="tb-cell" flex="10">edge.entity-info</div> | 23 | <div translate class="tb-cell" flex="10">edge.entity-info</div> |
@@ -16,9 +16,9 @@ | @@ -16,9 +16,9 @@ | ||
16 | 16 | ||
17 | --> | 17 | --> |
18 | <div class="tb-cell" flex="20">{{ event.createdTime | date : 'yyyy-MM-dd HH:mm:ss' }}</div> | 18 | <div class="tb-cell" flex="20">{{ event.createdTime | date : 'yyyy-MM-dd HH:mm:ss' }}</div> |
19 | -<div class="tb-cell" flex="20">{{ event.type }}</div> | ||
20 | -<div class="tb-cell" flex="40">{{ event.action }}</div> | ||
21 | -<div class="tb-cell" flex="20">{{ event.entityId }}</div> | 19 | +<div class="tb-cell" flex="10">{{ event.edgeEventTypeText }}</div> |
20 | +<div class="tb-cell" flex="15">{{ event.edgeEventActionText }}</div> | ||
21 | +<div class="tb-cell" flex="30">{{ event.entityId }}</div> | ||
22 | <div class="tb-cell" flex="15" ng-style="{'color': statusColor}">{{ updateStatus(event.createdTime) }}</div> | 22 | <div class="tb-cell" flex="15" ng-style="{'color': statusColor}">{{ updateStatus(event.createdTime) }}</div> |
23 | <div class="tb-cell" flex="10"> | 23 | <div class="tb-cell" flex="10"> |
24 | <md-button ng-if="checkEdgeEventType(event.type)" class="md-icon-button md-primary" | 24 | <md-button ng-if="checkEdgeEventType(event.type)" class="md-icon-button md-primary" |
@@ -22,7 +22,7 @@ import eventTableTemplate from './event-table.tpl.html'; | @@ -22,7 +22,7 @@ import eventTableTemplate from './event-table.tpl.html'; | ||
22 | /* eslint-enable import/no-unresolved, import/default */ | 22 | /* eslint-enable import/no-unresolved, import/default */ |
23 | 23 | ||
24 | /*@ngInject*/ | 24 | /*@ngInject*/ |
25 | -export default function EventTableDirective($compile, $templateCache, $rootScope, types, | 25 | +export default function EventTableDirective($compile, $templateCache, $rootScope, $translate, types, |
26 | eventService, edgeService, attributeService) { | 26 | eventService, edgeService, attributeService) { |
27 | 27 | ||
28 | var linker = function (scope, element, attrs) { | 28 | var linker = function (scope, element, attrs) { |
@@ -118,7 +118,11 @@ export default function EventTableDirective($compile, $templateCache, $rootScope | @@ -118,7 +118,11 @@ export default function EventTableDirective($compile, $templateCache, $rootScope | ||
118 | scope.events.pending = true; | 118 | scope.events.pending = true; |
119 | promise.then( | 119 | promise.then( |
120 | function success(events) { | 120 | function success(events) { |
121 | - scope.events.data = scope.events.data.concat(events.data); | 121 | + if (scope.eventType === types.eventType.edgeEvent.value) { |
122 | + scope.events.data = scope.events.data.concat(prepareEdgeEventData(events.data)); | ||
123 | + } else { | ||
124 | + scope.events.data = scope.events.data.concat(events.data); | ||
125 | + } | ||
122 | scope.events.nextPageLink = events.nextPageLink; | 126 | scope.events.nextPageLink = events.nextPageLink; |
123 | scope.events.hasNext = events.hasNext; | 127 | scope.events.hasNext = events.hasNext; |
124 | if (scope.events.hasNext) { | 128 | if (scope.events.hasNext) { |
@@ -266,6 +270,16 @@ export default function EventTableDirective($compile, $templateCache, $rootScope | @@ -266,6 +270,16 @@ export default function EventTableDirective($compile, $templateCache, $rootScope | ||
266 | 270 | ||
267 | $compile(element.contents())(scope); | 271 | $compile(element.contents())(scope); |
268 | } | 272 | } |
273 | + | ||
274 | + function prepareEdgeEventData(data) { | ||
275 | + data.forEach( | ||
276 | + edgeEvent => { | ||
277 | + edgeEvent.edgeEventActionText = $translate.instant(types.edgeEventActionType[edgeEvent.action].name); | ||
278 | + edgeEvent.edgeEventTypeText = $translate.instant(types.edgeEventTypeTranslations[edgeEvent.edgeId.entityType].name); | ||
279 | + } | ||
280 | + ); | ||
281 | + return data; | ||
282 | + } | ||
269 | 283 | ||
270 | return { | 284 | return { |
271 | restrict: "E", | 285 | restrict: "E", |
@@ -431,7 +431,7 @@ | @@ -431,7 +431,7 @@ | ||
431 | "customer-required": "Kunde ist erforderlich", | 431 | "customer-required": "Kunde ist erforderlich", |
432 | "select-default-customer": "Wählen Sie den Standardkunden aus.", | 432 | "select-default-customer": "Wählen Sie den Standardkunden aus.", |
433 | "default-customer": "Standardkunde", | 433 | "default-customer": "Standardkunde", |
434 | - "edges": "Kunden Rand", | 434 | + "edge-instances": "Kunden Rand", |
435 | "default-customer-required": "Ein Standardkunde ist erforderlich, um das Dashboard auf Mandantenebene zu testen." | 435 | "default-customer-required": "Ein Standardkunde ist erforderlich, um das Dashboard auf Mandantenebene zu testen." |
436 | }, | 436 | }, |
437 | "datetime": { | 437 | "datetime": { |
@@ -730,7 +730,7 @@ | @@ -730,7 +730,7 @@ | ||
730 | }, | 730 | }, |
731 | "edge": { | 731 | "edge": { |
732 | "edge": "Rand", | 732 | "edge": "Rand", |
733 | - "edges": "Rand", | 733 | + "edge-instances": "Rand", |
734 | "management": "Rand verwalten", | 734 | "management": "Rand verwalten", |
735 | "no-edges-matching": "Keine passenden Rand '{{entity}}' gefunden.", | 735 | "no-edges-matching": "Keine passenden Rand '{{entity}}' gefunden.", |
736 | "add": "Rand hinzufügen", | 736 | "add": "Rand hinzufügen", |
@@ -1355,8 +1355,6 @@ | @@ -1355,8 +1355,6 @@ | ||
1355 | "rulechain": { | 1355 | "rulechain": { |
1356 | "rulechain": "Regelkette", | 1356 | "rulechain": "Regelkette", |
1357 | "rulechains": "Regelketten", | 1357 | "rulechains": "Regelketten", |
1358 | - "core-rulechains": "Kernregelketten", | ||
1359 | - "edge-rulechains": "Randregelketten", | ||
1360 | "root": "Wurzel", | 1358 | "root": "Wurzel", |
1361 | "delete": "Regelkette löschen", | 1359 | "delete": "Regelkette löschen", |
1362 | "name": "Name", | 1360 | "name": "Name", |
@@ -1393,7 +1391,6 @@ | @@ -1393,7 +1391,6 @@ | ||
1393 | "assign-rulechains": "Regelketten zuweisen", | 1391 | "assign-rulechains": "Regelketten zuweisen", |
1394 | "assign-new-rulechain": "Neues Regelkette zuweisen", | 1392 | "assign-new-rulechain": "Neues Regelkette zuweisen", |
1395 | "delete-rulechains": "Regelketten löschen", | 1393 | "delete-rulechains": "Regelketten löschen", |
1396 | - "default": "Standard", | ||
1397 | "unassign-rulechain": "Nicht zugeordnete Regelkette", | 1394 | "unassign-rulechain": "Nicht zugeordnete Regelkette", |
1398 | "unassign-rulechains": "Nicht zugeordnete Regelketten", | 1395 | "unassign-rulechains": "Nicht zugeordnete Regelketten", |
1399 | "unassign-rulechain-title": "Möchten Sie die Zuordnung die Regelkette '{{ruleChainTitle}}' wirklich aufheben?", | 1396 | "unassign-rulechain-title": "Möchten Sie die Zuordnung die Regelkette '{{ruleChainTitle}}' wirklich aufheben?", |
@@ -1403,16 +1400,17 @@ | @@ -1403,16 +1400,17 @@ | ||
1403 | "unassign-rulechains-from-edge-text": "Nach der Bestätigung wird die Zuordnung aller ausgewählten Regelketten aufgehoben und sie sind für den Rand nicht mehr zugänglich.", | 1400 | "unassign-rulechains-from-edge-text": "Nach der Bestätigung wird die Zuordnung aller ausgewählten Regelketten aufgehoben und sie sind für den Rand nicht mehr zugänglich.", |
1404 | "assign-rulechain-to-edge": "Regelkette(n) dem Rand zuordnen", | 1401 | "assign-rulechain-to-edge": "Regelkette(n) dem Rand zuordnen", |
1405 | "assign-rulechain-to-edge-text": "Bitte wählen Sie die Regelketten aus, die Sie dem Rand zuordnen möchten", | 1402 | "assign-rulechain-to-edge-text": "Bitte wählen Sie die Regelketten aus, die Sie dem Rand zuordnen möchten", |
1406 | - "set-default-root-edge": "Machen Sie Randregelkette zur Wurzel Standard", | ||
1407 | - "set-default-root-edge-rulechain-title": "Sind Sie sicher, dass Sie die Randregelkette '{{ruleChainName}}' zur Wurzel machen Standard?", | ||
1408 | - "set-default-root-edge-rulechain-text": "Nach der Bestätigung wird die Randregelkette zur Wurzel Standard und behandelt alle eingehenden Transportnachrichten.", | 1403 | + "set-edge-template-root-rulechain": "Regelkette als Rand der Kantenvorlage erstellen", |
1404 | + "set-edge-template-root-rulechain-title": "Möchten Sie die Kantenvorlage der Regelkette '{{ruleChainName}}' wirklich als Root festlegen?", | ||
1405 | + "set-edge-template-root-rulechain-text": "Nach der Bestätigung wird die Regelkette zum Stamm der Kantenvorlage und zur Stammregelkette für neu erstellte Kanten.", | ||
1409 | "invalid-rulechain-type-error": "Regelkette konnte nicht importiert werden: Ungültige Regelkettentyp. Erwarteter Typ ist {{expectedRuleChainType}}.", | 1406 | "invalid-rulechain-type-error": "Regelkette konnte nicht importiert werden: Ungültige Regelkettentyp. Erwarteter Typ ist {{expectedRuleChainType}}.", |
1410 | - "set-default-edge": "Machen Sie Regelkette Standard", | ||
1411 | - "set-default-edge-title": "Sind Sie sicher, dass Sie die Randregelkette '{{ruleChainName}}' machen Standard?", | ||
1412 | - "set-default-edge-text": "Nach der Bestätigung wird die Randregelkette für neu erstellte Rand vergeben.", | ||
1413 | - "remove-default-edge": "Randregelkette Standard entfernen", | ||
1414 | - "remove-default-edge-title": "Sind Sie sicher, dass Sie die Randregelkette '{{ruleChainName}}' aus der Standardliste entfernen?", | ||
1415 | - "remove-default-edge-text": "Nach der Bestätigung wird die Randregelkette nicht für neu erstellte Rand vergeben." | 1407 | + "set-auto-assign-to-edge": "Weisen Sie den Kanten bei der Erstellung eine Regelkette zu", |
1408 | + "set-auto-assign-to-edge-title": "Sind Sie sicher, dass Sie die Kantenregelkette '{{ruleChainName}}' bei der Erstellung den Kanten zuweisen möchten? ", | ||
1409 | + "set-auto-assign-to-edge-text": "Nach der Bestätigung wird die Kantenregelkette bei der Erstellung automatisch den Kanten zugewiesen.", | ||
1410 | + "unset-auto-assign-to-edge": "Weisen Sie Kanten bei der Erstellung keine Regelkette zu", | ||
1411 | + "unset-auto-assign-to-edge-title": "Sind Sie sicher, dass Sie die Kantenregelkette '{{ruleChainName}}' bei der Erstellung nicht den Kanten zuweisen möchten?", | ||
1412 | + "unset-auto-assign-to-edge-text": "Nach der Bestätigung wird die Kantenregelkette bei der Erstellung nicht mehr automatisch den Kanten zugewiesen.", | ||
1413 | + "edge-template-root": "Vorlagenstamm" | ||
1416 | }, | 1414 | }, |
1417 | "rulenode": { | 1415 | "rulenode": { |
1418 | "details": "Details", | 1416 | "details": "Details", |
@@ -457,7 +457,7 @@ | @@ -457,7 +457,7 @@ | ||
457 | "select-default-customer": "Select default customer", | 457 | "select-default-customer": "Select default customer", |
458 | "default-customer": "Default customer", | 458 | "default-customer": "Default customer", |
459 | "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level", | 459 | "default-customer-required": "Default customer is required in order to debug dashboard on Tenant level", |
460 | - "edges": "Customer Edges" | 460 | + "edges": "Customer edge instances" |
461 | }, | 461 | }, |
462 | "datetime": { | 462 | "datetime": { |
463 | "date-from": "Date from", | 463 | "date-from": "Date from", |
@@ -764,7 +764,7 @@ | @@ -764,7 +764,7 @@ | ||
764 | }, | 764 | }, |
765 | "edge": { | 765 | "edge": { |
766 | "edge": "Edge", | 766 | "edge": "Edge", |
767 | - "edges": "Edges", | 767 | + "edge-instances": "Edge instances", |
768 | "edge-file": "Edge file", | 768 | "edge-file": "Edge file", |
769 | "management": "Edge management", | 769 | "management": "Edge management", |
770 | "no-edges-matching": "No edges matching '{{entity}}' were found.", | 770 | "no-edges-matching": "No edges matching '{{entity}}' were found.", |
@@ -828,8 +828,8 @@ | @@ -828,8 +828,8 @@ | ||
828 | "unassign-from-edge": "Unassign from edge", | 828 | "unassign-from-edge": "Unassign from edge", |
829 | "dashboards": "Edge Dashboards", | 829 | "dashboards": "Edge Dashboards", |
830 | "manage-edge-rulechains": "Manage edge rule chains", | 830 | "manage-edge-rulechains": "Manage edge rule chains", |
831 | - "rulechains": "Edge Rule Chains", | ||
832 | - "rulechain": "Edge Rule Chain", | 831 | + "rulechain-templates": "Rule chain templates", |
832 | + "rulechain-template": "Rule chain template", | ||
833 | "edge-key": "Edge key", | 833 | "edge-key": "Edge key", |
834 | "copy-edge-key": "Copy edge key", | 834 | "copy-edge-key": "Copy edge key", |
835 | "edge-key-copied-message": "Edge key has been copied to clipboard", | 835 | "edge-key-copied-message": "Edge key has been copied to clipboard", |
@@ -852,7 +852,11 @@ | @@ -852,7 +852,11 @@ | ||
852 | "enter-edge-type": "Enter edge type", | 852 | "enter-edge-type": "Enter edge type", |
853 | "no-edge-types-matching": "No edge types matching '{{entitySubtype}}' were found.", | 853 | "no-edge-types-matching": "No edge types matching '{{entitySubtype}}' were found.", |
854 | "edge-type-list-empty": "No edge types selected.", | 854 | "edge-type-list-empty": "No edge types selected.", |
855 | - "edge-types": "Edge types" | 855 | + "edge-types": "Edge types", |
856 | + "license-key-hint": "To obtain your license please navigate to the <a href='https://thingsboard.io/pricing/?active=thingsboard-edge' target='_blank'>pricing page</a> and select the best license option for your case.", | ||
857 | + "cloud-endpoint-hint": "Edge requires HTTP(s) access to Cloud (ThingsBoard CE/PE) to verify the license key. Please specify Cloud URL that Edge is able to connect to.", | ||
858 | + "missing-related-rule-chains-title": "Edge has missing related rule chain(s)", | ||
859 | + "missing-related-rule-chains-text": "Assigned to edge rule chain(s) use rule nodes that forward message(s) to rule chain(s) that are not assigned to this edge. <br><br> List of missing rule chain(s): <br> {{missingRuleChains}}" | ||
856 | }, | 860 | }, |
857 | "error": { | 861 | "error": { |
858 | "unable-to-connect": "Unable to connect to the server! Please check your internet connection.", | 862 | "unable-to-connect": "Unable to connect to the server! Please check your internet connection.", |
@@ -1549,9 +1553,6 @@ | @@ -1549,9 +1553,6 @@ | ||
1549 | "rulechain": { | 1553 | "rulechain": { |
1550 | "rulechain": "Rule chain", | 1554 | "rulechain": "Rule chain", |
1551 | "rulechains": "Rule chains", | 1555 | "rulechains": "Rule chains", |
1552 | - "core-rulechains": "Core Rule chains", | ||
1553 | - "edge-rulechains": "Edge Rule chains", | ||
1554 | - "default-root": "Default root", | ||
1555 | "root": "Root", | 1556 | "root": "Root", |
1556 | "delete": "Delete rule chain", | 1557 | "delete": "Delete rule chain", |
1557 | "name": "Name", | 1558 | "name": "Name", |
@@ -1588,7 +1589,7 @@ | @@ -1588,7 +1589,7 @@ | ||
1588 | "assign-rulechains": "Assign rulechains", | 1589 | "assign-rulechains": "Assign rulechains", |
1589 | "assign-new-rulechain": "Assign new rulechain", | 1590 | "assign-new-rulechain": "Assign new rulechain", |
1590 | "delete-rulechains": "Delete rulechains", | 1591 | "delete-rulechains": "Delete rulechains", |
1591 | - "default": "Default", | 1592 | + "set-auto-assign-to-edge-card": "Assign to edge(s) on creation", |
1592 | "unassign-rulechain": "Unassign rulechain", | 1593 | "unassign-rulechain": "Unassign rulechain", |
1593 | "unassign-rulechains": "Unassign rulechains", | 1594 | "unassign-rulechains": "Unassign rulechains", |
1594 | "unassign-rulechain-title": "Are you sure you want to unassign the rulechain '{{ruleChainTitle}}'?", | 1595 | "unassign-rulechain-title": "Are you sure you want to unassign the rulechain '{{ruleChainTitle}}'?", |
@@ -1601,13 +1602,17 @@ | @@ -1601,13 +1602,17 @@ | ||
1601 | "set-default-root-edge": "Make rule chain default root", | 1602 | "set-default-root-edge": "Make rule chain default root", |
1602 | "set-default-root-edge-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' default edge root?", | 1603 | "set-default-root-edge-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' default edge root?", |
1603 | "set-default-root-edge-rulechain-text": "After the confirmation the rule chain will become default edge root and will handle all incoming transport messages.", | 1604 | "set-default-root-edge-rulechain-text": "After the confirmation the rule chain will become default edge root and will handle all incoming transport messages.", |
1605 | + "set-edge-template-root-rulechain": "Make rule chain as edge template root", | ||
1606 | + "set-edge-template-root-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' edge template root?", | ||
1607 | + "set-edge-template-root-rulechain-text": "After the confirmation the rule chain will become edge template root and will be root rule chain for a newly created edges.", | ||
1604 | "invalid-rulechain-type-error": "Unable to import rule chain: Invalid rule chain type. Expected type is {{expectedRuleChainType}}.", | 1608 | "invalid-rulechain-type-error": "Unable to import rule chain: Invalid rule chain type. Expected type is {{expectedRuleChainType}}.", |
1605 | - "set-default-edge": "Make rule chain default", | ||
1606 | - "set-default-edge-title": "Are you sure you want to make the edge rule chain '{{ruleChainName}}' default?", | ||
1607 | - "set-default-edge-text": "After the confirmation the edge rule chain will be added to default list and assigned to newly created edge(s).", | ||
1608 | - "remove-default-edge": "Remove rule chain from defaults", | ||
1609 | - "remove-default-edge-title": "Are you sure you want to remove the edge rule chain '{{ruleChainName}}' from default list?", | ||
1610 | - "remove-default-edge-text": "After the confirmation the edge rule chain will not be assigned for a newly created edges." | 1609 | + "set-auto-assign-to-edge": "Assign rule chain to edge(s) on creation", |
1610 | + "set-auto-assign-to-edge-title": "Are you sure you want to assign the edge rule chain '{{ruleChainName}}' to edge(s) on creation?", | ||
1611 | + "set-auto-assign-to-edge-text": "After the confirmation the edge rule chain will be automatically assigned to edge(s) on creation.", | ||
1612 | + "unset-auto-assign-to-edge": "Do not assign rule chain to edge(s) on creation", | ||
1613 | + "unset-auto-assign-to-edge-title": "Are you sure you do not want to assign the edge rule chain '{{ruleChainName}}' to edge(s) on creation?", | ||
1614 | + "unset-auto-assign-to-edge-text": "After the confirmation the edge rule chain will no longer be automatically assigned to edge(s) on creation.", | ||
1615 | + "edge-template-root": "Template Root" | ||
1611 | }, | 1616 | }, |
1612 | "rulenode": { | 1617 | "rulenode": { |
1613 | "details": "Details", | 1618 | "details": "Details", |
@@ -743,7 +743,7 @@ | @@ -743,7 +743,7 @@ | ||
743 | }, | 743 | }, |
744 | "edge": { | 744 | "edge": { |
745 | "edge": "Borde", | 745 | "edge": "Borde", |
746 | - "edges": "Bordes", | 746 | + "edge-instances": "Bordes", |
747 | "management": "Gestión de bordes", | 747 | "management": "Gestión de bordes", |
748 | "no-edges-matching": "No se encontraron bordes que coincidan con '{{entity}}'", | 748 | "no-edges-matching": "No se encontraron bordes que coincidan con '{{entity}}'", |
749 | "add": "Agregar borde", | 749 | "add": "Agregar borde", |
@@ -1423,8 +1423,6 @@ | @@ -1423,8 +1423,6 @@ | ||
1423 | "rulechain": { | 1423 | "rulechain": { |
1424 | "rulechain": "Cadena de reglas", | 1424 | "rulechain": "Cadena de reglas", |
1425 | "rulechains": "Cadenas de reglas", | 1425 | "rulechains": "Cadenas de reglas", |
1426 | - "core-rulechains": "Cadenas de reglas centrales", | ||
1427 | - "edge-rulechains": "Cadenas de reglas de borde", | ||
1428 | "root": "Raíz", | 1426 | "root": "Raíz", |
1429 | "delete": "Eliminar cadena de reglas", | 1427 | "delete": "Eliminar cadena de reglas", |
1430 | "name": "Nombre", | 1428 | "name": "Nombre", |
@@ -1461,7 +1459,6 @@ | @@ -1461,7 +1459,6 @@ | ||
1461 | "assign-rulechains": "Asignar cadenas de reglas", | 1459 | "assign-rulechains": "Asignar cadenas de reglas", |
1462 | "assign-new-rulechain": "Asignar nueva cadena de reglas", | 1460 | "assign-new-rulechain": "Asignar nueva cadena de reglas", |
1463 | "delete-rulechains": "Eliminar cadenas de reglas", | 1461 | "delete-rulechains": "Eliminar cadenas de reglas", |
1464 | - "default": "Predeterminado", | ||
1465 | "unassign-rulechain": "Anular asignación de cadena de reglas", | 1462 | "unassign-rulechain": "Anular asignación de cadena de reglas", |
1466 | "unassign-rulechains": "Anular asignación de cadenas de reglas", | 1463 | "unassign-rulechains": "Anular asignación de cadenas de reglas", |
1467 | "unassign-rulechain-title": "¿Está seguro de que desea desasignar la cadena de reglas '{{ruleChainTitle}}'?", | 1464 | "unassign-rulechain-title": "¿Está seguro de que desea desasignar la cadena de reglas '{{ruleChainTitle}}'?", |
@@ -1471,16 +1468,17 @@ | @@ -1471,16 +1468,17 @@ | ||
1471 | "unassign-rulechains-from-edge-text": "Después de la confirmación, todas las cadenas de reglas seleccionadas quedarán sin asignar y el borde no podrá acceder a ellas", | 1468 | "unassign-rulechains-from-edge-text": "Después de la confirmación, todas las cadenas de reglas seleccionadas quedarán sin asignar y el borde no podrá acceder a ellas", |
1472 | "assign-rulechain-to-edge": "Asignar cadena (s) de reglas a borde", | 1469 | "assign-rulechain-to-edge": "Asignar cadena (s) de reglas a borde", |
1473 | "assign-rulechain-to-edge-text": "Seleccione las cadenas de reglas para asignar al borde", | 1470 | "assign-rulechain-to-edge-text": "Seleccione las cadenas de reglas para asignar al borde", |
1474 | - "set-default-root-edge": "Hacer que la cadena de reglas sea la raíz predeterminada", | ||
1475 | - "set-default-root-edge-rulechain-title": "¿Está seguro de que desea hacer que la cadena de reglas '{{ruleChainName}}' sea la raíz de borde predeterminada?", | ||
1476 | - "set-default-root-edge-rulechain-text": "Después de la confirmación, la cadena de reglas se convertirá en raíz raíz predeterminada y manejará todos los mensajes de transporte entrantes", | 1471 | + "set-edge-template-root-rulechain": "Hacer una cadena de reglas como raíz de la plantilla de borde", |
1472 | + "set-edge-template-root-rulechain-title": "¿Está seguro de que desea que la cadena de reglas '{{ruleChainName}}' sea la raíz de la plantilla de borde?", | ||
1473 | + "set-edge-template-root-rulechain-text": "Después de la confirmación, la cadena de reglas se convertirá en la raíz de la plantilla de borde y será la cadena de reglas raíz para los bordes recién creados.", | ||
1477 | "invalid-rulechain-type-error": "No se puede importar la cadena de reglas: Tipo de cadena de reglas no válido. El tipo esperado es {{expectedRuleChainType}}", | 1474 | "invalid-rulechain-type-error": "No se puede importar la cadena de reglas: Tipo de cadena de reglas no válido. El tipo esperado es {{expectedRuleChainType}}", |
1478 | - "set-default-edge": "Hacer que la cadena de reglas de borde sea predeterminada", | ||
1479 | - "set-default-edge-title": "¿Está seguro de que desea que la cadena de reglas de borde '{{ruleChainName}}' sea predeterminada?", | ||
1480 | - "set-default-edge-text": "Después de la confirmación, la cadena de reglas de borde se agregará a la lista predeterminada y se asignará a los bordes recién creados", | ||
1481 | - "remove-default-edge": "Eliminar la cadena de regla de borde de los valores predeterminados", | ||
1482 | - "remove-default-edge-title": "¿Está seguro de que desea eliminar la cadena de reglas de borde '{{ruleChainName}}' de la lista predeterminada?", | ||
1483 | - "remove-default-edge-text": "Después de la confirmación, la cadena de reglas de borde no se asignará a los bordes recién creados" | 1475 | + "set-auto-assign-to-edge": "Asignar cadena de reglas a los bordes en la creación", |
1476 | + "set-auto-assign-to-edge-title": "¿Está seguro de que desea asignar la cadena de reglas de borde '{{ruleChainName}}' a los bordes en la creación?", | ||
1477 | + "set-auto-assign-to-edge-text": "Después de la confirmación, la cadena de reglas de borde se asignará automáticamente a los bordes en la creación.", | ||
1478 | + "unset-auto-assign-to-edge": "No asigne una cadena de reglas a los bordes en la creación", | ||
1479 | + "unset-auto-assign-to-edge-title": "¿Está seguro de que no desea asignar la cadena de reglas de borde '{{ruleChainName}}' a los bordes en la creación?", | ||
1480 | + "unset-auto-assign-to-edge-text": "Después de la confirmación, la cadena de reglas de borde ya no se asignará automáticamente a los bordes en la creación.", | ||
1481 | + "edge-template-root": "Raíz de plantilla" | ||
1484 | }, | 1482 | }, |
1485 | "rulenode": { | 1483 | "rulenode": { |
1486 | "details": "Detalles", | 1484 | "details": "Detalles", |
@@ -748,7 +748,7 @@ | @@ -748,7 +748,7 @@ | ||
748 | }, | 748 | }, |
749 | "edge": { | 749 | "edge": { |
750 | "edge": "Bordure", | 750 | "edge": "Bordure", |
751 | - "edges": "Bordures", | 751 | + "edge-instances": "Bordures", |
752 | "management": "Gestion des bordures", | 752 | "management": "Gestion des bordures", |
753 | "no-edges-matching": "Aucun bordure correspondant à {{entity}} n'a été trouvé.", | 753 | "no-edges-matching": "Aucun bordure correspondant à {{entity}} n'a été trouvé.", |
754 | "add": "Ajouter un bordure", | 754 | "add": "Ajouter un bordure", |
@@ -1429,8 +1429,6 @@ | @@ -1429,8 +1429,6 @@ | ||
1429 | "rulechain-required": "Chaîne de règles requise", | 1429 | "rulechain-required": "Chaîne de règles requise", |
1430 | "rulechains": "Chaînes de règles", | 1430 | "rulechains": "Chaînes de règles", |
1431 | "select-rulechain": "Sélectionner la chaîne de règles", | 1431 | "select-rulechain": "Sélectionner la chaîne de règles", |
1432 | - "core-rulechains": "Chaînes de règles fondamentales", | ||
1433 | - "edge-rulechains": "Chaînes de règles de la bordure", | ||
1434 | "set-root": "Rend la chaîne de règles racine (root) ", | 1432 | "set-root": "Rend la chaîne de règles racine (root) ", |
1435 | "set-root-rulechain-text": "Après la confirmation, la chaîne de règles deviendra racine (root) et gérera tous les messages de transport entrants.", | 1433 | "set-root-rulechain-text": "Après la confirmation, la chaîne de règles deviendra racine (root) et gérera tous les messages de transport entrants.", |
1436 | "set-root-rulechain-title": "Voulez-vous vraiment que la chaîne de règles '{{ruleChainName}} soit racine (root) ?", | 1434 | "set-root-rulechain-title": "Voulez-vous vraiment que la chaîne de règles '{{ruleChainName}} soit racine (root) ?", |
@@ -1438,7 +1436,6 @@ | @@ -1438,7 +1436,6 @@ | ||
1438 | "assign-rulechains": "Attribuer aux chaînes de règles", | 1436 | "assign-rulechains": "Attribuer aux chaînes de règles", |
1439 | "assign-new-rulechain": "Attribuer une nouvele chaînes de règles", | 1437 | "assign-new-rulechain": "Attribuer une nouvele chaînes de règles", |
1440 | "delete-rulechains": "Supprimer une chaînes de règles", | 1438 | "delete-rulechains": "Supprimer une chaînes de règles", |
1441 | - "default": "Défaut", | ||
1442 | "unassign-rulechain": "Retirer chaîne de règles", | 1439 | "unassign-rulechain": "Retirer chaîne de règles", |
1443 | "unassign-rulechains": "Retirer chaînes de règles", | 1440 | "unassign-rulechains": "Retirer chaînes de règles", |
1444 | "unassign-rulechain-title": "AÊtes-vous sûr de vouloir retirer l'attribution de chaînes de règles '{{ruleChainTitle}}'?", | 1441 | "unassign-rulechain-title": "AÊtes-vous sûr de vouloir retirer l'attribution de chaînes de règles '{{ruleChainTitle}}'?", |
@@ -1448,16 +1445,17 @@ | @@ -1448,16 +1445,17 @@ | ||
1448 | "unassign-rulechains-from-edge-text": "Après la confirmation, tous les chaînes de règles sélectionnés ne seront pas attribués et ne seront pas accessibles a la bordure.", | 1445 | "unassign-rulechains-from-edge-text": "Après la confirmation, tous les chaînes de règles sélectionnés ne seront pas attribués et ne seront pas accessibles a la bordure.", |
1449 | "assign-rulechain-to-edge": "Attribuer les chaînes de règles a la bordure", | 1446 | "assign-rulechain-to-edge": "Attribuer les chaînes de règles a la bordure", |
1450 | "assign-rulechain-to-edge-text": "Veuillez sélectionner la bordure pour attribuer le ou les chaînes de règles", | 1447 | "assign-rulechain-to-edge-text": "Veuillez sélectionner la bordure pour attribuer le ou les chaînes de règles", |
1451 | - "set-default-root-edge": "Définir la racine par défaut de la chaîne de règles", | ||
1452 | - "set-default-root-edge-rulechain-title": "AVoulez-vous vraiment créer de chaînes de règles par défaut '{{ruleChainName}}'?", | ||
1453 | - "set-default-root-edge-rulechain-text": "Après la confirmation, la chaîne de règles deviendra la racine de la bordure par défaut et gérera tous les messages de transport entrants.", | 1448 | + "set-edge-template-root-rulechain": "Faire de la chaîne de règles la racine du modèle d'arête", |
1449 | + "set-edge-template-root-rulechain-title": "Voulez-vous vraiment définir la racine du modèle d'arête de la chaîne de règles '{{ruleChainName}}'?", | ||
1450 | + "set-edge-template-root-rulechain-text": "Après la confirmation, la chaîne de règles deviendra la racine du modèle d'arête et sera la chaîne de règles racine pour les arêtes nouvellement créées.", | ||
1454 | "invalid-rulechain-type-error": "Impossible d'importer la chaîne de règles: type de chaîne de règles non valide. Le type attendu est {{attenduRuleChainType}}.", | 1451 | "invalid-rulechain-type-error": "Impossible d'importer la chaîne de règles: type de chaîne de règles non valide. Le type attendu est {{attenduRuleChainType}}.", |
1455 | - "set-default-edge": "Définir la chaîne de règles de la bordure par défaut", | ||
1456 | - "set-default-edge-title": "Voulez-vous vraiment définir la chaîne de règles de la bordure '{{ruleChainName}}' par défaut?", | ||
1457 | - "set-default-edge-text": "Après la confirmation, la chaîne de règles d'arête sera ajoutée à la liste par défaut et affectée aux arêtes nouvellement créées.", | ||
1458 | - "remove-default-edge": "Supprimer la chaîne de règles de la bordure des valeurs par défaut", | ||
1459 | - "remove-default-edge-title": "Voulez-vous vraiment supprimer la chaîne de règles de la bordure '{{ruleChainName}}' de la liste par défaut", | ||
1460 | - "remove-default-edge-text": "Après la confirmation, la chaîne de règles d'arête ne sera pas affectée aux arêtes nouvellement créées." | 1452 | + "set-auto-assign-to-edge": "Attribuer une chaîne de règles aux arêtes lors de la création", |
1453 | + "set-auto-assign-to-edge-title": "Voulez-vous vraiment attribuer la chaîne de règles d'arête '{{ruleChainName}}' à l'arête (s) lors de la création?", | ||
1454 | + "set-auto-assign-to-edge-text": "Après la confirmation, la chaîne de règles d'arêtes sera automatiquement affectée aux arêtes lors de la création.", | ||
1455 | + "unset-auto-assign-to-edge": "N'attribuez pas de chaîne de règles aux arêtes lors de la création", | ||
1456 | + "unset-auto-assign-to-edge-title": "Êtes-vous sûr de ne pas vouloir attribuer la chaîne de règles d'arête '{{ruleChainName}}' à l'arête (s) lors de la création?", | ||
1457 | + "unset-auto-assign-to-edge-text": "Après la confirmation, la chaîne de règles d'arêtes ne sera plus automatiquement affectée aux arêtes lors de la création.", | ||
1458 | + "edge-template-root": "Racine du modèle" | ||
1461 | }, | 1459 | }, |
1462 | "rulenode": { | 1460 | "rulenode": { |
1463 | "add": "Ajouter un noeud de règle", | 1461 | "add": "Ajouter un noeud de règle", |
@@ -18,6 +18,6 @@ | @@ -18,6 +18,6 @@ | ||
18 | <div ng-if="(vm.parentCtl.ruleChainsScope === 'tenant' && item && item.root) || | 18 | <div ng-if="(vm.parentCtl.ruleChainsScope === 'tenant' && item && item.root) || |
19 | (vm.parentCtl.ruleChainsScope === 'edge' && vm.parentCtl.isRootRuleChain(item))" translate>rulechain.root</div> | 19 | (vm.parentCtl.ruleChainsScope === 'edge' && vm.parentCtl.isRootRuleChain(item))" translate>rulechain.root</div> |
20 | 20 | ||
21 | -<div ng-if="vm.parentCtl.ruleChainsScope === 'edges' && vm.parentCtl.isRootRuleChain(item)" translate>rulechain.default-root</div> | 21 | +<div ng-if="vm.parentCtl.ruleChainsScope === 'edges' && vm.parentCtl.isRootRuleChain(item)" translate>rulechain.edge-template-root</div> |
22 | 22 | ||
23 | -<div ng-if="(vm.parentCtl.ruleChainsScope === 'edges' && vm.parentCtl.isDefaultEdgeRuleChain(item))" translate>rulechain.default</div> | 23 | +<div ng-if="(vm.parentCtl.ruleChainsScope === 'edges' && vm.parentCtl.isDefaultEdgeRuleChain(item))" translate>rulechain.set-auto-assign-to-edge-card</div> |
@@ -15,32 +15,31 @@ | @@ -15,32 +15,31 @@ | ||
15 | limitations under the License. | 15 | limitations under the License. |
16 | 16 | ||
17 | --> | 17 | --> |
18 | -<md-button ng-click="onExportRuleChain({event: $event})" | ||
19 | - ng-show="!isEdit" | ||
20 | - class="md-raised md-primary">{{ 'rulechain.export' | translate }}</md-button> | ||
21 | - | ||
22 | -<md-button ng-click="onSetRootRuleChain({event: $event})" | ||
23 | - ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'tenant'" | ||
24 | - class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button> | ||
25 | - | ||
26 | -<md-button ng-click="onSetRootRuleChain({event: $event})" | ||
27 | - ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'edges'" | ||
28 | - class="md-raised md-primary">{{ 'rulechain.set-default-root-edge' | translate }}</md-button> | ||
29 | -<md-button ng-click="onSetDefaultEdgeRuleChain({event: $event})" | ||
30 | - ng-show="!isEdit && !ruleChain.root && !ruleChain.isDefault && ruleChainsScope == 'edges'" | ||
31 | - class="md-raised md-primary">{{ 'rulechain.set-default-edge' | translate }}</md-button> | ||
32 | -<md-button ng-click="onRemoveDefaultEdgeRuleChain({event: $event})" | ||
33 | - ng-show="!isEdit && !ruleChain.root && ruleChain.isDefault && ruleChainsScope == 'edges'" | ||
34 | - class="md-raised md-primary">{{ 'rulechain.remove-default-edge' | translate }}</md-button> | ||
35 | - | ||
36 | -<md-button ng-click="onSetRootRuleChain({event: $event})" | ||
37 | - ng-show="!isEdit && ruleChainsScope == 'edge' && edge.rootRuleChainId.id !== ruleChain.id.id" | ||
38 | - class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button> | ||
39 | - | ||
40 | -<md-button ng-click="onDeleteRuleChain({event: $event})" | ||
41 | - ng-show="!isEdit && !ruleChain.root && ruleChainsScope != 'edge'" | ||
42 | - class="md-raised md-primary">{{ 'rulechain.delete' | translate }}</md-button> | 18 | +<div layout="row"> |
19 | + <md-button ng-click="onExportRuleChain({event: $event})" | ||
20 | + ng-show="!isEdit" | ||
21 | + class="md-raised md-primary">{{ 'rulechain.export' | translate }}</md-button> | ||
22 | + <md-button ng-click="onDeleteRuleChain({event: $event})" | ||
23 | + ng-show="!isEdit && !ruleChain.root && ruleChainsScope != 'edge'" | ||
24 | + class="md-raised md-primary">{{ 'rulechain.delete' | translate }}</md-button> | ||
25 | +</div> | ||
26 | +<div layout="row"><md-button ng-click="onSetRootRuleChain({event: $event})" | ||
27 | + ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'tenant'" | ||
28 | + class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button> | ||
29 | + <md-button ng-click="onSetRootRuleChain({event: $event})" | ||
30 | + ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'edges'" | ||
31 | + class="md-raised md-primary">{{ 'rulechain.set-edge-template-root-rulechain' | translate }}</md-button> | ||
32 | + <md-button ng-click="onSetAutoAssignToEdgeRuleChain({event: $event})" | ||
33 | + ng-show="!isEdit && !ruleChain.root && !ruleChain.isDefault && ruleChainsScope == 'edges'" | ||
34 | + class="md-raised md-primary">{{ 'rulechain.set-auto-assign-to-edge' | translate }}</md-button> | ||
35 | + <md-button ng-click="onUnsetAutoAssignToEdgeRuleChain({event: $event})" | ||
36 | + ng-show="!isEdit && !ruleChain.root && ruleChain.isDefault && ruleChainsScope == 'edges'" | ||
37 | + class="md-raised md-primary">{{ 'rulechain.unset-auto-assign-to-edge' | translate }}</md-button> | ||
43 | 38 | ||
39 | + <md-button ng-click="onSetRootRuleChain({event: $event})" | ||
40 | + ng-show="!isEdit && ruleChainsScope == 'edge' && edge.rootRuleChainId.id !== ruleChain.id.id" | ||
41 | + class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button> | ||
42 | +</div> | ||
44 | <div layout="row"> | 43 | <div layout="row"> |
45 | <md-button ngclipboard data-clipboard-action="copy" | 44 | <md-button ngclipboard data-clipboard-action="copy" |
46 | ngclipboard-success="onRuleChainIdCopied(e)" | 45 | ngclipboard-success="onRuleChainIdCopied(e)" |
@@ -1270,9 +1270,9 @@ export function RuleChainController($state, $scope, $compile, $q, $mdUtil, $time | @@ -1270,9 +1270,9 @@ export function RuleChainController($state, $scope, $compile, $q, $mdUtil, $time | ||
1270 | vm.isImport = false; | 1270 | vm.isImport = false; |
1271 | $mdUtil.nextTick(() => { | 1271 | $mdUtil.nextTick(() => { |
1272 | if (vm.ruleChain.type === vm.types.ruleChainType.core) { | 1272 | if (vm.ruleChain.type === vm.types.ruleChainType.core) { |
1273 | - $state.go('home.ruleChains.core.ruleChain', {ruleChainId: vm.ruleChain.id.id}); | 1273 | + $state.go('home.ruleChains.ruleChain', {ruleChainId: vm.ruleChain.id.id}); |
1274 | } else { | 1274 | } else { |
1275 | - $state.go('home.ruleChains.edge.ruleChain', {ruleChainId: vm.ruleChain.id.id}); | 1275 | + $state.go('home.edges.edgeRuleChains.ruleChain', {ruleChainId: vm.ruleChain.id.id}); |
1276 | } | 1276 | } |
1277 | }); | 1277 | }); |
1278 | } else { | 1278 | } else { |
@@ -42,8 +42,8 @@ export default function RuleChainDirective($compile, $templateCache, $mdDialog, | @@ -42,8 +42,8 @@ export default function RuleChainDirective($compile, $templateCache, $mdDialog, | ||
42 | theForm: '=', | 42 | theForm: '=', |
43 | ruleChainsScope: '=', | 43 | ruleChainsScope: '=', |
44 | edge: '=', | 44 | edge: '=', |
45 | - onSetDefaultEdgeRuleChain: '&', | ||
46 | - onRemoveDefaultEdgeRuleChain: '&', | 45 | + onSetAutoAssignToEdgeRuleChain: '&', |
46 | + onUnsetAutoAssignToEdgeRuleChain: '&', | ||
47 | onSetRootRuleChain: '&', | 47 | onSetRootRuleChain: '&', |
48 | onExportRuleChain: '&', | 48 | onExportRuleChain: '&', |
49 | onDeleteRuleChain: '&' | 49 | onDeleteRuleChain: '&' |
@@ -29,15 +29,6 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | @@ -29,15 +29,6 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | ||
29 | $stateProvider | 29 | $stateProvider |
30 | .state('home.ruleChains', { | 30 | .state('home.ruleChains', { |
31 | url: '/ruleChains', | 31 | url: '/ruleChains', |
32 | - module: 'private', | ||
33 | - auth: ['SYS_ADMIN', 'TENANT_ADMIN'], | ||
34 | - redirectTo: 'home.ruleChains.core', | ||
35 | - ncyBreadcrumb: { | ||
36 | - label: '{"icon": "settings_ethernet", "label": "rulechain.rulechains"}' | ||
37 | - } | ||
38 | - }) | ||
39 | - .state('home.ruleChains.core', { | ||
40 | - url: '/ruleChains/core', | ||
41 | params: {'topIndex': 0}, | 32 | params: {'topIndex': 0}, |
42 | module: 'private', | 33 | module: 'private', |
43 | auth: ['SYS_ADMIN', 'TENANT_ADMIN'], | 34 | auth: ['SYS_ADMIN', 'TENANT_ADMIN'], |
@@ -50,13 +41,13 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | @@ -50,13 +41,13 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | ||
50 | }, | 41 | }, |
51 | data: { | 42 | data: { |
52 | searchEnabled: true, | 43 | searchEnabled: true, |
53 | - pageTitle: 'rulechain.core-rulechains', | 44 | + pageTitle: 'rulechain.rulechains', |
54 | ruleChainsType: 'tenant' | 45 | ruleChainsType: 'tenant' |
55 | }, | 46 | }, |
56 | ncyBreadcrumb: { | 47 | ncyBreadcrumb: { |
57 | - label: '{"icon": "settings_ethernet", "label": "rulechain.core-rulechains"}' | 48 | + label: '{"icon": "settings_ethernet", "label": "rulechain.rulechains"}' |
58 | } | 49 | } |
59 | - }).state('home.ruleChains.core.ruleChain', { | 50 | + }).state('home.ruleChains.ruleChain', { |
60 | url: '/:ruleChainId', | 51 | url: '/:ruleChainId', |
61 | reloadOnSearch: false, | 52 | reloadOnSearch: false, |
62 | module: 'private', | 53 | module: 'private', |
@@ -134,8 +125,8 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | @@ -134,8 +125,8 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | ||
134 | ncyBreadcrumb: { | 125 | ncyBreadcrumb: { |
135 | label: '{"icon": "settings_ethernet", "label": "{{ (\'rulechain.import\' | translate) + \': \'+ vm.ruleChain.name }}", "translate": "false"}' | 126 | label: '{"icon": "settings_ethernet", "label": "{{ (\'rulechain.import\' | translate) + \': \'+ vm.ruleChain.name }}", "translate": "false"}' |
136 | } | 127 | } |
137 | - }).state('home.ruleChains.edge', { | ||
138 | - url: '/ruleChains/edge', | 128 | + }).state('home.edges.edgeRuleChains', { |
129 | + url: '/ruleChains', | ||
139 | params: {'topIndex': 0}, | 130 | params: {'topIndex': 0}, |
140 | module: 'private', | 131 | module: 'private', |
141 | auth: ['TENANT_ADMIN'], | 132 | auth: ['TENANT_ADMIN'], |
@@ -148,13 +139,13 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | @@ -148,13 +139,13 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | ||
148 | }, | 139 | }, |
149 | data: { | 140 | data: { |
150 | searchEnabled: true, | 141 | searchEnabled: true, |
151 | - pageTitle: 'rulechain.edge-rulechains', | 142 | + pageTitle: 'edge.rulechain-templates', |
152 | ruleChainsType: 'edges' | 143 | ruleChainsType: 'edges' |
153 | }, | 144 | }, |
154 | ncyBreadcrumb: { | 145 | ncyBreadcrumb: { |
155 | - label: '{"icon": "code", "label": "rulechain.edge-rulechains"}' | 146 | + label: '{"icon": "settings_ethernet", "label": "edge.rulechain-templates"}' |
156 | } | 147 | } |
157 | - }).state('home.ruleChains.edge.ruleChain', { | 148 | + }).state('home.edges.edgeRuleChains.ruleChain', { |
158 | url: '/:ruleChainId', | 149 | url: '/:ruleChainId', |
159 | reloadOnSearch: false, | 150 | reloadOnSearch: false, |
160 | module: 'private', | 151 | module: 'private', |
@@ -186,10 +177,51 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | @@ -186,10 +177,51 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider | ||
186 | data: { | 177 | data: { |
187 | import: false, | 178 | import: false, |
188 | searchEnabled: false, | 179 | searchEnabled: false, |
189 | - pageTitle: 'edge.rulechain' | 180 | + pageTitle: 'edge.rulechain-template' |
181 | + }, | ||
182 | + ncyBreadcrumb: { | ||
183 | + label: '{"icon": "settings_ethernet", "label": "{{ vm.ruleChain.name }}", "translate": "false"}' | ||
184 | + } | ||
185 | + }).state('home.edges.edgeRuleChains.importRuleChain', { | ||
186 | + url: '/edges/ruleChains/import', | ||
187 | + reloadOnSearch: false, | ||
188 | + module: 'private', | ||
189 | + auth: ['SYS_ADMIN', 'TENANT_ADMIN'], | ||
190 | + views: { | ||
191 | + "content@home": { | ||
192 | + templateUrl: ruleChainTemplate, | ||
193 | + controller: 'RuleChainController', | ||
194 | + controllerAs: 'vm' | ||
195 | + } | ||
196 | + }, | ||
197 | + params: { | ||
198 | + ruleChainImport: {}, | ||
199 | + ruleChainType: {} | ||
200 | + }, | ||
201 | + resolve: { | ||
202 | + ruleChain: | ||
203 | + /*@ngInject*/ | ||
204 | + function($stateParams) { | ||
205 | + return $stateParams.ruleChainImport.ruleChain; | ||
206 | + }, | ||
207 | + ruleChainMetaData: | ||
208 | + /*@ngInject*/ | ||
209 | + function($stateParams) { | ||
210 | + return $stateParams.ruleChainImport.metadata; | ||
211 | + }, | ||
212 | + ruleNodeComponents: | ||
213 | + /*@ngInject*/ | ||
214 | + function($stateParams, ruleChainService) { | ||
215 | + return ruleChainService.getRuleNodeComponents($stateParams.ruleChainType); | ||
216 | + } | ||
217 | + }, | ||
218 | + data: { | ||
219 | + import: true, | ||
220 | + searchEnabled: true, | ||
221 | + pageTitle: 'edge.rulechain-template' | ||
190 | }, | 222 | }, |
191 | ncyBreadcrumb: { | 223 | ncyBreadcrumb: { |
192 | - label: '{"icon": "code", "label": "{{ vm.ruleChain.name }}", "translate": "false"}' | 224 | + label: '{"icon": "settings_ethernet", "label": "{{ (\'rulechain.import\' | translate) + \': \'+ vm.ruleChain.name }}", "translate": "false"}' |
193 | } | 225 | } |
194 | }); | 226 | }); |
195 | } | 227 | } |
@@ -97,7 +97,7 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -97,7 +97,7 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
97 | 97 | ||
98 | vm.exportRuleChain = exportRuleChain; | 98 | vm.exportRuleChain = exportRuleChain; |
99 | vm.setRootRuleChain = setRootRuleChain; | 99 | vm.setRootRuleChain = setRootRuleChain; |
100 | - vm.setDefaultEdgeRuleChain = setDefaultEdgeRuleChain; | 100 | + vm.setAutoAssignToEdgeRuleChain = setAutoAssignToEdgeRuleChain; |
101 | vm.unsetAutoAssignToEdgeRuleChain = unsetAutoAssignToEdgeRuleChain; | 101 | vm.unsetAutoAssignToEdgeRuleChain = unsetAutoAssignToEdgeRuleChain; |
102 | 102 | ||
103 | initController(); | 103 | initController(); |
@@ -185,10 +185,10 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -185,10 +185,10 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
185 | 185 | ||
186 | ruleChainActionsList.push({ | 186 | ruleChainActionsList.push({ |
187 | onAction: function ($event, item) { | 187 | onAction: function ($event, item) { |
188 | - setDefaultEdgeRuleChain($event, item); | 188 | + setAutoAssignToEdgeRuleChain($event, item); |
189 | }, | 189 | }, |
190 | - name: function() { return $translate.instant('rulechain.set-default-edge') }, | ||
191 | - details: function() { return $translate.instant('rulechain.set-default-edge') }, | 190 | + name: function() { return $translate.instant('rulechain.set-auto-assign-to-edge') }, |
191 | + details: function() { return $translate.instant('rulechain.set-auto-assign-to-edge') }, | ||
192 | icon: "bookmark_outline", | 192 | icon: "bookmark_outline", |
193 | isEnabled: isNonDefaultEdgeRuleChain | 193 | isEnabled: isNonDefaultEdgeRuleChain |
194 | }); | 194 | }); |
@@ -197,8 +197,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -197,8 +197,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
197 | onAction: function ($event, item) { | 197 | onAction: function ($event, item) { |
198 | unsetAutoAssignToEdgeRuleChain($event, item); | 198 | unsetAutoAssignToEdgeRuleChain($event, item); |
199 | }, | 199 | }, |
200 | - name: function() { return $translate.instant('rulechain.remove-default-edge') }, | ||
201 | - details: function() { return $translate.instant('rulechain.remove-default-edge') }, | 200 | + name: function() { return $translate.instant('rulechain.unset-auto-assign-to-edge') }, |
201 | + details: function() { return $translate.instant('rulechain.unset-auto-assign-to-edge') }, | ||
202 | icon: "bookmark", | 202 | icon: "bookmark", |
203 | isEnabled: isDefaultEdgeRuleChain | 203 | isEnabled: isDefaultEdgeRuleChain |
204 | }); | 204 | }); |
@@ -207,8 +207,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -207,8 +207,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
207 | onAction: function ($event, item) { | 207 | onAction: function ($event, item) { |
208 | setEdgeTemplateRootRuleChain($event, item); | 208 | setEdgeTemplateRootRuleChain($event, item); |
209 | }, | 209 | }, |
210 | - name: function() { return $translate.instant('rulechain.set-default-root-edge') }, | ||
211 | - details: function() { return $translate.instant('rulechain.set-default-root-edge') }, | 210 | + name: function() { return $translate.instant('rulechain.set-edge-template-root-rulechain') }, |
211 | + details: function() { return $translate.instant('rulechain.set-edge-template-root-rulechain') }, | ||
212 | icon: "flag", | 212 | icon: "flag", |
213 | isEnabled: isNonRootRuleChain | 213 | isEnabled: isNonRootRuleChain |
214 | }); | 214 | }); |
@@ -247,7 +247,7 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -247,7 +247,7 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
247 | onAction: function ($event) { | 247 | onAction: function ($event) { |
248 | importExport.importRuleChain($event, types.ruleChainType.edge).then( | 248 | importExport.importRuleChain($event, types.ruleChainType.edge).then( |
249 | function(ruleChainImport) { | 249 | function(ruleChainImport) { |
250 | - $state.go('home.ruleChains.importRuleChain', {ruleChainImport:ruleChainImport, ruleChainType: types.ruleChainType.edge}); | 250 | + $state.go('home.edges.edgeRuleChains.importRuleChain', {ruleChainImport:ruleChainImport, ruleChainType: types.ruleChainType.edge}); |
251 | } | 251 | } |
252 | ); | 252 | ); |
253 | }, | 253 | }, |
@@ -401,9 +401,9 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -401,9 +401,9 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
401 | if (vm.ruleChainsScope === 'edge') { | 401 | if (vm.ruleChainsScope === 'edge') { |
402 | $state.go('home.edges.ruleChains.ruleChain', Object.assign(ruleChainParams, edgeId = vm.edge.id.id)); | 402 | $state.go('home.edges.ruleChains.ruleChain', Object.assign(ruleChainParams, edgeId = vm.edge.id.id)); |
403 | } else if (vm.ruleChainsScope === 'edges') { | 403 | } else if (vm.ruleChainsScope === 'edges') { |
404 | - $state.go('home.ruleChains.edge.ruleChain', ruleChainParams); | 404 | + $state.go('home.edges.edgeRuleChains.ruleChain', ruleChainParams); |
405 | } else { | 405 | } else { |
406 | - $state.go('home.ruleChains.core.ruleChain', ruleChainParams); | 406 | + $state.go('home.ruleChains.ruleChain', ruleChainParams); |
407 | } | 407 | } |
408 | } | 408 | } |
409 | 409 | ||
@@ -471,13 +471,13 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -471,13 +471,13 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
471 | }); | 471 | }); |
472 | } | 472 | } |
473 | 473 | ||
474 | - function setDefaultEdgeRuleChain($event, ruleChain) { | 474 | + function setAutoAssignToEdgeRuleChain($event, ruleChain) { |
475 | $event.stopPropagation(); | 475 | $event.stopPropagation(); |
476 | var confirm = $mdDialog.confirm() | 476 | var confirm = $mdDialog.confirm() |
477 | .targetEvent($event) | 477 | .targetEvent($event) |
478 | - .title($translate.instant('rulechain.set-default-edge-title', {ruleChainName: ruleChain.name})) | ||
479 | - .htmlContent($translate.instant('rulechain.set-default-edge-text')) | ||
480 | - .ariaLabel($translate.instant('rulechain.set-default-edge')) | 478 | + .title($translate.instant('rulechain.set-auto-assign-to-edge-title', {ruleChainName: ruleChain.name})) |
479 | + .htmlContent($translate.instant('rulechain.set-auto-assign-to-edge-text')) | ||
480 | + .ariaLabel($translate.instant('rulechain.set-auto-assign-to-edge')) | ||
481 | .cancel($translate.instant('action.no')) | 481 | .cancel($translate.instant('action.no')) |
482 | .ok($translate.instant('action.yes')); | 482 | .ok($translate.instant('action.yes')); |
483 | $mdDialog.show(confirm).then(function () { | 483 | $mdDialog.show(confirm).then(function () { |
@@ -493,9 +493,9 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -493,9 +493,9 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
493 | $event.stopPropagation(); | 493 | $event.stopPropagation(); |
494 | var confirm = $mdDialog.confirm() | 494 | var confirm = $mdDialog.confirm() |
495 | .targetEvent($event) | 495 | .targetEvent($event) |
496 | - .title($translate.instant('rulechain.remove-default-edge-title', {ruleChainName: ruleChain.name})) | ||
497 | - .htmlContent($translate.instant('rulechain.remove-default-edge-text')) | ||
498 | - .ariaLabel($translate.instant('rulechain.remove-default-edge')) | 496 | + .title($translate.instant('rulechain.unset-auto-assign-to-edge-title', {ruleChainName: ruleChain.name})) |
497 | + .htmlContent($translate.instant('rulechain.unset-auto-assign-to-edge-text')) | ||
498 | + .ariaLabel($translate.instant('rulechain.unset-auto-assign-to-edge')) | ||
499 | .cancel($translate.instant('action.no')) | 499 | .cancel($translate.instant('action.no')) |
500 | .ok($translate.instant('action.yes')); | 500 | .ok($translate.instant('action.yes')); |
501 | $mdDialog.show(confirm).then(function () { | 501 | $mdDialog.show(confirm).then(function () { |
@@ -511,8 +511,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -511,8 +511,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
511 | $event.stopPropagation(); | 511 | $event.stopPropagation(); |
512 | var confirm = $mdDialog.confirm() | 512 | var confirm = $mdDialog.confirm() |
513 | .targetEvent($event) | 513 | .targetEvent($event) |
514 | - .title($translate.instant('rulechain.set-default-root-edge-rulechain-title', {ruleChainName: ruleChain.name})) | ||
515 | - .htmlContent($translate.instant('rulechain.set-default-root-edge-rulechain-text')) | 514 | + .title($translate.instant('rulechain.set-edge-template-root-rulechain-title', {ruleChainName: ruleChain.name})) |
515 | + .htmlContent($translate.instant('rulechain.set-edge-template-root-rulechain-text')) | ||
516 | .ariaLabel($translate.instant('rulechain.set-root-rulechain-text')) | 516 | .ariaLabel($translate.instant('rulechain.set-root-rulechain-text')) |
517 | .cancel($translate.instant('action.no')) | 517 | .cancel($translate.instant('action.no')) |
518 | .ok($translate.instant('action.yes')); | 518 | .ok($translate.instant('action.yes')); |
@@ -572,8 +572,32 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -572,8 +572,32 @@ export default function RuleChainsController(ruleChainService, userService, impo | ||
572 | fullscreen: true, | 572 | fullscreen: true, |
573 | targetEvent: $event | 573 | targetEvent: $event |
574 | }).then(function () { | 574 | }).then(function () { |
575 | - vm.grid.refreshList(); | ||
576 | - }, function () { | 575 | + edgeService.findMissingToRelatedRuleChains(edgeId).then( |
576 | + function success(missingRuleChains) { | ||
577 | + if (missingRuleChains && Object.keys(missingRuleChains).length > 0) { | ||
578 | + let formattedMissingRuleChains = []; | ||
579 | + for (const missingRuleChain of Object.keys(missingRuleChains)) { | ||
580 | + const arrayOfMissingRuleChains = missingRuleChains[missingRuleChain]; | ||
581 | + const tmp = "- '" + missingRuleChain + "': '" + arrayOfMissingRuleChains.join("', ") + "'"; | ||
582 | + formattedMissingRuleChains.push(tmp); | ||
583 | + } | ||
584 | + var alert = $mdDialog.alert() | ||
585 | + .parent(angular.element($document[0].body)) | ||
586 | + .clickOutsideToClose(true) | ||
587 | + .title($translate.instant('edge.missing-related-rule-chains-title')) | ||
588 | + .htmlContent($translate.instant('edge.missing-related-rule-chains-text', {missingRuleChains: formattedMissingRuleChains.join("<br>")})) | ||
589 | + .ok($translate.instant('action.close')); | ||
590 | + alert._options.fullscreen = true; | ||
591 | + $mdDialog.show(alert).then( | ||
592 | + function () { | ||
593 | + vm.grid.refreshList(); | ||
594 | + } | ||
595 | + ); | ||
596 | + } else { | ||
597 | + vm.grid.refreshList(); | ||
598 | + } | ||
599 | + } | ||
600 | + ); | ||
577 | }); | 601 | }); |
578 | }, | 602 | }, |
579 | function fail() { | 603 | function fail() { |
@@ -28,8 +28,8 @@ | @@ -28,8 +28,8 @@ | ||
28 | the-form="vm.grid.detailsForm" | 28 | the-form="vm.grid.detailsForm" |
29 | rule-chains-scope="vm.ruleChainsScope" | 29 | rule-chains-scope="vm.ruleChainsScope" |
30 | edge="vm.edge" | 30 | edge="vm.edge" |
31 | - on-set-default-edge-rule-chain="vm.setDefaultEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" | ||
32 | - on-remove-default-edge-rule-chain="vm.unsetAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" | 31 | + on-set-auto-assign-to-edge-rule-chain="vm.setAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" |
32 | + on-unset-auto-assign-to-edge-rule-chain="vm.unsetAutoAssignToEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" | ||
33 | on-set-root-rule-chain="vm.setRootRuleChain(event, vm.grid.detailsConfig.currentItem)" | 33 | on-set-root-rule-chain="vm.setRootRuleChain(event, vm.grid.detailsConfig.currentItem)" |
34 | on-export-rule-chain="vm.exportRuleChain(event, vm.grid.detailsConfig.currentItem)" | 34 | on-export-rule-chain="vm.exportRuleChain(event, vm.grid.detailsConfig.currentItem)" |
35 | on-delete-rule-chain="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"> | 35 | on-delete-rule-chain="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"> |
@@ -156,24 +156,9 @@ function Menu(userService, $state, $rootScope) { | @@ -156,24 +156,9 @@ function Menu(userService, $state, $rootScope) { | ||
156 | }, | 156 | }, |
157 | { | 157 | { |
158 | name: 'rulechain.rulechains', | 158 | name: 'rulechain.rulechains', |
159 | - type: 'toggle', | 159 | + type: 'link', |
160 | state: 'home.ruleChains', | 160 | state: 'home.ruleChains', |
161 | - height: '80px', | ||
162 | - icon: 'settings_ethernet', | ||
163 | - pages: [ | ||
164 | - { | ||
165 | - name: 'rulechain.core-rulechains', | ||
166 | - type: 'link', | ||
167 | - state: 'home.ruleChains.core', | ||
168 | - icon: 'settings_ethernet' | ||
169 | - }, | ||
170 | - { | ||
171 | - name: 'rulechain.edge-rulechains', | ||
172 | - type: 'link', | ||
173 | - state: 'home.ruleChains.edge', | ||
174 | - icon: 'code' | ||
175 | - } | ||
176 | - ] | 161 | + icon: 'settings_ethernet' |
177 | }, | 162 | }, |
178 | { | 163 | { |
179 | name: 'customer.customers', | 164 | name: 'customer.customers', |
@@ -198,13 +183,33 @@ function Menu(userService, $state, $rootScope) { | @@ -198,13 +183,33 @@ function Menu(userService, $state, $rootScope) { | ||
198 | type: 'link', | 183 | type: 'link', |
199 | state: 'home.entityViews', | 184 | state: 'home.entityViews', |
200 | icon: 'view_quilt' | 185 | icon: 'view_quilt' |
201 | - }, | ||
202 | - { | ||
203 | - name: 'edge.edges', | ||
204 | - type: 'link', | ||
205 | - state: 'home.edges', | ||
206 | - icon: 'router' | ||
207 | - }, | 186 | + }]; |
187 | + if (userService.isEdgesSupportEnabled()) { | ||
188 | + sections.push( | ||
189 | + { | ||
190 | + name: 'edge.management', | ||
191 | + type: 'toggle', | ||
192 | + state: 'home.edges', | ||
193 | + height: '80px', | ||
194 | + icon: 'router', | ||
195 | + pages: [ | ||
196 | + { | ||
197 | + name: 'edge.edge-instances', | ||
198 | + type: 'link', | ||
199 | + state: 'home.edges', | ||
200 | + icon: 'router' | ||
201 | + }, | ||
202 | + { | ||
203 | + name: 'edge.rulechain-templates', | ||
204 | + type: 'link', | ||
205 | + state: 'home.edges.edgeRuleChains', | ||
206 | + icon: 'settings_ethernet' | ||
207 | + } | ||
208 | + ] | ||
209 | + } | ||
210 | + ); | ||
211 | + } | ||
212 | + sections.push( | ||
208 | { | 213 | { |
209 | name: 'widget.widget-library', | 214 | name: 'widget.widget-library', |
210 | type: 'link', | 215 | type: 'link', |
@@ -222,21 +227,17 @@ function Menu(userService, $state, $rootScope) { | @@ -222,21 +227,17 @@ function Menu(userService, $state, $rootScope) { | ||
222 | type: 'link', | 227 | type: 'link', |
223 | state: 'home.auditLogs', | 228 | state: 'home.auditLogs', |
224 | icon: 'track_changes' | 229 | icon: 'track_changes' |
225 | - }]; | 230 | + } |
231 | + ); | ||
226 | 232 | ||
227 | homeSections = | 233 | homeSections = |
228 | [{ | 234 | [{ |
229 | - name: 'rulechain.management', | 235 | + name: 'rulechain.rulechains', |
230 | places: [ | 236 | places: [ |
231 | { | 237 | { |
232 | - name: 'rulechain.core-rulechains', | 238 | + name: 'rulechain.rulechains', |
233 | icon: 'settings_ethernet', | 239 | icon: 'settings_ethernet', |
234 | - state: 'home.ruleChains.core' | ||
235 | - }, | ||
236 | - { | ||
237 | - name: 'rulechain.edge-rulechains', | ||
238 | - icon: 'code', | ||
239 | - state: 'home.ruleChains.edge' | 240 | + state: 'home.ruleChains' |
240 | } | 241 | } |
241 | ] | 242 | ] |
242 | }, | 243 | }, |
@@ -279,43 +280,51 @@ function Menu(userService, $state, $rootScope) { | @@ -279,43 +280,51 @@ function Menu(userService, $state, $rootScope) { | ||
279 | state: 'home.entityViews' | 280 | state: 'home.entityViews' |
280 | } | 281 | } |
281 | ] | 282 | ] |
282 | - }, | ||
283 | - { | ||
284 | - name: 'edge.management', | ||
285 | - places: [ | ||
286 | - { | ||
287 | - name: 'edge.edges', | ||
288 | - icon: 'router', | ||
289 | - state: 'home.edges' | ||
290 | - } | ||
291 | - ] | ||
292 | - }, | ||
293 | - { | ||
294 | - name: 'dashboard.management', | ||
295 | - places: [ | ||
296 | - { | ||
297 | - name: 'widget.widget-library', | ||
298 | - icon: 'now_widgets', | ||
299 | - state: 'home.widgets-bundles' | ||
300 | - }, | ||
301 | - { | ||
302 | - name: 'dashboard.dashboards', | ||
303 | - icon: 'dashboard', | ||
304 | - state: 'home.dashboards' | ||
305 | - } | ||
306 | - ] | ||
307 | - }, | ||
308 | - { | ||
309 | - name: 'audit-log.audit', | ||
310 | - places: [ | ||
311 | - { | ||
312 | - name: 'audit-log.audit-logs', | ||
313 | - icon: 'track_changes', | ||
314 | - state: 'home.auditLogs' | ||
315 | - } | ||
316 | - ] | ||
317 | }]; | 283 | }]; |
284 | + if (userService.isEdgesSupportEnabled()) { | ||
285 | + homeSections.push({ | ||
286 | + name: 'edge.management', | ||
287 | + places: [ | ||
288 | + { | ||
289 | + name: 'edge.edge-instances', | ||
290 | + icon: 'router', | ||
291 | + state: 'home.edges' | ||
292 | + }, | ||
293 | + { | ||
294 | + name: 'edge.rulechain-templates', | ||
295 | + icon: 'settings_ethernet', | ||
296 | + state: 'home.edges.edgeRuleChains' | ||
297 | + } | ||
298 | + ] | ||
318 | 299 | ||
300 | + }); | ||
301 | + } | ||
302 | + homeSections.push( | ||
303 | + { | ||
304 | + name: 'dashboard.management', | ||
305 | + places: [ | ||
306 | + { | ||
307 | + name: 'widget.widget-library', | ||
308 | + icon: 'now_widgets', | ||
309 | + state: 'home.widgets-bundles' | ||
310 | + }, | ||
311 | + { | ||
312 | + name: 'dashboard.dashboards', | ||
313 | + icon: 'dashboard', | ||
314 | + state: 'home.dashboards' | ||
315 | + } | ||
316 | + ] | ||
317 | + }, | ||
318 | + { | ||
319 | + name: 'audit-log.audit', | ||
320 | + places: [ | ||
321 | + { | ||
322 | + name: 'audit-log.audit-logs', | ||
323 | + icon: 'track_changes', | ||
324 | + state: 'home.auditLogs' | ||
325 | + } | ||
326 | + ] | ||
327 | + }); | ||
319 | } else if (authority === 'CUSTOMER_USER') { | 328 | } else if (authority === 'CUSTOMER_USER') { |
320 | sections = [ | 329 | sections = [ |
321 | { | 330 | { |
@@ -341,19 +350,25 @@ function Menu(userService, $state, $rootScope) { | @@ -341,19 +350,25 @@ function Menu(userService, $state, $rootScope) { | ||
341 | type: 'link', | 350 | type: 'link', |
342 | state: 'home.entityViews', | 351 | state: 'home.entityViews', |
343 | icon: 'view_quilt' | 352 | icon: 'view_quilt' |
344 | - }, | ||
345 | - { | ||
346 | - name: 'edge.edges', | ||
347 | - type: 'link', | ||
348 | - state: 'home.edges', | ||
349 | - icon: 'router' | ||
350 | - }, | 353 | + }]; |
354 | + if (userService.isEdgesSupportEnabled()) { | ||
355 | + sections.push( | ||
356 | + { | ||
357 | + name: 'edge.edge-instances', | ||
358 | + type: 'link', | ||
359 | + state: 'home.edges', | ||
360 | + icon: 'router' | ||
361 | + } | ||
362 | + ); | ||
363 | + } | ||
364 | + sections.push( | ||
351 | { | 365 | { |
352 | name: 'dashboard.dashboards', | 366 | name: 'dashboard.dashboards', |
353 | type: 'link', | 367 | type: 'link', |
354 | state: 'home.dashboards', | 368 | state: 'home.dashboards', |
355 | icon: 'dashboard' | 369 | icon: 'dashboard' |
356 | - }]; | 370 | + } |
371 | + ); | ||
357 | 372 | ||
358 | homeSections = | 373 | homeSections = |
359 | [{ | 374 | [{ |
@@ -385,17 +400,22 @@ function Menu(userService, $state, $rootScope) { | @@ -385,17 +400,22 @@ function Menu(userService, $state, $rootScope) { | ||
385 | state: 'home.entityViews' | 400 | state: 'home.entityViews' |
386 | } | 401 | } |
387 | ] | 402 | ] |
388 | - }, | ||
389 | - { | ||
390 | - name: 'edge.management', | ||
391 | - places: [ | ||
392 | - { | ||
393 | - name: 'edge.edges', | ||
394 | - icon: 'router', | ||
395 | - state: 'home.edges' | ||
396 | - } | ||
397 | - ] | ||
398 | - }, | 403 | + }]; |
404 | + if (userService.isEdgesSupportEnabled()) { | ||
405 | + homeSections.push( | ||
406 | + { | ||
407 | + name: 'edge.edge-instances', | ||
408 | + places: [ | ||
409 | + { | ||
410 | + name: 'edge.edge-instances', | ||
411 | + icon: 'router', | ||
412 | + state: 'home.edges' | ||
413 | + } | ||
414 | + ] | ||
415 | + } | ||
416 | + ); | ||
417 | + } | ||
418 | + homeSections.push( | ||
399 | { | 419 | { |
400 | name: 'dashboard.view-dashboards', | 420 | name: 'dashboard.view-dashboards', |
401 | places: [ | 421 | places: [ |
@@ -405,7 +425,8 @@ function Menu(userService, $state, $rootScope) { | @@ -405,7 +425,8 @@ function Menu(userService, $state, $rootScope) { | ||
405 | state: 'home.dashboards' | 425 | state: 'home.dashboards' |
406 | } | 426 | } |
407 | ] | 427 | ] |
408 | - }]; | 428 | + } |
429 | + ); | ||
409 | } | 430 | } |
410 | } | 431 | } |
411 | } | 432 | } |
@@ -423,4 +444,4 @@ function Menu(userService, $state, $rootScope) { | @@ -423,4 +444,4 @@ function Menu(userService, $state, $rootScope) { | ||
423 | return $state.includes(section.state); | 444 | return $state.includes(section.state); |
424 | } | 445 | } |
425 | 446 | ||
426 | -} | ||
447 | +} |