mirror of
https://github.com/ansible/awx.git
synced 2026-05-08 01:47:35 -02:30
Enables smart inventories to be shown on the network UI
This commit is contained in:
@@ -86,7 +86,12 @@ function InventoriesList($scope,
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.goToGraph = function(inventory){
|
$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) {
|
$scope.editInventory = function (inventory, reload) {
|
||||||
|
|||||||
@@ -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 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 nestedHostsAddRoute from './related/groups/related/nested-hosts/group-nested-hosts-add.route';
|
||||||
import hostCompletedJobsRoute from '~features/jobs/routes/hostCompletedJobs.route.js';
|
import hostCompletedJobsRoute from '~features/jobs/routes/hostCompletedJobs.route.js';
|
||||||
|
import networkUIRoute from '../../network-ui/network.ui.route.js';
|
||||||
|
|
||||||
export default
|
export default
|
||||||
angular.module('inventory', [
|
angular.module('inventory', [
|
||||||
@@ -294,6 +295,9 @@ angular.module('inventory', [
|
|||||||
let relatedHostCompletedJobs = _.cloneDeep(hostCompletedJobsRoute);
|
let relatedHostCompletedJobs = _.cloneDeep(hostCompletedJobsRoute);
|
||||||
relatedHostCompletedJobs.name = 'inventories.edit.hosts.edit.completed_jobs';
|
relatedHostCompletedJobs.name = 'inventories.edit.hosts.edit.completed_jobs';
|
||||||
|
|
||||||
|
let smartInvNetworkUI = _.cloneDeep(networkUIRoute);
|
||||||
|
smartInvNetworkUI.name = 'inventories.editSmartInventory.networking';
|
||||||
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
standardInventoryAdd,
|
standardInventoryAdd,
|
||||||
standardInventoryEdit,
|
standardInventoryEdit,
|
||||||
@@ -342,7 +346,9 @@ angular.module('inventory', [
|
|||||||
stateExtender.buildDefinition(nestedHostsAssociateRoute),
|
stateExtender.buildDefinition(nestedHostsAssociateRoute),
|
||||||
stateExtender.buildDefinition(nestedGroupsAdd),
|
stateExtender.buildDefinition(nestedGroupsAdd),
|
||||||
stateExtender.buildDefinition(nestedHostsAddRoute),
|
stateExtender.buildDefinition(nestedHostsAddRoute),
|
||||||
stateExtender.buildDefinition(relatedHostCompletedJobs)
|
stateExtender.buildDefinition(relatedHostCompletedJobs),
|
||||||
|
stateExtender.buildDefinition(networkUIRoute),
|
||||||
|
stateExtender.buildDefinition(smartInvNetworkUI)
|
||||||
])
|
])
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -54,4 +54,4 @@ while(next_message !== undefined) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
controller.log.debug(YAML.stringify(data));
|
console.log(YAML.stringify(data));
|
||||||
|
|||||||
@@ -1,54 +1,6 @@
|
|||||||
import NetworkingController from './network.nav.controller';
|
|
||||||
|
|
||||||
const MODULE_NAME = 'at.features.networking';
|
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
|
angular
|
||||||
.module(MODULE_NAME, [])
|
.module(MODULE_NAME, []);
|
||||||
.run(NetworkingRun);
|
|
||||||
|
|
||||||
export default MODULE_NAME;
|
export default MODULE_NAME;
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
function NetworkingController (models, $state, $scope, strings) {
|
function NetworkingController (canEdit, inventory, $state, $scope, strings) {
|
||||||
const vm = this || {};
|
const vm = this || {};
|
||||||
|
|
||||||
const {
|
|
||||||
inventory
|
|
||||||
} = models;
|
|
||||||
vm.networkUIisOpen = true;
|
vm.networkUIisOpen = true;
|
||||||
vm.strings = strings;
|
vm.strings = strings;
|
||||||
vm.panelTitle = `${strings.get('state.BREADCRUMB_LABEL')} | ${inventory.name}`;
|
vm.panelTitle = `${strings.get('state.BREADCRUMB_LABEL')} | ${inventory.name}`;
|
||||||
vm.hostDetail = {};
|
vm.hostDetail = {};
|
||||||
vm.canEdit = models.canEdit;
|
vm.canEdit = canEdit;
|
||||||
vm.rightPanelIsExpanded = false;
|
vm.rightPanelIsExpanded = false;
|
||||||
vm.leftPanelIsExpanded = true;
|
vm.leftPanelIsExpanded = true;
|
||||||
vm.keyPanelExpanded = false;
|
vm.keyPanelExpanded = false;
|
||||||
@@ -131,7 +128,8 @@ function NetworkingController (models, $state, $scope, strings) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
NetworkingController.$inject = [
|
NetworkingController.$inject = [
|
||||||
'resolvedModels',
|
'canEdit',
|
||||||
|
'inventory',
|
||||||
'$state',
|
'$state',
|
||||||
'$scope',
|
'$scope',
|
||||||
'awxNetStrings',
|
'awxNetStrings',
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ var NetworkUIController = function($scope,
|
|||||||
$scope.topology_id = 0;
|
$scope.topology_id = 0;
|
||||||
// Create a web socket to connect to the backend server
|
// 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;
|
var protocol = null;
|
||||||
|
|
||||||
@@ -153,7 +153,7 @@ var NetworkUIController = function($scope,
|
|||||||
from_y: 0,
|
from_y: 0,
|
||||||
to_x: 0,
|
to_x: 0,
|
||||||
to_y: 0};
|
to_y: 0};
|
||||||
$scope.canEdit = $scope.$parent.$resolve.resolvedModels.canEdit;
|
$scope.canEdit = $scope.$parent.$resolve.canEdit;
|
||||||
$scope.strings = awxNetStrings;
|
$scope.strings = awxNetStrings;
|
||||||
$scope.send_trace_message = function (message) {
|
$scope.send_trace_message = function (message) {
|
||||||
if (!$scope.recording) {
|
if (!$scope.recording) {
|
||||||
|
|||||||
34
awx/ui/client/src/network-ui/network.ui.route.js
Normal file
34
awx/ui/client/src/network-ui/network.ui.route.js
Normal 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;
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -46,7 +46,7 @@ function awxNetStrings (BaseString) {
|
|||||||
DESCRIPTION: t.s('Description'),
|
DESCRIPTION: t.s('Description'),
|
||||||
HOST_POPOVER: t.s('Provide a host name, ip address, or ip address:port. Examples include:'),
|
HOST_POPOVER: t.s('Provide a host name, ip address, or ip address:port. Examples include:'),
|
||||||
SAVE_COMPLETE: t.s('Save Complete'),
|
SAVE_COMPLETE: t.s('Save Complete'),
|
||||||
CANCEL: t.s('Cancel')
|
CLOSE: t.s('Close')
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ function svg_crowbar () {
|
|||||||
documents.push(el.contentDocument);
|
documents.push(el.contentDocument);
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
controller.log.debug(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ function svg_crowbar () {
|
|||||||
documents.push(el.contentDocument);
|
documents.push(el.contentDocument);
|
||||||
}
|
}
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
controller.log.debug(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -124,7 +124,7 @@ function svg_crowbar () {
|
|||||||
button.textContent = "Download";
|
button.textContent = "Download";
|
||||||
|
|
||||||
button.onclick = function() {
|
button.onclick = function() {
|
||||||
// controller.log.debug(el, d, i, sources)
|
// console.log(el, d, i, sources)
|
||||||
download(d);
|
download(d);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user