Browse Source

Edge management: menu refactored, hide menu section

pull/3957/head
Artem Babak 6 years ago
parent
commit
817d59ada9
  1. 24
      ui/src/app/api/user.service.js
  2. 4
      ui/src/app/rulechain/rulechain.controller.js
  3. 62
      ui/src/app/rulechain/rulechain.routes.js
  4. 6
      ui/src/app/rulechain/rulechains.controller.js
  5. 113
      ui/src/app/services/menu.service.js

24
ui/src/app/api/user.service.js

@ -29,7 +29,8 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
allowedDashboardIds = [], allowedDashboardIds = [],
redirectParams = null, redirectParams = null,
userTokenAccessEnabled = false, userTokenAccessEnabled = false,
userLoaded = false; userLoaded = false,
edgesSupportEnabled = false;
var refreshTokenQueue = []; var refreshTokenQueue = [];
@ -65,7 +66,9 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
reloadUser: reloadUser, reloadUser: reloadUser,
isUserTokenAccessEnabled: isUserTokenAccessEnabled, isUserTokenAccessEnabled: isUserTokenAccessEnabled,
loginAsUser: loginAsUser, loginAsUser: loginAsUser,
setUserCredentialsEnabled: setUserCredentialsEnabled setUserCredentialsEnabled: setUserCredentialsEnabled,
isEdgesSupportEnabled: isEdgesSupportEnabled,
loadIsEdgesSupportEnabled: loadIsEdgesSupportEnabled
} }
reloadUser(); reloadUser();
@ -451,6 +454,7 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
function loadSystemParams() { function loadSystemParams() {
var promises = []; var promises = [];
promises.push(loadIsUserTokenAccessEnabled()); promises.push(loadIsUserTokenAccessEnabled());
promises.push(loadIsEdgesSupportEnabled());
promises.push(timeService.loadMaxDatapointsLimit()); promises.push(timeService.loadMaxDatapointsLimit());
return $q.all(promises); return $q.all(promises);
} }
@ -685,4 +689,20 @@ function UserService($http, $q, $rootScope, adminService, dashboardService, time
}); });
} }
function isEdgesSupportEnabled() {
return edgesSupportEnabled;
}
function loadIsEdgesSupportEnabled() {
var deferred = $q.defer();
var url = '/api/edges/enabled';
$http.get(url).then(function success(response) {
edgesSupportEnabled = response.data;
deferred.resolve(response.data);
}, function fail() {
deferred.reject();
});
return deferred.promise;
}
} }

4
ui/src/app/rulechain/rulechain.controller.js

@ -1270,9 +1270,9 @@ export function RuleChainController($state, $scope, $compile, $q, $mdUtil, $time
vm.isImport = false; vm.isImport = false;
$mdUtil.nextTick(() => { $mdUtil.nextTick(() => {
if (vm.ruleChain.type === vm.types.ruleChainType.core) { if (vm.ruleChain.type === vm.types.ruleChainType.core) {
$state.go('home.ruleChains.core.ruleChain', {ruleChainId: vm.ruleChain.id.id}); $state.go('home.ruleChains.ruleChain', {ruleChainId: vm.ruleChain.id.id});
} else { } else {
$state.go('home.ruleChains.edge.ruleChain', {ruleChainId: vm.ruleChain.id.id}); $state.go('home.edges.edgeRuleChains.ruleChain', {ruleChainId: vm.ruleChain.id.id});
} }
}); });
} else { } else {

62
ui/src/app/rulechain/rulechain.routes.js

@ -29,15 +29,6 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider
$stateProvider $stateProvider
.state('home.ruleChains', { .state('home.ruleChains', {
url: '/ruleChains', url: '/ruleChains',
module: 'private',
auth: ['SYS_ADMIN', 'TENANT_ADMIN'],
redirectTo: 'home.ruleChains.core',
ncyBreadcrumb: {
label: '{"icon": "settings_ethernet", "label": "rulechain.rulechains"}'
}
})
.state('home.ruleChains.core', {
url: '/ruleChains/core',
params: {'topIndex': 0}, params: {'topIndex': 0},
module: 'private', module: 'private',
auth: ['SYS_ADMIN', 'TENANT_ADMIN'], auth: ['SYS_ADMIN', 'TENANT_ADMIN'],
@ -50,13 +41,13 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider
}, },
data: { data: {
searchEnabled: true, searchEnabled: true,
pageTitle: 'rulechain.core-rulechains', pageTitle: 'rulechain.rulechains',
ruleChainsType: 'tenant' ruleChainsType: 'tenant'
}, },
ncyBreadcrumb: { ncyBreadcrumb: {
label: '{"icon": "settings_ethernet", "label": "rulechain.core-rulechains"}' label: '{"icon": "settings_ethernet", "label": "rulechain.rulechains"}'
} }
}).state('home.ruleChains.core.ruleChain', { }).state('home.ruleChains.ruleChain', {
url: '/:ruleChainId', url: '/:ruleChainId',
reloadOnSearch: false, reloadOnSearch: false,
module: 'private', module: 'private',
@ -134,8 +125,8 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider
ncyBreadcrumb: { ncyBreadcrumb: {
label: '{"icon": "settings_ethernet", "label": "{{ (\'rulechain.import\' | translate) + \': \'+ vm.ruleChain.name }}", "translate": "false"}' label: '{"icon": "settings_ethernet", "label": "{{ (\'rulechain.import\' | translate) + \': \'+ vm.ruleChain.name }}", "translate": "false"}'
} }
}).state('home.ruleChains.edge', { }).state('home.edges.edgeRuleChains', {
url: '/ruleChains/edge', url: '/ruleChains',
params: {'topIndex': 0}, params: {'topIndex': 0},
module: 'private', module: 'private',
auth: ['TENANT_ADMIN'], auth: ['TENANT_ADMIN'],
@ -154,7 +145,7 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider
ncyBreadcrumb: { ncyBreadcrumb: {
label: '{"icon": "code", "label": "rulechain.edge-rulechains"}' label: '{"icon": "code", "label": "rulechain.edge-rulechains"}'
} }
}).state('home.ruleChains.edge.ruleChain', { }).state('home.edges.edgeRuleChains.ruleChain', {
url: '/:ruleChainId', url: '/:ruleChainId',
reloadOnSearch: false, reloadOnSearch: false,
module: 'private', module: 'private',
@ -191,5 +182,46 @@ export default function RuleChainRoutes($stateProvider, NodeTemplatePathProvider
ncyBreadcrumb: { ncyBreadcrumb: {
label: '{"icon": "code", "label": "{{ vm.ruleChain.name }}", "translate": "false"}' label: '{"icon": "code", "label": "{{ vm.ruleChain.name }}", "translate": "false"}'
} }
}).state('home.edges.edgeRuleChains.importRuleChain', {
url: '/edges/ruleChains/import',
reloadOnSearch: false,
module: 'private',
auth: ['SYS_ADMIN', 'TENANT_ADMIN'],
views: {
"content@home": {
templateUrl: ruleChainTemplate,
controller: 'RuleChainController',
controllerAs: 'vm'
}
},
params: {
ruleChainImport: {},
ruleChainType: {}
},
resolve: {
ruleChain:
/*@ngInject*/
function($stateParams) {
return $stateParams.ruleChainImport.ruleChain;
},
ruleChainMetaData:
/*@ngInject*/
function($stateParams) {
return $stateParams.ruleChainImport.metadata;
},
ruleNodeComponents:
/*@ngInject*/
function($stateParams, ruleChainService) {
return ruleChainService.getRuleNodeComponents($stateParams.ruleChainType);
}
},
data: {
import: true,
searchEnabled: true,
pageTitle: 'edge.rulechain'
},
ncyBreadcrumb: {
label: '{"icon": "code", "label": "{{ (\'rulechain.import\' | translate) + \': \'+ vm.ruleChain.name }}", "translate": "false"}'
}
}); });
} }

6
ui/src/app/rulechain/rulechains.controller.js

@ -247,7 +247,7 @@ export default function RuleChainsController(ruleChainService, userService, impo
onAction: function ($event) { onAction: function ($event) {
importExport.importRuleChain($event, types.ruleChainType.edge).then( importExport.importRuleChain($event, types.ruleChainType.edge).then(
function(ruleChainImport) { function(ruleChainImport) {
$state.go('home.ruleChains.importRuleChain', {ruleChainImport:ruleChainImport, ruleChainType: types.ruleChainType.edge}); $state.go('home.edges.edgeRuleChains.importRuleChain', {ruleChainImport:ruleChainImport, ruleChainType: types.ruleChainType.edge});
} }
); );
}, },
@ -401,9 +401,9 @@ export default function RuleChainsController(ruleChainService, userService, impo
if (vm.ruleChainsScope === 'edge') { if (vm.ruleChainsScope === 'edge') {
$state.go('home.edges.ruleChains.ruleChain', Object.assign(ruleChainParams, edgeId = vm.edge.id.id)); $state.go('home.edges.ruleChains.ruleChain', Object.assign(ruleChainParams, edgeId = vm.edge.id.id));
} else if (vm.ruleChainsScope === 'edges') { } else if (vm.ruleChainsScope === 'edges') {
$state.go('home.ruleChains.edge.ruleChain', ruleChainParams); $state.go('home.edges.edgeRuleChains.ruleChain', ruleChainParams);
} else { } else {
$state.go('home.ruleChains.core.ruleChain', ruleChainParams); $state.go('home.ruleChains.ruleChain', ruleChainParams);
} }
} }

113
ui/src/app/services/menu.service.js

@ -58,6 +58,45 @@ function Menu(userService, $state, $rootScope) {
if (authority !== user.authority) { if (authority !== user.authority) {
sections = []; sections = [];
authority = user.authority; authority = user.authority;
var edgeMenuSection = {
side: {
name: 'edge.management',
type: 'toggle',
state: 'home.edges',
height: '80px',
icon: 'router',
pages: [
{
name: 'edge.edges',
type: 'link',
state: 'home.edges',
icon: 'router'
},
{
name: 'rulechain.edge-rulechains',
type: 'link',
state: 'home.edges.edgeRuleChains',
icon: 'code'
}
]
},
home: {
name: 'edge.management',
places: [
{
name: 'edge.edges',
icon: 'router',
state: 'home.edges'
},
{
name: 'rulechain.edge-rulechains',
icon: 'code',
state: 'home.edges.edgeRuleChains'
}
]
}
}
if (authority === 'SYS_ADMIN') { if (authority === 'SYS_ADMIN') {
sections = [ sections = [
{ {
@ -156,24 +195,9 @@ function Menu(userService, $state, $rootScope) {
}, },
{ {
name: 'rulechain.rulechains', name: 'rulechain.rulechains',
type: 'toggle', type: 'link',
state: 'home.ruleChains', state: 'home.ruleChains',
height: '80px', icon: 'settings_ethernet'
icon: 'settings_ethernet',
pages: [
{
name: 'rulechain.core-rulechains',
type: 'link',
state: 'home.ruleChains.core',
icon: 'settings_ethernet'
},
{
name: 'rulechain.edge-rulechains',
type: 'link',
state: 'home.ruleChains.edge',
icon: 'code'
}
]
}, },
{ {
name: 'customer.customers', name: 'customer.customers',
@ -199,12 +223,6 @@ function Menu(userService, $state, $rootScope) {
state: 'home.entityViews', state: 'home.entityViews',
icon: 'view_quilt' icon: 'view_quilt'
}, },
{
name: 'edge.edges',
type: 'link',
state: 'home.edges',
icon: 'router'
},
{ {
name: 'widget.widget-library', name: 'widget.widget-library',
type: 'link', type: 'link',
@ -226,17 +244,12 @@ function Menu(userService, $state, $rootScope) {
homeSections = homeSections =
[{ [{
name: 'rulechain.management', name: 'rulechain.rulechains',
places: [ places: [
{ {
name: 'rulechain.core-rulechains', name: 'rulechain.rulechains',
icon: 'settings_ethernet', icon: 'settings_ethernet',
state: 'home.ruleChains.core' state: 'home.ruleChains'
},
{
name: 'rulechain.edge-rulechains',
icon: 'code',
state: 'home.ruleChains.edge'
} }
] ]
}, },
@ -280,16 +293,6 @@ function Menu(userService, $state, $rootScope) {
} }
] ]
}, },
{
name: 'edge.management',
places: [
{
name: 'edge.edges',
icon: 'router',
state: 'home.edges'
}
]
},
{ {
name: 'dashboard.management', name: 'dashboard.management',
places: [ places: [
@ -316,6 +319,11 @@ function Menu(userService, $state, $rootScope) {
] ]
}]; }];
if (userService.isEdgesSupportEnabled()) {
sections.splice(6, 0, edgeMenuSection.side);
homeSections.splice(5, 0, edgeMenuSection.home);
}
} else if (authority === 'CUSTOMER_USER') { } else if (authority === 'CUSTOMER_USER') {
sections = [ sections = [
{ {
@ -342,12 +350,6 @@ function Menu(userService, $state, $rootScope) {
state: 'home.entityViews', state: 'home.entityViews',
icon: 'view_quilt' icon: 'view_quilt'
}, },
{
name: 'edge.edges',
type: 'link',
state: 'home.edges',
icon: 'router'
},
{ {
name: 'dashboard.dashboards', name: 'dashboard.dashboards',
type: 'link', type: 'link',
@ -386,16 +388,6 @@ function Menu(userService, $state, $rootScope) {
} }
] ]
}, },
{
name: 'edge.management',
places: [
{
name: 'edge.edges',
icon: 'router',
state: 'home.edges'
}
]
},
{ {
name: 'dashboard.view-dashboards', name: 'dashboard.view-dashboards',
places: [ places: [
@ -406,6 +398,11 @@ function Menu(userService, $state, $rootScope) {
} }
] ]
}]; }];
if (userService.isEdgesSupportEnabled()) {
sections.splice(4, 0, edgeMenuSection.side);
homeSections.splice(3, 0, edgeMenuSection.home);
}
} }
} }
} }
@ -423,4 +420,4 @@ function Menu(userService, $state, $rootScope) {
return $state.includes(section.state); return $state.includes(section.state);
} }
} }

Loading…
Cancel
Save