From 5bf0724bd04361f43826c74036d01b24e16cdf70 Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Mon, 11 Jun 2018 14:43:10 -0400 Subject: [PATCH 1/7] Changes "Cancel" button to read "Close" --- .../client/src/network-ui/network-details/details.controller.js | 2 +- .../client/src/network-ui/network-details/details.partial.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/awx/ui/client/src/network-ui/network-details/details.controller.js b/awx/ui/client/src/network-ui/network-details/details.controller.js index 4382ea5b64..36c05cf097 100644 --- a/awx/ui/client/src/network-ui/network-details/details.controller.js +++ b/awx/ui/client/src/network-ui/network-details/details.controller.js @@ -14,7 +14,7 @@ }; } $scope.codeMirror = new codemirror(); - $scope.formCancel = function(){ + $scope.formClose = function(){ $scope.$parent.$broadcast('awxNet-closeDetailsPanel'); }; $scope.strings = strings; diff --git a/awx/ui/client/src/network-ui/network-details/details.partial.html b/awx/ui/client/src/network-ui/network-details/details.partial.html index acb5df2894..ed30e056ad 100644 --- a/awx/ui/client/src/network-ui/network-details/details.partial.html +++ b/awx/ui/client/src/network-ui/network-details/details.partial.html @@ -40,7 +40,7 @@
- +
{{strings.get('details.SAVE_COMPLETE')}} From 0bc3332f68977b958dd34233fb017a09f6862bfb Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Mon, 11 Jun 2018 16:01:08 -0400 Subject: [PATCH 2/7] Changes console.logs to $log.debug for network UI --- .../client/src/network-ui/extract_messages.js | 2 +- awx/ui/client/src/network-ui/fsm.js | 3 ++- awx/ui/client/src/network-ui/move.fsm.js | 2 +- .../client/src/network-ui/network.ui.app.js | 1 - .../src/network-ui/network.ui.controller.js | 20 +++++++++---------- awx/ui/client/src/network-ui/test.fsm.js | 10 +++++----- .../src/network-ui/vendor/svg-crowbar.js | 6 +++--- .../src/shared/socket/socket.service.js | 2 +- 8 files changed, 23 insertions(+), 23 deletions(-) diff --git a/awx/ui/client/src/network-ui/extract_messages.js b/awx/ui/client/src/network-ui/extract_messages.js index aee32413de..80e96f09be 100755 --- a/awx/ui/client/src/network-ui/extract_messages.js +++ b/awx/ui/client/src/network-ui/extract_messages.js @@ -54,4 +54,4 @@ while(next_message !== undefined) { } -console.log(YAML.stringify(data)); +controller.log.debug(YAML.stringify(data)); diff --git a/awx/ui/client/src/network-ui/fsm.js b/awx/ui/client/src/network-ui/fsm.js index ffd833623d..3d43531c79 100644 --- a/awx/ui/client/src/network-ui/fsm.js +++ b/awx/ui/client/src/network-ui/fsm.js @@ -22,7 +22,7 @@ function NullChannel(from_controller, tracer) { NullChannel.prototype.send = function() { }; -function FSMController (scope, name, initial_state, tracer) { +function FSMController (scope, name, initial_state, tracer, log) { this.scope = scope; this.name = name; this.state = initial_state; @@ -32,6 +32,7 @@ function FSMController (scope, name, initial_state, tracer) { this.handling_message_type = 'start'; this.state.start(this); this.handling_message_type = null; + this.log = log; } exports.FSMController = FSMController; diff --git a/awx/ui/client/src/network-ui/move.fsm.js b/awx/ui/client/src/network-ui/move.fsm.js index 6744d8a91e..eaa72bab15 100644 --- a/awx/ui/client/src/network-ui/move.fsm.js +++ b/awx/ui/client/src/network-ui/move.fsm.js @@ -174,7 +174,7 @@ _Ready.prototype.onPasteDevice = function (controller, msg_type, message) { } scope.selected_devices.push(device); device.selected = true; - console.log(c_messages); + controller.log.debug(c_messages); scope.$emit('awxNet-addSearchOption', device); scope.send_control_message(new messages.MultipleMessage(controller.scope.client_id, c_messages)); controller.changeState(Selected2); diff --git a/awx/ui/client/src/network-ui/network.ui.app.js b/awx/ui/client/src/network-ui/network.ui.app.js index 3da725f7ff..9ebe5f32f9 100644 --- a/awx/ui/client/src/network-ui/network.ui.app.js +++ b/awx/ui/client/src/network-ui/network.ui.app.js @@ -5,7 +5,6 @@ import networkDetailsDirective from './network-details/main'; import networkZoomWidget from './zoom-widget/main'; import awxNetStrings from './network.ui.strings'; -//console.log = function () { }; var NetworkUIController = require('./network.ui.controller.js'); var cursor = require('./cursor.directive.js'); var router = require('./router.directive.js'); diff --git a/awx/ui/client/src/network-ui/network.ui.controller.js b/awx/ui/client/src/network-ui/network.ui.controller.js index a207471da6..8f9a8ae240 100644 --- a/awx/ui/client/src/network-ui/network.ui.controller.js +++ b/awx/ui/client/src/network-ui/network.ui.controller.js @@ -194,17 +194,17 @@ var NetworkUIController = function($scope, }; //Define the FSMs - $scope.hotkeys_controller = new fsm.FSMController($scope, "hotkeys_fsm", hotkeys.Start, $scope); - $scope.keybindings_controller = new fsm.FSMController($scope, "keybindings_fsm", keybindings.Start, $scope); - $scope.view_controller = new fsm.FSMController($scope, "view_fsm", view.Start, $scope); - $scope.move_controller = new fsm.FSMController($scope, "move_fsm", move.Start, $scope); - $scope.move_readonly_controller = new fsm.FSMController($scope, "move_readonly_fsm", move_readonly.Start, $scope); - $scope.details_panel_controller = new fsm.FSMController($scope, "details_panel_fsm", details_panel_fsm.Start, $scope); - $scope.buttons_controller = new fsm.FSMController($scope, "buttons_fsm", buttons.Start, $scope); - $scope.time_controller = new fsm.FSMController($scope, "time_fsm", time.Start, $scope); - $scope.test_controller = new fsm.FSMController($scope, "test_fsm", test_fsm.Start, $scope); + $scope.hotkeys_controller = new fsm.FSMController($scope, "hotkeys_fsm", hotkeys.Start, $scope, $log); + $scope.keybindings_controller = new fsm.FSMController($scope, "keybindings_fsm", keybindings.Start, $scope, $log); + $scope.view_controller = new fsm.FSMController($scope, "view_fsm", view.Start, $scope, $log); + $scope.move_controller = new fsm.FSMController($scope, "move_fsm", move.Start, $scope, $log); + $scope.move_readonly_controller = new fsm.FSMController($scope, "move_readonly_fsm", move_readonly.Start, $scope, $log); + $scope.details_panel_controller = new fsm.FSMController($scope, "details_panel_fsm", details_panel_fsm.Start, $scope, $log); + $scope.buttons_controller = new fsm.FSMController($scope, "buttons_fsm", buttons.Start, $scope, $log); + $scope.time_controller = new fsm.FSMController($scope, "time_fsm", time.Start, $scope, $log); + $scope.test_controller = new fsm.FSMController($scope, "test_fsm", test_fsm.Start, $scope, $log); - $scope.inventory_toolbox_controller = new fsm.FSMController($scope, "toolbox_fsm", toolbox_fsm.Start, $scope); + $scope.inventory_toolbox_controller = new fsm.FSMController($scope, "toolbox_fsm", toolbox_fsm.Start, $scope, $log); var toolboxTopMargin = $('.Networking-top').height(); var toolboxTitleMargin = toolboxTopMargin + 35; diff --git a/awx/ui/client/src/network-ui/test.fsm.js b/awx/ui/client/src/network-ui/test.fsm.js index 4867e92f59..8e0b19a6aa 100644 --- a/awx/ui/client/src/network-ui/test.fsm.js +++ b/awx/ui/client/src/network-ui/test.fsm.js @@ -117,7 +117,7 @@ _Reporting.prototype.start = function (controller) { new Date().toISOString(), controller.scope.version); controller.scope.test_results.push(test_result); - console.log(["Reporting test", test_result.name, test_result.id]); + controller.log.debug(["Reporting test", test_result.name, test_result.id]); controller.scope.send_test_message(new messages.TestResult(controller.scope.client_id, test_result.id, test_result.name, @@ -125,7 +125,7 @@ _Reporting.prototype.start = function (controller) { test_result.date, test_result.code_under_test)); if (typeof(window.__coverage__) !== "undefined" && window.__coverage__ !== null) { - console.log(["Reporting coverage", test_result.name, test_result.id]); + controller.log.debug(["Reporting coverage", test_result.name, test_result.id]); controller.scope.send_test_message(new messages.Coverage(controller.scope.client_id, window.__coverage__, test_result.id)); } controller.changeState(Loading); @@ -138,7 +138,7 @@ _Loading.prototype.start = function (controller) { if (controller.scope.current_tests.length === 0) { controller.changeState(Disabled); } else { - console.log("Starting test"); + controller.log.debug("Starting test"); controller.scope.reset_coverage(); controller.scope.current_test = controller.scope.current_tests.shift(); controller.scope.reset_toolboxes(); @@ -169,7 +169,7 @@ _Ready.prototype.start = function (controller) { var load_id = controller.scope.test_result_id_seq(); - console.log(["Reporting Load", load_id]); + controller.log.debug(["Reporting Load", load_id]); controller.scope.send_test_message(new messages.TestResult(controller.scope.client_id, load_id, "Load", @@ -177,7 +177,7 @@ _Ready.prototype.start = function (controller) { new Date().toISOString(), controller.scope.version)); if (typeof(window.__coverage__) !== "undefined" && window.__coverage__ !== null) { - console.log(["Reporting Load Coverage", load_id]); + controller.log.debug(["Reporting Load Coverage", load_id]); controller.scope.send_test_message(new messages.Coverage(controller.scope.client_id, window.__coverage__, load_id)); } diff --git a/awx/ui/client/src/network-ui/vendor/svg-crowbar.js b/awx/ui/client/src/network-ui/vendor/svg-crowbar.js index bba3093801..fd9e242eaf 100644 --- a/awx/ui/client/src/network-ui/vendor/svg-crowbar.js +++ b/awx/ui/client/src/network-ui/vendor/svg-crowbar.js @@ -30,7 +30,7 @@ function svg_crowbar () { documents.push(el.contentDocument); } } catch(err) { - console.log(err); + controller.log.debug(err); } }); @@ -40,7 +40,7 @@ function svg_crowbar () { documents.push(el.contentDocument); } } catch(err) { - console.log(err); + controller.log.debug(err); } }); @@ -124,7 +124,7 @@ function svg_crowbar () { button.textContent = "Download"; button.onclick = function() { - // console.log(el, d, i, sources) + // controller.log.debug(el, d, i, sources) download(d); }; diff --git a/awx/ui/client/src/shared/socket/socket.service.js b/awx/ui/client/src/shared/socket/socket.service.js index f58c2d6928..f8db80b977 100644 --- a/awx/ui/client/src/shared/socket/socket.service.js +++ b/awx/ui/client/src/shared/socket/socket.service.js @@ -150,7 +150,7 @@ export default if(this.socket){ this.socket.close(); delete this.socket; - console.log("Socket deleted: "+this.socket); + $log.debug("Socket deleted: "+this.socket); } }, subscribe: function(state){ From afb214b8d4c874ff8905b34279d73b81151fe4ae Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Thu, 14 Jun 2018 09:23:04 -0400 Subject: [PATCH 3/7] Hides the "Inventory" title on the inventory toolbox when toggling --- awx/ui/client/src/network-ui/inventory_toolbox.partial.svg | 1 + 1 file changed, 1 insertion(+) diff --git a/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg b/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg index 88d4c67cfe..348c0b20e3 100644 --- a/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg +++ b/awx/ui/client/src/network-ui/inventory_toolbox.partial.svg @@ -91,6 +91,7 @@ {{toolbox.name}} From c02c92890c0c244aa199e6b8f084cbdab0defb45 Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Tue, 19 Jun 2018 12:59:12 -0700 Subject: [PATCH 4/7] Enables smart inventories to be shown on the network UI --- .../list/inventory-list.controller.js | 7 ++- .../src/inventories-hosts/inventories/main.js | 8 ++- .../client/src/network-ui/extract_messages.js | 2 +- .../client/src/network-ui/network-nav/main.js | 50 +------------------ .../network-nav/network.nav.controller.js | 10 ++-- .../src/network-ui/network.ui.controller.js | 4 +- .../client/src/network-ui/network.ui.route.js | 34 +++++++++++++ .../src/network-ui/network.ui.strings.js | 2 +- .../src/network-ui/vendor/svg-crowbar.js | 6 +-- 9 files changed, 59 insertions(+), 64 deletions(-) create mode 100644 awx/ui/client/src/network-ui/network.ui.route.js diff --git a/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js b/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js index f3f0736740..a63fe5731f 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/list/inventory-list.controller.js @@ -86,7 +86,12 @@ function InventoriesList($scope, }; $scope.goToGraph = function(inventory){ - $state.go('inventories.edit.networking', {inventory_id: inventory.id, inventory_name: inventory.name}); + if(inventory.kind && inventory.kind === 'smart') { + $state.go('inventories.editSmartInventory.networking', {smartinventory_id: inventory.id, inventory_name: inventory.name}); + } + else { + $state.go('inventories.edit.networking', {inventory_id: inventory.id, inventory_name: inventory.name}); + } }; $scope.editInventory = function (inventory, reload) { diff --git a/awx/ui/client/src/inventories-hosts/inventories/main.js b/awx/ui/client/src/inventories-hosts/inventories/main.js index 20feecfe10..cf13eaacd5 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/main.js +++ b/awx/ui/client/src/inventories-hosts/inventories/main.js @@ -46,6 +46,7 @@ import groupNestedGroupsAssociateRoute from './related/groups/related/nested-gro import nestedHostsAssociateRoute from './related/groups/related/nested-hosts/group-nested-hosts-associate.route'; import nestedHostsAddRoute from './related/groups/related/nested-hosts/group-nested-hosts-add.route'; import hostCompletedJobsRoute from '~features/jobs/routes/hostCompletedJobs.route.js'; +import networkUIRoute from '../../network-ui/network.ui.route.js'; export default angular.module('inventory', [ @@ -294,6 +295,9 @@ angular.module('inventory', [ let relatedHostCompletedJobs = _.cloneDeep(hostCompletedJobsRoute); relatedHostCompletedJobs.name = 'inventories.edit.hosts.edit.completed_jobs'; + let smartInvNetworkUI = _.cloneDeep(networkUIRoute); + smartInvNetworkUI.name = 'inventories.editSmartInventory.networking'; + return Promise.all([ standardInventoryAdd, standardInventoryEdit, @@ -342,7 +346,9 @@ angular.module('inventory', [ stateExtender.buildDefinition(nestedHostsAssociateRoute), stateExtender.buildDefinition(nestedGroupsAdd), stateExtender.buildDefinition(nestedHostsAddRoute), - stateExtender.buildDefinition(relatedHostCompletedJobs) + stateExtender.buildDefinition(relatedHostCompletedJobs), + stateExtender.buildDefinition(networkUIRoute), + stateExtender.buildDefinition(smartInvNetworkUI) ]) }; }); diff --git a/awx/ui/client/src/network-ui/extract_messages.js b/awx/ui/client/src/network-ui/extract_messages.js index 80e96f09be..aee32413de 100755 --- a/awx/ui/client/src/network-ui/extract_messages.js +++ b/awx/ui/client/src/network-ui/extract_messages.js @@ -54,4 +54,4 @@ while(next_message !== undefined) { } -controller.log.debug(YAML.stringify(data)); +console.log(YAML.stringify(data)); diff --git a/awx/ui/client/src/network-ui/network-nav/main.js b/awx/ui/client/src/network-ui/network-nav/main.js index facbb7cd7d..8561a2017d 100644 --- a/awx/ui/client/src/network-ui/network-nav/main.js +++ b/awx/ui/client/src/network-ui/network-nav/main.js @@ -1,54 +1,6 @@ -import NetworkingController from './network.nav.controller'; - const MODULE_NAME = 'at.features.networking'; -const networkNavTemplate = require('~network-ui/network-nav/network.nav.view.html'); - -function NetworkingResolve ($stateParams, resourceData) { - const resolve = { - inventory: { - id: $stateParams.inventory_id, - name: $stateParams.inventory_name - }, - canEdit: resourceData.data.summary_fields.user_capabilities.edit - }; - if (!resolve.inventory.name) { - resolve.inventory.name = resourceData.data.name; - } - return resolve; -} - -NetworkingResolve.$inject = [ - '$stateParams', - 'resourceData' -]; -function NetworkingRun ($stateExtender, strings) { - $stateExtender.addState({ - name: 'inventories.edit.networking', - route: '/networking', - ncyBreadcrumb: { - label: strings.get('state.BREADCRUMB_LABEL') - }, - views: { - 'networking@': { - templateUrl: networkNavTemplate, - controller: NetworkingController, - controllerAs: 'vm' - } - }, - resolve: { - resolvedModels: NetworkingResolve - } - }); -} - -NetworkingRun.$inject = [ - '$stateExtender', - 'awxNetStrings' -]; - angular - .module(MODULE_NAME, []) - .run(NetworkingRun); + .module(MODULE_NAME, []); export default MODULE_NAME; diff --git a/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js b/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js index 1e0f9573c4..b9103431a8 100644 --- a/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js +++ b/awx/ui/client/src/network-ui/network-nav/network.nav.controller.js @@ -1,15 +1,12 @@ /* eslint-disable */ -function NetworkingController (models, $state, $scope, strings) { +function NetworkingController (canEdit, inventory, $state, $scope, strings) { const vm = this || {}; - const { - inventory - } = models; vm.networkUIisOpen = true; vm.strings = strings; vm.panelTitle = `${strings.get('state.BREADCRUMB_LABEL')} | ${inventory.name}`; vm.hostDetail = {}; - vm.canEdit = models.canEdit; + vm.canEdit = canEdit; vm.rightPanelIsExpanded = false; vm.leftPanelIsExpanded = true; vm.keyPanelExpanded = false; @@ -131,7 +128,8 @@ function NetworkingController (models, $state, $scope, strings) { } NetworkingController.$inject = [ - 'resolvedModels', + 'canEdit', + 'inventory', '$state', '$scope', 'awxNetStrings', diff --git a/awx/ui/client/src/network-ui/network.ui.controller.js b/awx/ui/client/src/network-ui/network.ui.controller.js index 8f9a8ae240..70114aeae1 100644 --- a/awx/ui/client/src/network-ui/network.ui.controller.js +++ b/awx/ui/client/src/network-ui/network.ui.controller.js @@ -42,7 +42,7 @@ var NetworkUIController = function($scope, $scope.topology_id = 0; // Create a web socket to connect to the backend server - $scope.inventory_id = $state.params.inventory_id; + $scope.inventory_id = $scope.$parent.$resolve.inventory.id; var protocol = null; @@ -153,7 +153,7 @@ var NetworkUIController = function($scope, from_y: 0, to_x: 0, to_y: 0}; - $scope.canEdit = $scope.$parent.$resolve.resolvedModels.canEdit; + $scope.canEdit = $scope.$parent.$resolve.canEdit; $scope.strings = awxNetStrings; $scope.send_trace_message = function (message) { if (!$scope.recording) { diff --git a/awx/ui/client/src/network-ui/network.ui.route.js b/awx/ui/client/src/network-ui/network.ui.route.js new file mode 100644 index 0000000000..3c158b04f0 --- /dev/null +++ b/awx/ui/client/src/network-ui/network.ui.route.js @@ -0,0 +1,34 @@ +import { N_ } from '../i18n'; +import NetworkingController from './network-nav/network.nav.controller'; + +const networkNavTemplate = require('~network-ui/network-nav/network.nav.view.html'); + +export default { + name: 'inventories.edit.networking', + route: '/networking', + ncyBreadcrumb: { + label: N_("INVENTORIES") + }, + views: { + 'networking@': { + templateUrl: networkNavTemplate, + controller: NetworkingController, + controllerAs: 'vm' + } + }, + resolve: { + inventory: ['$stateParams', 'resourceData', + function($stateParams, resourceData){ + let inventory = { + name: $stateParams.inventory_name || resourceData.data.name, + id: $stateParams.inventory_id || $stateParams.smartinventory_id + }; + return inventory; + }], + canEdit: ['$stateParams', 'resourceData', + function($stateParams, resourceData){ + return resourceData.data.summary_fields.user_capabilities.edit; + } + ] + } +}; \ No newline at end of file diff --git a/awx/ui/client/src/network-ui/network.ui.strings.js b/awx/ui/client/src/network-ui/network.ui.strings.js index 4b93ea90a6..3a847334a1 100644 --- a/awx/ui/client/src/network-ui/network.ui.strings.js +++ b/awx/ui/client/src/network-ui/network.ui.strings.js @@ -46,7 +46,7 @@ function awxNetStrings (BaseString) { DESCRIPTION: t.s('Description'), HOST_POPOVER: t.s('Provide a host name, ip address, or ip address:port. Examples include:'), SAVE_COMPLETE: t.s('Save Complete'), - CANCEL: t.s('Cancel') + CLOSE: t.s('Close') }; } diff --git a/awx/ui/client/src/network-ui/vendor/svg-crowbar.js b/awx/ui/client/src/network-ui/vendor/svg-crowbar.js index fd9e242eaf..bba3093801 100644 --- a/awx/ui/client/src/network-ui/vendor/svg-crowbar.js +++ b/awx/ui/client/src/network-ui/vendor/svg-crowbar.js @@ -30,7 +30,7 @@ function svg_crowbar () { documents.push(el.contentDocument); } } catch(err) { - controller.log.debug(err); + console.log(err); } }); @@ -40,7 +40,7 @@ function svg_crowbar () { documents.push(el.contentDocument); } } catch(err) { - controller.log.debug(err); + console.log(err); } }); @@ -124,7 +124,7 @@ function svg_crowbar () { button.textContent = "Download"; button.onclick = function() { - // controller.log.debug(el, d, i, sources) + // console.log(el, d, i, sources) download(d); }; From 2566a5f14fd95f21a19f8c88cb5ae50031554aeb Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Tue, 19 Jun 2018 14:43:22 -0700 Subject: [PATCH 5/7] Adds a button to the inventory form that links the user directly to hte Network UI --- .../src/inventories-hosts/inventories/inventory.list.js | 6 +++--- .../edit/smart-inventory-edit.controller.js | 4 ++++ .../inventories/smart-inventory/smart-inventory.form.js | 9 ++++++++- .../standard-inventory/edit/inventory-edit.controller.js | 4 ++++ .../inventories/standard-inventory/inventory.form.js | 9 +++++++-- awx/ui/client/src/network-ui/network.ui.strings.js | 8 ++++++-- 6 files changed, 32 insertions(+), 8 deletions(-) diff --git a/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js b/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js index 4e8a0efc61..8d6b8b7219 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js +++ b/awx/ui/client/src/inventories-hosts/inventories/inventory.list.js @@ -5,7 +5,7 @@ *************************************************/ -export default ['i18n', function(i18n) { +export default ['i18n', 'awxNetStrings' , function(i18n, awxNetStrings) { return { name: 'inventories', @@ -102,9 +102,9 @@ export default ['i18n', function(i18n) { ngShow: '!inventory.pending_deletion && inventory.summary_fields.user_capabilities.edit' }, network: { - label: i18n._('Network Visualization'), + label: awxNetStrings.get('feature.ACTION_BUTTON'), ngClick: 'goToGraph(inventory)', - awToolTip: i18n._('Network Visualization'), + awToolTip: awxNetStrings.get('feature.ACTION_BUTTON'), dataPlacement: 'top', ngShow: '!inventory.pending_deletion' }, diff --git a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js index 7af348d0d1..be09299704 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/edit/smart-inventory-edit.controller.js @@ -95,6 +95,10 @@ function SmartInventoryEdit($scope, $location, }); }; + $scope.goToGraph = function(){ + $state.go('inventories.editSmartInventory.networking', {smartinventory_id: $scope.inventory_obj.id, inventory_name: $scope.inventory_obj.name}); + }; + $scope.formCancel = function() { $state.go('inventories'); }; diff --git a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js index 01a49b008b..62a58e4023 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js +++ b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js @@ -4,7 +4,7 @@ * All Rights Reserved *************************************************/ -export default ['i18n', function(i18n) { +export default ['i18n', 'awxNetStrings', function(i18n, awxNetStrings) { return { addTitle: i18n._('NEW SMART INVENTORY'), @@ -156,6 +156,13 @@ export default ['i18n', function(i18n) { skipGenerator: true, ngClick: "$state.go('inventories.editSmartInventory.completed_jobs')" } + }, + relatedButtons: { + network: { + ngClick: 'goToGraph()', + label: awxNetStrings.get('feature.ACTION_BUTTON'), + class: 'Form-primaryButton' + } } }; diff --git a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js index 8f96ae9f6f..65579c96b9 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js +++ b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/edit/inventory-edit.controller.js @@ -99,6 +99,10 @@ function InventoriesEdit($scope, $location, }); }; + $scope.goToGraph = function(){ + $state.go('inventories.edit.networking', {inventory_id: $scope.inventory_obj.id, inventory_name: $scope.inventory_obj.name}); + }; + $scope.formCancel = function() { $state.go('inventories'); }; diff --git a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js index 1c9f1dd13d..ea3d67d025 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js +++ b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js @@ -10,8 +10,8 @@ * @description This form is for adding/editing an inventory */ -export default ['i18n', -function(i18n) { +export default ['i18n', 'awxNetStrings', +function(i18n, awxNetStrings) { return { addTitle: i18n._('NEW INVENTORY'), @@ -179,6 +179,11 @@ function(i18n) { ngShow: 'is_insights && mode !== "add" && canRemediate', label: i18n._('Remediate Inventory'), class: 'Form-primaryButton' + }, + network: { + ngClick: 'goToGraph()', + label: awxNetStrings.get('feature.ACTION_BUTTON'), + class: 'Form-primaryButton' } } diff --git a/awx/ui/client/src/network-ui/network.ui.strings.js b/awx/ui/client/src/network-ui/network.ui.strings.js index 3a847334a1..cc11a44153 100644 --- a/awx/ui/client/src/network-ui/network.ui.strings.js +++ b/awx/ui/client/src/network-ui/network.ui.strings.js @@ -4,6 +4,10 @@ function awxNetStrings (BaseString) { const { t } = this; const ns = this.awxNet; + ns.feature = { + ACTION_BUTTON: t.s('Network Visualizer') + }; + ns.state = { BREADCRUMB_LABEL: t.s('INVENTORIES') }; @@ -13,7 +17,7 @@ function awxNetStrings (BaseString) { }; ns.actions = { - ACTIONS: t.s('Actions'), + ACTIONS: t.s('ACTIONS'), EXPORT: t.s('Export'), EXPAND_PANEL: t.s('Expand Panel'), COLLAPSE_PANEL: t.s('Collapse Panel') @@ -29,7 +33,7 @@ function awxNetStrings (BaseString) { }; ns.search = { - SEARCH: t.s('Search'), + SEARCH: t.s('SEARCH'), HOST: t.s('Host'), SWITCH: t.s('Switch'), ROUTER: t.s('Router'), From f3fa3afe933b93e9b542fe4839b8d0ca29ae307b Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Wed, 20 Jun 2018 11:48:42 -0700 Subject: [PATCH 6/7] Changes title on the Network UI to "Network Visualizer | " --- awx/ui/client/src/network-ui/network.ui.strings.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awx/ui/client/src/network-ui/network.ui.strings.js b/awx/ui/client/src/network-ui/network.ui.strings.js index cc11a44153..c82fcdc623 100644 --- a/awx/ui/client/src/network-ui/network.ui.strings.js +++ b/awx/ui/client/src/network-ui/network.ui.strings.js @@ -9,7 +9,7 @@ function awxNetStrings (BaseString) { }; ns.state = { - BREADCRUMB_LABEL: t.s('INVENTORIES') + BREADCRUMB_LABEL: t.s('NETWORK VISUALIZER') }; ns.toolbox = { From ccb7758b377eddc21be687ec68ce5a70f6917f07 Mon Sep 17 00:00:00 2001 From: Jared Tabor Date: Wed, 20 Jun 2018 15:27:40 -0700 Subject: [PATCH 7/7] Changes the ngShow for the Network Visualizer and Remediate Inventory buttons to only show them on the Details tab (or in the case of Remediate inventory, only show it on the Details or Hosts tab). --- .../smart-inventory/smart-inventory.form.js | 3 ++- .../standard-inventory/inventory.form.js | 13 +++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js index 62a58e4023..edd6846619 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js +++ b/awx/ui/client/src/inventories-hosts/inventories/smart-inventory/smart-inventory.form.js @@ -161,7 +161,8 @@ export default ['i18n', 'awxNetStrings', function(i18n, awxNetStrings) { network: { ngClick: 'goToGraph()', label: awxNetStrings.get('feature.ACTION_BUTTON'), - class: 'Form-primaryButton' + class: 'Form-primaryButton', + ngShow: "$state.is('inventories.editSmartInventory')" } } diff --git a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js index ea3d67d025..9219c91fe4 100644 --- a/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js +++ b/awx/ui/client/src/inventories-hosts/inventories/standard-inventory/inventory.form.js @@ -174,16 +174,17 @@ function(i18n, awxNetStrings) { } }, relatedButtons: { - remediate_inventory: { - ngClick: 'remediateInventory(id, insights_credential)', - ngShow: 'is_insights && mode !== "add" && canRemediate', - label: i18n._('Remediate Inventory'), - class: 'Form-primaryButton' - }, network: { ngClick: 'goToGraph()', + ngShow: "$state.is('inventories.edit')", label: awxNetStrings.get('feature.ACTION_BUTTON'), class: 'Form-primaryButton' + }, + remediate_inventory: { + ngClick: 'remediateInventory(id, insights_credential)', + ngShow: "is_insights && mode !== 'add' && canRemediate && ($state.is('inventories.edit') || $state.is('inventories.edit.hosts'))", + label: i18n._('Remediate Inventory'), + class: 'Form-primaryButton' } }