Commit d0bff3d6eb2b2f0724798df2ebe9688cb6387b50
Committed by
GitHub
Merge pull request #61 from deaflynx/develop/2.6-edge
Develop/2.6 edge UI updates
Showing
25 changed files
with
81 additions
and
22 deletions
@@ -28,31 +28,31 @@ function ComponentDescriptorService($http, $q) { | @@ -28,31 +28,31 @@ function ComponentDescriptorService($http, $q) { | ||
28 | 28 | ||
29 | return service; | 29 | return service; |
30 | 30 | ||
31 | - function getComponentDescriptorsByTypes(componentTypes, type) { | 31 | + function getComponentDescriptorsByTypes(componentTypes, ruleChainType) { |
32 | var deferred = $q.defer(); | 32 | var deferred = $q.defer(); |
33 | var result = []; | 33 | var result = []; |
34 | - if (!componentsByType[type]) { | ||
35 | - componentsByType[type] = {}; | 34 | + if (!componentsByType[ruleChainType]) { |
35 | + componentsByType[ruleChainType] = {}; | ||
36 | } | 36 | } |
37 | for (var i=componentTypes.length-1;i>=0;i--) { | 37 | for (var i=componentTypes.length-1;i>=0;i--) { |
38 | var componentType = componentTypes[i]; | 38 | var componentType = componentTypes[i]; |
39 | - if (componentsByType[type][componentType]) { | ||
40 | - result = result.concat(componentsByType[type][componentType]); | 39 | + if (componentsByType[ruleChainType][componentType]) { |
40 | + result = result.concat(componentsByType[ruleChainType][componentType]); | ||
41 | componentTypes.splice(i, 1); | 41 | componentTypes.splice(i, 1); |
42 | } | 42 | } |
43 | } | 43 | } |
44 | if (!componentTypes.length) { | 44 | if (!componentTypes.length) { |
45 | deferred.resolve(result); | 45 | deferred.resolve(result); |
46 | } else { | 46 | } else { |
47 | - var url = '/api/components?componentTypes=' + componentTypes.join(',') + '&ruleChainType=' + type; | 47 | + var url = '/api/components?componentTypes=' + componentTypes.join(',') + '&ruleChainType=' + ruleChainType; |
48 | $http.get(url, null).then(function success(response) { | 48 | $http.get(url, null).then(function success(response) { |
49 | var components = response.data; | 49 | var components = response.data; |
50 | for (var i = 0; i < components.length; i++) { | 50 | for (var i = 0; i < components.length; i++) { |
51 | var component = components[i]; | 51 | var component = components[i]; |
52 | - var componentsList = componentsByType[type][component.type]; | 52 | + var componentsList = componentsByType[ruleChainType][component.type]; |
53 | if (!componentsList) { | 53 | if (!componentsList) { |
54 | componentsList = []; | 54 | componentsList = []; |
55 | - componentsByType[type][component.type] = componentsList; | 55 | + componentsByType[ruleChainType][component.type] = componentsList; |
56 | } | 56 | } |
57 | componentsList.push(component); | 57 | componentsList.push(component); |
58 | componentsByClazz[component.clazz] = component; | 58 | componentsByClazz[component.clazz] = component; |
@@ -27,6 +27,9 @@ | @@ -27,6 +27,9 @@ | ||
27 | <md-button ng-click="onDeleteAsset({event: $event})" | 27 | <md-button ng-click="onDeleteAsset({event: $event})" |
28 | ng-show="!isEdit && assetScope === 'tenant'" | 28 | ng-show="!isEdit && assetScope === 'tenant'" |
29 | class="md-raised md-primary">{{ 'asset.delete' | translate }}</md-button> | 29 | class="md-raised md-primary">{{ 'asset.delete' | translate }}</md-button> |
30 | +<md-button ng-click="onUnassignFromEdge({event: $event})" | ||
31 | + ng-show="!isEdit && assetScope === 'edge'" | ||
32 | + class="md-raised md-primary">{{ 'edge.unassign-from-edge' | translate }}</md-button> | ||
30 | 33 | ||
31 | <div layout="row"> | 34 | <div layout="row"> |
32 | <md-button ngclipboard data-clipboard-action="copy" | 35 | <md-button ngclipboard data-clipboard-action="copy" |
@@ -130,6 +130,7 @@ export function AssetController($rootScope, userService, assetService, customerS | @@ -130,6 +130,7 @@ export function AssetController($rootScope, userService, assetService, customerS | ||
130 | vm.assignToCustomer = assignToCustomer; | 130 | vm.assignToCustomer = assignToCustomer; |
131 | vm.makePublic = makePublic; | 131 | vm.makePublic = makePublic; |
132 | vm.unassignFromCustomer = unassignFromCustomer; | 132 | vm.unassignFromCustomer = unassignFromCustomer; |
133 | + vm.unassignFromEdge = unassignFromEdge; | ||
133 | 134 | ||
134 | initController(); | 135 | initController(); |
135 | 136 |
@@ -66,7 +66,8 @@ export default function AssetDirective($compile, $templateCache, toast, $transla | @@ -66,7 +66,8 @@ export default function AssetDirective($compile, $templateCache, toast, $transla | ||
66 | onAssignToCustomer: '&', | 66 | onAssignToCustomer: '&', |
67 | onMakePublic: '&', | 67 | onMakePublic: '&', |
68 | onUnassignFromCustomer: '&', | 68 | onUnassignFromCustomer: '&', |
69 | - onDeleteAsset: '&' | 69 | + onDeleteAsset: '&', |
70 | + onUnassignFromEdge: '&' | ||
70 | } | 71 | } |
71 | }; | 72 | }; |
72 | } | 73 | } |
@@ -29,6 +29,7 @@ | @@ -29,6 +29,7 @@ | ||
29 | on-assign-to-customer="vm.assignToCustomer(event, [ vm.grid.detailsConfig.currentItem.id.id ])" | 29 | on-assign-to-customer="vm.assignToCustomer(event, [ vm.grid.detailsConfig.currentItem.id.id ])" |
30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" | 30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" |
31 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, isPublic)" | 31 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, isPublic)" |
32 | + on-unassign-from-edge="vm.unassignFromEdge(event, vm.grid.detailsConfig.currentItem)" | ||
32 | on-delete-asset="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-asset> | 33 | on-delete-asset="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-asset> |
33 | </md-tab> | 34 | </md-tab> |
34 | <md-tab ng-if="!vm.grid.detailsConfig.isDetailsEditMode" md-on-select="vm.grid.triggerResize()" label="{{ 'attribute.attributes' | translate }}"> | 35 | <md-tab ng-if="!vm.grid.detailsConfig.isDetailsEditMode" md-on-select="vm.grid.triggerResize()" label="{{ 'attribute.attributes' | translate }}"> |
@@ -16,7 +16,7 @@ | @@ -16,7 +16,7 @@ | ||
16 | 16 | ||
17 | --> | 17 | --> |
18 | <md-button ng-click="onExportDashboard({event: $event})" | 18 | <md-button ng-click="onExportDashboard({event: $event})" |
19 | - ng-show="!isEdit && dashboardScope === 'tenant'" | 19 | + ng-show="!isEdit && (dashboardScope === 'tenant' || dashboardScope === 'edge')" |
20 | class="md-raised md-primary">{{ 'dashboard.export' | translate }}</md-button> | 20 | class="md-raised md-primary">{{ 'dashboard.export' | translate }}</md-button> |
21 | <md-button ng-click="onMakePublic({event: $event})" | 21 | <md-button ng-click="onMakePublic({event: $event})" |
22 | ng-show="!isEdit && dashboardScope === 'tenant' && !dashboard.publicCustomerId" | 22 | ng-show="!isEdit && dashboardScope === 'tenant' && !dashboard.publicCustomerId" |
@@ -34,6 +34,9 @@ | @@ -34,6 +34,9 @@ | ||
34 | <md-button ng-click="onDeleteDashboard({event: $event})" | 34 | <md-button ng-click="onDeleteDashboard({event: $event})" |
35 | ng-show="!isEdit && dashboardScope === 'tenant'" | 35 | ng-show="!isEdit && dashboardScope === 'tenant'" |
36 | class="md-raised md-primary">{{ 'dashboard.delete' | translate }}</md-button> | 36 | class="md-raised md-primary">{{ 'dashboard.delete' | translate }}</md-button> |
37 | +<md-button ng-click="onUnassignFromEdge({event: $event})" | ||
38 | + ng-show="!isEdit && dashboardScope === 'edge'" | ||
39 | + class="md-raised md-primary">{{ 'edge.unassign-from-edge' | translate }}</md-button> | ||
37 | <md-content class="md-padding" layout="column"> | 40 | <md-content class="md-padding" layout="column"> |
38 | <md-input-container class="md-block" | 41 | <md-input-container class="md-block" |
39 | ng-show="!isEdit && dashboard.assignedCustomersText && dashboardScope === 'tenant'"> | 42 | ng-show="!isEdit && dashboard.assignedCustomersText && dashboardScope === 'tenant'"> |
@@ -48,12 +48,14 @@ export default function DashboardDirective($compile, $templateCache, $translate, | @@ -48,12 +48,14 @@ export default function DashboardDirective($compile, $templateCache, $translate, | ||
48 | dashboard: '=', | 48 | dashboard: '=', |
49 | isEdit: '=', | 49 | isEdit: '=', |
50 | customerId: '=', | 50 | customerId: '=', |
51 | + edgeId: '=', | ||
51 | dashboardScope: '=', | 52 | dashboardScope: '=', |
52 | theForm: '=', | 53 | theForm: '=', |
53 | onMakePublic: '&', | 54 | onMakePublic: '&', |
54 | onMakePrivate: '&', | 55 | onMakePrivate: '&', |
55 | onManageAssignedCustomers: '&', | 56 | onManageAssignedCustomers: '&', |
56 | onUnassignFromCustomer: '&', | 57 | onUnassignFromCustomer: '&', |
58 | + onUnassignFromEdge: '&', | ||
57 | onExportDashboard: '&', | 59 | onExportDashboard: '&', |
58 | onDeleteDashboard: '&' | 60 | onDeleteDashboard: '&' |
59 | } | 61 | } |
@@ -129,6 +129,7 @@ export function DashboardsController(userService, dashboardService, customerServ | @@ -129,6 +129,7 @@ export function DashboardsController(userService, dashboardService, customerServ | ||
129 | vm.manageAssignedCustomers = manageAssignedCustomers; | 129 | vm.manageAssignedCustomers = manageAssignedCustomers; |
130 | vm.unassignFromCustomer = unassignFromCustomer; | 130 | vm.unassignFromCustomer = unassignFromCustomer; |
131 | vm.exportDashboard = exportDashboard; | 131 | vm.exportDashboard = exportDashboard; |
132 | + vm.unassignFromEdge = unassignFromEdge; | ||
132 | 133 | ||
133 | initController(); | 134 | initController(); |
134 | 135 | ||
@@ -156,6 +157,10 @@ export function DashboardsController(userService, dashboardService, customerServ | @@ -156,6 +157,10 @@ export function DashboardsController(userService, dashboardService, customerServ | ||
156 | ); | 157 | ); |
157 | } | 158 | } |
158 | 159 | ||
160 | + if (edgeId) { | ||
161 | + vm.edgeId = edgeId; | ||
162 | + } | ||
163 | + | ||
159 | if (vm.dashboardsScope === 'tenant') { | 164 | if (vm.dashboardsScope === 'tenant') { |
160 | fetchDashboardsFunction = function (pageLink) { | 165 | fetchDashboardsFunction = function (pageLink) { |
161 | return dashboardService.getTenantDashboards(pageLink); | 166 | return dashboardService.getTenantDashboards(pageLink); |
@@ -26,12 +26,14 @@ | @@ -26,12 +26,14 @@ | ||
26 | is-edit="vm.grid.detailsConfig.isDetailsEditMode" | 26 | is-edit="vm.grid.detailsConfig.isDetailsEditMode" |
27 | dashboard-scope="vm.dashboardsScope" | 27 | dashboard-scope="vm.dashboardsScope" |
28 | customer-id="vm.customerId" | 28 | customer-id="vm.customerId" |
29 | + edge-id="vm.edgeId" | ||
29 | the-form="vm.grid.detailsForm" | 30 | the-form="vm.grid.detailsForm" |
30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" | 31 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" |
31 | on-make-private="vm.makePrivate(event, vm.grid.detailsConfig.currentItem)" | 32 | on-make-private="vm.makePrivate(event, vm.grid.detailsConfig.currentItem)" |
32 | on-manage-assigned-customers="vm.manageAssignedCustomers(event, vm.grid.detailsConfig.currentItem)" | 33 | on-manage-assigned-customers="vm.manageAssignedCustomers(event, vm.grid.detailsConfig.currentItem)" |
33 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, vm.customerId)" | 34 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, vm.customerId)" |
34 | - on-export-dashboard="vm.exportDashboard(event, vm.grid.detailsConfig.currentItem)" | 35 | + on-unassign-from-edge="vm.unassignFromEdge(event, vm.grid.detailsConfig.currentItem, vm.edgeId)" |
36 | + on-export-dashboard="vm.exportDashboard(event, vm.grid.detailsConfig.currentItem)" | ||
35 | on-delete-dashboard="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-dashboard-details> | 37 | on-delete-dashboard="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-dashboard-details> |
36 | </md-tab> | 38 | </md-tab> |
37 | <md-tab ng-if="!vm.grid.detailsConfig.isDetailsEditMode && vm.grid.isTenantAdmin()" md-on-select="vm.grid.triggerResize()" label="{{ 'audit-log.audit-logs' | translate }}"> | 39 | <md-tab ng-if="!vm.grid.detailsConfig.isDetailsEditMode && vm.grid.isTenantAdmin()" md-on-select="vm.grid.triggerResize()" label="{{ 'audit-log.audit-logs' | translate }}"> |
@@ -24,6 +24,9 @@ | @@ -24,6 +24,9 @@ | ||
24 | <md-button ng-click="onUnassignFromCustomer({event: $event, isPublic: isPublic})" | 24 | <md-button ng-click="onUnassignFromCustomer({event: $event, isPublic: isPublic})" |
25 | ng-show="!isEdit && (deviceScope === 'customer' || deviceScope === 'tenant') && isAssignedToCustomer" | 25 | ng-show="!isEdit && (deviceScope === 'customer' || deviceScope === 'tenant') && isAssignedToCustomer" |
26 | class="md-raised md-primary">{{ isPublic ? 'device.make-private' : 'device.unassign-from-customer' | translate }}</md-button> | 26 | class="md-raised md-primary">{{ isPublic ? 'device.make-private' : 'device.unassign-from-customer' | translate }}</md-button> |
27 | +<md-button ng-click="onUnassignFromEdge({event: $event})" | ||
28 | + ng-show="!isEdit && deviceScope === 'edge'" | ||
29 | + class="md-raised md-primary">{{ 'edge.unassign-from-edge' | translate }}</md-button> | ||
27 | <md-button ng-click="onManageCredentials({event: $event})" | 30 | <md-button ng-click="onManageCredentials({event: $event})" |
28 | ng-show="!isEdit" | 31 | ng-show="!isEdit" |
29 | class="md-raised md-primary">{{ (deviceScope === 'customer_user' ? 'device.view-credentials' : 'device.manage-credentials') | translate }}</md-button> | 32 | class="md-raised md-primary">{{ (deviceScope === 'customer_user' ? 'device.view-credentials' : 'device.manage-credentials') | translate }}</md-button> |
@@ -131,6 +131,7 @@ export function DeviceController($rootScope, userService, deviceService, custome | @@ -131,6 +131,7 @@ export function DeviceController($rootScope, userService, deviceService, custome | ||
131 | vm.makePublic = makePublic; | 131 | vm.makePublic = makePublic; |
132 | vm.unassignFromCustomer = unassignFromCustomer; | 132 | vm.unassignFromCustomer = unassignFromCustomer; |
133 | vm.manageCredentials = manageCredentials; | 133 | vm.manageCredentials = manageCredentials; |
134 | + vm.unassignFromEdge = unassignFromEdge; | ||
134 | 135 | ||
135 | initController(); | 136 | initController(); |
136 | 137 |
@@ -82,7 +82,8 @@ export default function DeviceDirective($compile, $templateCache, toast, $transl | @@ -82,7 +82,8 @@ export default function DeviceDirective($compile, $templateCache, toast, $transl | ||
82 | onMakePublic: '&', | 82 | onMakePublic: '&', |
83 | onUnassignFromCustomer: '&', | 83 | onUnassignFromCustomer: '&', |
84 | onManageCredentials: '&', | 84 | onManageCredentials: '&', |
85 | - onDeleteDevice: '&' | 85 | + onDeleteDevice: '&', |
86 | + onUnassignFromEdge: '&', | ||
86 | } | 87 | } |
87 | }; | 88 | }; |
88 | } | 89 | } |
@@ -29,6 +29,7 @@ | @@ -29,6 +29,7 @@ | ||
29 | on-assign-to-customer="vm.assignToCustomer(event, [ vm.grid.detailsConfig.currentItem.id.id ])" | 29 | on-assign-to-customer="vm.assignToCustomer(event, [ vm.grid.detailsConfig.currentItem.id.id ])" |
30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" | 30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" |
31 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, isPublic)" | 31 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, isPublic)" |
32 | + on-unassign-from-edge="vm.unassignFromEdge(event, vm.grid.detailsConfig.currentItem)" | ||
32 | on-manage-credentials="vm.manageCredentials(event, vm.grid.detailsConfig.currentItem)" | 33 | on-manage-credentials="vm.manageCredentials(event, vm.grid.detailsConfig.currentItem)" |
33 | on-delete-device="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-device> | 34 | on-delete-device="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-device> |
34 | </md-tab> | 35 | </md-tab> |
@@ -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: "settings_ethernet" | 286 | + icon: "code" |
287 | } | 287 | } |
288 | ); | 288 | ); |
289 | 289 |
@@ -49,7 +49,7 @@ export default function EdgeRoutes($stateProvider, types) { | @@ -49,7 +49,7 @@ export default function EdgeRoutes($stateProvider, types) { | ||
49 | pageTitle: 'edge.edges' | 49 | pageTitle: 'edge.edges' |
50 | }, | 50 | }, |
51 | ncyBreadcrumb: { | 51 | ncyBreadcrumb: { |
52 | - label: '{"icon": "transform", "label": "edge.edges"}' | 52 | + label: '{"icon": "router", "label": "edge.edges"}' |
53 | } | 53 | } |
54 | }).state('home.edges.entityViews', { | 54 | }).state('home.edges.entityViews', { |
55 | url: '/:edgeId/entityViews', | 55 | url: '/:edgeId/entityViews', |
@@ -27,6 +27,9 @@ | @@ -27,6 +27,9 @@ | ||
27 | <md-button ng-click="onDeleteEntityView({event: $event})" | 27 | <md-button ng-click="onDeleteEntityView({event: $event})" |
28 | ng-show="!isEdit && entityViewScope === 'tenant'" | 28 | ng-show="!isEdit && entityViewScope === 'tenant'" |
29 | class="md-raised md-primary">{{ 'entity-view.delete' | translate }}</md-button> | 29 | class="md-raised md-primary">{{ 'entity-view.delete' | translate }}</md-button> |
30 | +<md-button ng-click="onUnassignFromEdge({event: $event})" | ||
31 | + ng-show="!isEdit && entityViewScope === 'edge'" | ||
32 | + class="md-raised md-primary">{{ 'edge.unassign-from-edge' | translate }}</md-button> | ||
30 | 33 | ||
31 | <div layout="row"> | 34 | <div layout="row"> |
32 | <md-button ngclipboard data-clipboard-action="copy" | 35 | <md-button ngclipboard data-clipboard-action="copy" |
@@ -106,6 +106,7 @@ export function EntityViewController($rootScope, userService, entityViewService, | @@ -106,6 +106,7 @@ export function EntityViewController($rootScope, userService, entityViewService, | ||
106 | vm.assignToCustomer = assignToCustomer; | 106 | vm.assignToCustomer = assignToCustomer; |
107 | vm.makePublic = makePublic; | 107 | vm.makePublic = makePublic; |
108 | vm.unassignFromCustomer = unassignFromCustomer; | 108 | vm.unassignFromCustomer = unassignFromCustomer; |
109 | + vm.unassignFromEdge = unassignFromEdge; | ||
109 | 110 | ||
110 | initController(); | 111 | initController(); |
111 | 112 |
@@ -144,7 +144,8 @@ export default function EntityViewDirective($q, $compile, $templateCache, $filte | @@ -144,7 +144,8 @@ export default function EntityViewDirective($q, $compile, $templateCache, $filte | ||
144 | onAssignToCustomer: '&', | 144 | onAssignToCustomer: '&', |
145 | onMakePublic: '&', | 145 | onMakePublic: '&', |
146 | onUnassignFromCustomer: '&', | 146 | onUnassignFromCustomer: '&', |
147 | - onDeleteEntityView: '&' | 147 | + onDeleteEntityView: '&', |
148 | + onUnassignFromEdge: '&' | ||
148 | } | 149 | } |
149 | }; | 150 | }; |
150 | } | 151 | } |
@@ -29,6 +29,7 @@ | @@ -29,6 +29,7 @@ | ||
29 | on-assign-to-customer="vm.assignToCustomer(event, [ vm.grid.detailsConfig.currentItem.id.id ])" | 29 | on-assign-to-customer="vm.assignToCustomer(event, [ vm.grid.detailsConfig.currentItem.id.id ])" |
30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" | 30 | on-make-public="vm.makePublic(event, vm.grid.detailsConfig.currentItem)" |
31 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, isPublic)" | 31 | on-unassign-from-customer="vm.unassignFromCustomer(event, vm.grid.detailsConfig.currentItem, isPublic)" |
32 | + on-unassign-from-edge="vm.unassignFromEdge(event, vm.grid.detailsConfig.currentItem)" | ||
32 | on-delete-entity-view="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-entity-view> | 33 | on-delete-entity-view="vm.grid.deleteItem(event, vm.grid.detailsConfig.currentItem)"></tb-entity-view> |
33 | </md-tab> | 34 | </md-tab> |
34 | <md-tab ng-if="!vm.grid.detailsConfig.isDetailsEditMode" md-on-select="vm.grid.triggerResize()" label="{{ 'attribute.attributes' | translate }}"> | 35 | <md-tab ng-if="!vm.grid.detailsConfig.isDetailsEditMode" md-on-select="vm.grid.triggerResize()" label="{{ 'attribute.attributes' | translate }}"> |
@@ -844,7 +844,8 @@ | @@ -844,7 +844,8 @@ | ||
844 | "set-root-rule-chain-to-edges-text": "Set root rule chain for { count, plural, 1 {1 edge} other {# edges} }", | 844 | "set-root-rule-chain-to-edges-text": "Set root rule chain for { count, plural, 1 {1 edge} other {# edges} }", |
845 | "status": "Received by edge", | 845 | "status": "Received by edge", |
846 | "deployed": "Deployed", | 846 | "deployed": "Deployed", |
847 | - "pending": "Pending" | 847 | + "pending": "Pending", |
848 | + "unassign-edges-action-title": "Unassign { count, plural, 1 {1 edge} other {# edges} } from customer" | ||
848 | }, | 849 | }, |
849 | "error": { | 850 | "error": { |
850 | "unable-to-connect": "Unable to connect to the server! Please check your internet connection.", | 851 | "unable-to-connect": "Unable to connect to the server! Please check your internet connection.", |
@@ -1539,6 +1540,7 @@ | @@ -1539,6 +1540,7 @@ | ||
1539 | "rulechains": "Rule chains", | 1540 | "rulechains": "Rule chains", |
1540 | "core-rulechains": "Core Rule chains", | 1541 | "core-rulechains": "Core Rule chains", |
1541 | "edge-rulechains": "Edge Rule chains", | 1542 | "edge-rulechains": "Edge Rule chains", |
1543 | + "default-root": "Default root", | ||
1542 | "root": "Root", | 1544 | "root": "Root", |
1543 | "delete": "Delete rule chain", | 1545 | "delete": "Delete rule chain", |
1544 | "name": "Name", | 1546 | "name": "Name", |
@@ -1589,10 +1591,10 @@ | @@ -1589,10 +1591,10 @@ | ||
1589 | "set-default-root-edge-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' default edge root?", | 1591 | "set-default-root-edge-rulechain-title": "Are you sure you want to make the rule chain '{{ruleChainName}}' default edge root?", |
1590 | "set-default-root-edge-rulechain-text": "After the confirmation the rule chain will become default edge root and will handle all incoming transport messages.", | 1592 | "set-default-root-edge-rulechain-text": "After the confirmation the rule chain will become default edge root and will handle all incoming transport messages.", |
1591 | "invalid-rulechain-type-error": "Unable to import rule chain: Invalid rule chain type. Expected type is {{expectedRuleChainType}}.", | 1593 | "invalid-rulechain-type-error": "Unable to import rule chain: Invalid rule chain type. Expected type is {{expectedRuleChainType}}.", |
1592 | - "set-default-edge": "Make edge rule chain default", | 1594 | + "set-default-edge": "Make rule chain default", |
1593 | "set-default-edge-title": "Are you sure you want to make the edge rule chain '{{ruleChainName}}' default?", | 1595 | "set-default-edge-title": "Are you sure you want to make the edge rule chain '{{ruleChainName}}' default?", |
1594 | "set-default-edge-text": "After the confirmation the edge rule chain will be added to default list and assigned to newly created edge(s).", | 1596 | "set-default-edge-text": "After the confirmation the edge rule chain will be added to default list and assigned to newly created edge(s).", |
1595 | - "remove-default-edge": "Remove edge rule chain from defaults", | 1597 | + "remove-default-edge": "Remove rule chain from defaults", |
1596 | "remove-default-edge-title": "Are you sure you want to remove the edge rule chain '{{ruleChainName}}' from default list?", | 1598 | "remove-default-edge-title": "Are you sure you want to remove the edge rule chain '{{ruleChainName}}' from default list?", |
1597 | "remove-default-edge-text": "After the confirmation the edge rule chain will not be assigned for a newly created edges." | 1599 | "remove-default-edge-text": "After the confirmation the edge rule chain will not be assigned for a newly created edges." |
1598 | }, | 1600 | }, |
@@ -16,7 +16,8 @@ | @@ -16,7 +16,8 @@ | ||
16 | 16 | ||
17 | --> | 17 | --> |
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)) || | ||
20 | - (vm.parentCtl.ruleChainsScope === 'edges' && vm.parentCtl.isRootRuleChain(item))" translate>rulechain.root</div> | 19 | + (vm.parentCtl.ruleChainsScope === 'edge' && vm.parentCtl.isRootRuleChain(item))" translate>rulechain.root</div> |
20 | + | ||
21 | +<div ng-if="vm.parentCtl.ruleChainsScope === 'edges' && vm.parentCtl.isRootRuleChain(item)" translate>rulechain.default-root</div> | ||
21 | 22 | ||
22 | <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.default</div> |
@@ -18,11 +18,27 @@ | @@ -18,11 +18,27 @@ | ||
18 | <md-button ng-click="onExportRuleChain({event: $event})" | 18 | <md-button ng-click="onExportRuleChain({event: $event})" |
19 | ng-show="!isEdit" | 19 | ng-show="!isEdit" |
20 | class="md-raised md-primary">{{ 'rulechain.export' | translate }}</md-button> | 20 | class="md-raised md-primary">{{ 'rulechain.export' | translate }}</md-button> |
21 | + | ||
21 | <md-button ng-click="onSetRootRuleChain({event: $event})" | 22 | <md-button ng-click="onSetRootRuleChain({event: $event})" |
22 | - ng-show="!isEdit && !ruleChain.root" | 23 | + ng-show="!isEdit && !ruleChain.root && ruleChainsScope == 'tenant'" |
23 | class="md-raised md-primary">{{ 'rulechain.set-root' | translate }}</md-button> | 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 | + | ||
24 | <md-button ng-click="onDeleteRuleChain({event: $event})" | 40 | <md-button ng-click="onDeleteRuleChain({event: $event})" |
25 | - ng-show="!isEdit && !ruleChain.root" | 41 | + ng-show="!isEdit && !ruleChain.root && ruleChainsScope != 'edge'" |
26 | class="md-raised md-primary">{{ 'rulechain.delete' | translate }}</md-button> | 42 | class="md-raised md-primary">{{ 'rulechain.delete' | translate }}</md-button> |
27 | 43 | ||
28 | <div layout="row"> | 44 | <div layout="row"> |
@@ -40,6 +40,10 @@ export default function RuleChainDirective($compile, $templateCache, $mdDialog, | @@ -40,6 +40,10 @@ export default function RuleChainDirective($compile, $templateCache, $mdDialog, | ||
40 | isEdit: '=', | 40 | isEdit: '=', |
41 | isReadOnly: '=', | 41 | isReadOnly: '=', |
42 | theForm: '=', | 42 | theForm: '=', |
43 | + ruleChainsScope: '=', | ||
44 | + edge: '=', | ||
45 | + onSetDefaultEdgeRuleChain: '&', | ||
46 | + onRemoveDefaultEdgeRuleChain: '&', | ||
43 | onSetRootRuleChain: '&', | 47 | onSetRootRuleChain: '&', |
44 | onExportRuleChain: '&', | 48 | onExportRuleChain: '&', |
45 | onDeleteRuleChain: '&' | 49 | onDeleteRuleChain: '&' |
@@ -97,6 +97,8 @@ export default function RuleChainsController(ruleChainService, userService, impo | @@ -97,6 +97,8 @@ 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; | ||
101 | + vm.removeDefaultEdgeRuleChain = removeDefaultEdgeRuleChain; | ||
100 | 102 | ||
101 | initController(); | 103 | initController(); |
102 | 104 |
@@ -26,6 +26,10 @@ | @@ -26,6 +26,10 @@ | ||
26 | is-edit="vm.grid.detailsConfig.isDetailsEditMode" | 26 | is-edit="vm.grid.detailsConfig.isDetailsEditMode" |
27 | is-read-only="vm.grid.isDetailsReadOnly(vm.grid.operatingItem())" | 27 | is-read-only="vm.grid.isDetailsReadOnly(vm.grid.operatingItem())" |
28 | the-form="vm.grid.detailsForm" | 28 | the-form="vm.grid.detailsForm" |
29 | + rule-chains-scope="vm.ruleChainsScope" | ||
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.removeDefaultEdgeRuleChain(event, vm.grid.detailsConfig.currentItem)" | ||
29 | 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)" |
30 | on-export-rule-chain="vm.exportRuleChain(event, vm.grid.detailsConfig.currentItem)" | 34 | on-export-rule-chain="vm.exportRuleChain(event, vm.grid.detailsConfig.currentItem)" |
31 | 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)"> |