Enables smart inventories to be shown on the network UI

This commit is contained in:
Jared Tabor 2018-06-19 12:59:12 -07:00
parent afb214b8d4
commit c02c92890c
9 changed files with 59 additions and 64 deletions

View File

@ -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) {

View File

@ -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)
])
};
});

View File

@ -54,4 +54,4 @@ while(next_message !== undefined) {
}
controller.log.debug(YAML.stringify(data));
console.log(YAML.stringify(data));

View File

@ -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;

View File

@ -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',

View File

@ -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) {

View File

@ -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;
}
]
}
};

View File

@ -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')
};
}

View File

@ -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);
};