mirror of
https://github.com/ZwareBear/awx.git
synced 2026-04-10 18:11:49 -05:00
71 lines
1.9 KiB
JavaScript
71 lines
1.9 KiB
JavaScript
const templateUrl = require('~components/layout/side-nav-item.partial.html');
|
|
|
|
function atSideNavItemLink (scope, element, attrs, ctrl) {
|
|
[scope.navVm, scope.layoutVm] = ctrl;
|
|
|
|
if (attrs.showSettingsSubMenu) {
|
|
element.hover(() => {
|
|
scope.navVm.onSettingsNavItem = true;
|
|
scope.navVm.showSettingsSubMenu = true;
|
|
}, () => {
|
|
scope.navVm.onSettingsNavItem = false;
|
|
setTimeout(() => {
|
|
if (!scope.navVm.onSettingsSubPane) {
|
|
scope.navVm.showSettingsSubMenu = false;
|
|
}
|
|
}, 100);
|
|
});
|
|
}
|
|
}
|
|
|
|
function AtSideNavItemController ($scope, strings) {
|
|
const vm = this || {};
|
|
|
|
$scope.$watch('layoutVm.currentState', current => {
|
|
if ($scope.name === 'portal mode') {
|
|
vm.isRoute = (current && current.indexOf('portalMode') === 0);
|
|
} else if (current && current.indexOf($scope.route) === 0) {
|
|
if (current.indexOf('schedules') === 0 && $scope.route === 'jobs') {
|
|
vm.isRoute = false;
|
|
} else {
|
|
vm.isRoute = true;
|
|
}
|
|
} else {
|
|
vm.isRoute = false;
|
|
}
|
|
});
|
|
|
|
vm.tooltip = {
|
|
popover: {
|
|
text: strings.get(`layout.${$scope.name}`),
|
|
on: 'mouseenter',
|
|
icon: $scope.iconClass,
|
|
position: 'right',
|
|
arrowHeight: 18
|
|
}
|
|
};
|
|
}
|
|
|
|
AtSideNavItemController.$inject = ['$scope', 'ComponentsStrings'];
|
|
|
|
function atSideNavItem () {
|
|
return {
|
|
restrict: 'E',
|
|
templateUrl,
|
|
require: ['^^atSideNav', '^^atLayout'],
|
|
controller: AtSideNavItemController,
|
|
controllerAs: 'vm',
|
|
link: atSideNavItemLink,
|
|
transclude: true,
|
|
scope: {
|
|
iconClass: '@',
|
|
name: '@',
|
|
route: '@',
|
|
systemAdminOnly: '@',
|
|
noTooltipOnCollapsed: '@'
|
|
}
|
|
};
|
|
}
|
|
|
|
export default atSideNavItem;
|