From 3f509d5ae8218f58dcbdd73b8683f157bd17ffa6 Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Thu, 19 Apr 2018 18:27:15 -0400 Subject: [PATCH 1/3] fix new tab in router --- .../lib/components/layout/side-nav-item.directive.js | 8 ++------ .../lib/components/layout/side-nav-item.partial.html | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/awx/ui/client/lib/components/layout/side-nav-item.directive.js b/awx/ui/client/lib/components/layout/side-nav-item.directive.js index ab52d74964..d4b11bf716 100644 --- a/awx/ui/client/lib/components/layout/side-nav-item.directive.js +++ b/awx/ui/client/lib/components/layout/side-nav-item.directive.js @@ -4,7 +4,7 @@ function atSideNavItemLink (scope, element, attrs, ctrl) { [scope.navVm, scope.layoutVm] = ctrl; } -function AtSideNavItemController ($state, $scope, strings) { +function AtSideNavItemController ($scope, strings) { const vm = this || {}; $scope.$watch('layoutVm.currentState', current => { @@ -21,10 +21,6 @@ function AtSideNavItemController ($state, $scope, strings) { } }); - vm.go = () => { - $state.go($scope.route, {}, { reload: true }); - }; - vm.tooltip = { popover: { text: strings.get(`layout.${$scope.name}`), @@ -36,7 +32,7 @@ function AtSideNavItemController ($state, $scope, strings) { }; } -AtSideNavItemController.$inject = ['$state', '$scope', 'ComponentsStrings']; +AtSideNavItemController.$inject = ['$scope', 'ComponentsStrings']; function atSideNavItem () { return { diff --git a/awx/ui/client/lib/components/layout/side-nav-item.partial.html b/awx/ui/client/lib/components/layout/side-nav-item.partial.html index cea8489b5c..ca8ff13812 100644 --- a/awx/ui/client/lib/components/layout/side-nav-item.partial.html +++ b/awx/ui/client/lib/components/layout/side-nav-item.partial.html @@ -1,4 +1,4 @@ -
@@ -7,4 +7,4 @@ {{ layoutVm.getString(name) }} -
+ From ee137b8b4d7b4959901ec77cd7949630cab75991 Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Fri, 20 Apr 2018 16:00:57 -0400 Subject: [PATCH 2/3] fix open in new tab for credentials and inventory scripts --- awx/ui/client/src/credential-types/main.js | 25 +++++++++++++++----- awx/ui/client/src/inventory-scripts/main.js | 26 ++++++++++++++++----- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/awx/ui/client/src/credential-types/main.js b/awx/ui/client/src/credential-types/main.js index 0f2ce9f186..0ba1ccff24 100644 --- a/awx/ui/client/src/credential-types/main.js +++ b/awx/ui/client/src/credential-types/main.js @@ -25,10 +25,8 @@ angular.module('credentialTypes', [ function($stateProvider, stateDefinitionsProvider) { let stateDefinitions = stateDefinitionsProvider.$get(); - $stateProvider.state({ - name: 'credentialTypes.**', - url: '/credential_type', - lazyLoad: () => stateDefinitions.generateTree({ + function generateStateTree() { + let credentialTypesTree = stateDefinitions.generateTree({ parent: 'credentialTypes', modes: ['add', 'edit'], list: 'CredentialTypesList', @@ -45,7 +43,22 @@ angular.module('credentialTypes', [ ncyBreadcrumb: { label: N_('CREDENTIAL TYPES') } - }) - }); + }); + return Promise.all([ + credentialTypesTree + ]).then((generated) => { + return { + states: _.reduce(generated, (result, definition) => { + return result.concat(definition.states); + }, []) + }; + }); + } + let stateTree = { + name: 'credentialTypes.**', + url: '/credential_types', + lazyLoad: () => generateStateTree() + }; + $stateProvider.state(stateTree); } ]); diff --git a/awx/ui/client/src/inventory-scripts/main.js b/awx/ui/client/src/inventory-scripts/main.js index 4854878bca..bc57686d0b 100644 --- a/awx/ui/client/src/inventory-scripts/main.js +++ b/awx/ui/client/src/inventory-scripts/main.js @@ -25,10 +25,8 @@ angular.module('inventoryScripts', [ function($stateProvider, stateDefinitionsProvider) { let stateDefinitions = stateDefinitionsProvider.$get(); - $stateProvider.state({ - name: 'inventoryScripts.**', - url: '/inventory_script', - lazyLoad: () => stateDefinitions.generateTree({ + function generateStateTree() { + let inventoryScriptTree = stateDefinitions.generateTree({ parent: 'inventoryScripts', modes: ['add', 'edit'], list: 'InventoryScriptsList', @@ -66,7 +64,23 @@ angular.module('inventoryScripts', [ ncyBreadcrumb: { label: N_('INVENTORY SCRIPTS') } - }) - }); + }); + + return Promise.all([ + inventoryScriptTree + ]).then((generated) => { + return { + states: _.reduce(generated, (result, definition) => { + return result.concat(definition.states); + }, []) + }; + }); + } + let stateTree = { + name: 'inventoryScripts.**', + url: '/inventory_scripts', + lazyLoad: () => generateStateTree() + }; + $stateProvider.state(stateTree); } ]); From a1541d679ce25597a83f29558ddb7726c93791cc Mon Sep 17 00:00:00 2001 From: John Mitchell Date: Mon, 23 Apr 2018 12:41:07 -0400 Subject: [PATCH 3/3] remove obsolete .go unit test --- awx/ui/test/unit/components/side-nav-item.unit.js | 7 ------- 1 file changed, 7 deletions(-) diff --git a/awx/ui/test/unit/components/side-nav-item.unit.js b/awx/ui/test/unit/components/side-nav-item.unit.js index 455fffd4c9..0aa0bb63ef 100644 --- a/awx/ui/test/unit/components/side-nav-item.unit.js +++ b/awx/ui/test/unit/components/side-nav-item.unit.js @@ -44,13 +44,6 @@ describe('Components | Side Nav Item', () => { expect(SideNavItemCtrl.isRoute).toBe(false); }); - it('go() should call $state.go()', angular.mock.inject((_$state_) => { - spyOn(_$state_, 'go'); - SideNavItemCtrl.go(); - expect(_$state_.go).toHaveBeenCalled(); - expect(_$state_.go).toHaveBeenCalledWith('dashboard', jasmine.any(Object), jasmine.any(Object)); - })); - it('should load name, icon, and route from scope', () => { expect(SideNavItem.isolateScope().name).toBeDefined(); expect(SideNavItem.isolateScope().iconClass).toBeDefined();