adding related-host-add/edit routes for inventories

This commit is contained in:
jaredevantabor
2017-04-13 15:25:56 -07:00
committed by Jared Tabor
parent 9131ee59a2
commit 62fafc9870
9 changed files with 78 additions and 32 deletions

View File

@@ -1,5 +1,6 @@
<div class="tab-pane" id="inventories-panel">
<div ui-view="groupForm"></div>
<div ui-view="hostForm"></div>
<div ui-view="form"></div>
<div ng-cloak id="htmlTemplate" class="Panel">
<div class="row Form-tabRow">

View File

@@ -11,9 +11,10 @@
*/
export default ['i18n', 'buildGroupsListState', 'buildGroupsAddState',
'buildGroupsEditState', 'buildHostListState',
'buildGroupsEditState', 'buildHostListState', 'buildHostAddState',
'buildHostEditState',
function(i18n, buildGroupsListState, buildGroupsAddState, buildGroupsEditState,
buildHostListState) {
buildHostListState, buildHostAddState, buildHostEditState) {
return {
addTitle: i18n._('NEW INVENTORY'),
@@ -149,8 +150,8 @@ function(i18n, buildGroupsListState, buildGroupsAddState, buildGroupsEditState,
title: i18n._('Hosts'),
iterator: 'host',
listState: buildHostListState,
// addState: buildGroupsAddState,
// editState: buildGroupsEditState
addState: buildHostAddState,
editState: buildHostEditState
},
inventory_sources: {
name: 'inventory_sources',

View File

@@ -0,0 +1,46 @@
/*************************************************
* Copyright (c) 2017 Ansible, Inc.
*
* All Rights Reserved
*************************************************/
import RelatedHostAddController from './host-add.controller';
export default ['$stateExtender', 'templateUrl', '$injector',
function($stateExtender, templateUrl, $injector){
var val = function(field, formStateDefinition, params) {
let state,
list = field.include ? $injector.get(field.include) : field,
breadcrumbLabel = (field.iterator.replace('_', ' ') + 's').toUpperCase(),
stateConfig = {
name: `${formStateDefinition.name}.${list.iterator}s.add`,
url: `/add`,
ncyBreadcrumb: {
parent: `${formStateDefinition.name}`,
label: `${breadcrumbLabel}`
},
views: {
'hostForm@inventories': {
templateProvider: function(GenerateForm, RelatedHostsFormDefinition) {
let form = RelatedHostsFormDefinition;
return GenerateForm.buildHTML(form, {
mode: 'add',
related: false
});
},
controller: RelatedHostAddController
}
},
resolve: {
'FormDefinition': [params.form, function(definition) {
return definition;
}]
}
};
state = $stateExtender.buildDefinition(stateConfig);
return state;
};
return val;
}
];

View File

@@ -4,9 +4,9 @@
* All Rights Reserved
*************************************************/
export default ['$state', '$stateParams', '$scope', 'HostForm', 'ParseTypeChange',
export default ['$state', '$stateParams', '$scope', 'RelatedHostsFormDefinition', 'ParseTypeChange',
'GenerateForm', 'HostManageService', 'rbacUiControlService', 'GetBasePath', 'ToJSON',
function($state, $stateParams, $scope, HostForm, ParseTypeChange,
function($state, $stateParams, $scope, RelatedHostsFormDefinition, ParseTypeChange,
GenerateForm, HostManageService, rbacUiControlService, GetBasePath, ToJSON) {
init();
@@ -21,7 +21,7 @@ export default ['$state', '$stateParams', '$scope', 'HostForm', 'ParseTypeChange
$scope.parseType = 'yaml';
$scope.host = { enabled: true };
// apply form definition's default field values
GenerateForm.applyDefaults(HostForm, $scope);
GenerateForm.applyDefaults(RelatedHostsFormDefinition, $scope);
ParseTypeChange({
scope: $scope,

View File

@@ -4,8 +4,10 @@
* All Rights Reserved
*************************************************/
import buildHostAddState from './build-host-add-state.factory';
import controller from './host-add.controller';
export default
angular.module('relatedHostsAdd', [])
.factory('buildHostAddState', buildHostAddState)
.controller('RelatedHostAddController', controller);

View File

@@ -34,10 +34,10 @@
};
var init = function(){
$scope.host = host.data;
$scope.name = host.data.name;
$scope.description = host.data.description;
$scope.variables = getVars(host.data.variables);
$scope.host = host;
$scope.name = host.name;
$scope.description = host.description;
$scope.variables = getVars(host.variables);
ParseTypeChange({
scope: $scope,
field_id: 'host_variables',

View File

@@ -3,9 +3,10 @@
*
* All Rights Reserved
*************************************************/
import buildHostEditState from './build-host-edit-state.factory';
import controller from './host-edit.controller';
export default
angular.module('relatedHostEdit', [])
.controller('HostEditController', controller);
.factory('buildHostEditState', buildHostEditState)
.controller('RelatedHostEditController', controller);

View File

@@ -9,10 +9,6 @@
import relatedHostList from './list/main';
import relatedHostsListDefinition from './related-host.list';
import relatedHostsFormDefinition from './related-host.form';
// import HostManageService from './hosts.service';
// import SetStatus from './set-status.factory';
// import SetEnabledMsg from './set-enabled-msg.factory';
// import SmartInventory from './smart-inventory/main';
export default
angular.module('relatedHost', [
@@ -20,8 +16,5 @@ angular.module('relatedHost', [
relatedHostEdit.name,
relatedHostList.name
])
.value('RelatedHostsFormDefinition', relatedHostsFormDefinition)
.factory('RelatedHostsFormDefinition', relatedHostsFormDefinition)
.value('RelatedHostsListDefinition', relatedHostsListDefinition);
// .factory('SetStatus', SetStatus)
// .factory('SetEnabledMsg', SetEnabledMsg)
// .service('HostManageService', HostManageService);

View File

@@ -553,18 +553,20 @@ function($injector, $stateExtender, $log, i18n) {
function buildListNodes(field) {
let states = [];
if(field.iterator === 'group'){
states.push(field.listState(field, formStateDefinition));
states.push(field.addState(field, formStateDefinition, params));
states.push(field.editState(field, formStateDefinition, params));
states = _.flatten(states);
if(field && (field.listState || field.addState || field.editState)){
if(field && field.listState){
states.push(field.listState(field, formStateDefinition));
states = _.flatten(states);
}
if(field && field.addState){
states.push(field.addState(field, formStateDefinition, params));
states = _.flatten(states);
}
if(field && field.editState){
states.push(field.editState(field, formStateDefinition, params));
states = _.flatten(states);
}
}
else if(field.iterator === 'host'){
states.push(field.listState(field, formStateDefinition));
}
// if(field && field.listState){
// states.push(field.listState(field, formStateDefinition));
// }
else if(field.iterator === 'notification'){
states.push(buildNotificationState(field));
states = _.flatten(states);