Fixed dashboard hosts edit

This commit is contained in:
Michael Abashian 2016-12-19 10:40:02 -05:00
parent 4f9d2fbde3
commit 0ba47c1246
5 changed files with 34 additions and 17 deletions

View File

@ -7,9 +7,7 @@
export default
['$scope', '$state', '$stateParams', 'DashboardHostsForm', 'GenerateForm', 'ParseTypeChange', 'DashboardHostService', 'host',
function($scope, $state, $stateParams, DashboardHostsForm, GenerateForm, ParseTypeChange, DashboardHostService, host){
var generator = GenerateForm,
form = DashboardHostsForm;
$scope.parseType = 'yaml';
$scope.parseType = 'yaml';
$scope.formCancel = function(){
$state.go('^', null, {reload: true});
};
@ -33,11 +31,10 @@
};
var init = function(){
$scope.host = host;
generator.inject(form, {mode: 'edit', related: false, scope: $scope});
$scope.name = host.name;
$scope.description = host.description;
$scope.variables = host.variables === '' ? '---' : host.variables;
$scope.host = host.data;
$scope.name = host.data.name;
$scope.description = host.data.description;
$scope.variables = host.data.variables === '' ? '---' : host.data.variables;
ParseTypeChange({
scope: $scope,
field_id: 'host_variables',

View File

@ -39,7 +39,7 @@ export default ['$scope', '$state', '$stateParams', 'GetBasePath', 'DashboardHos
}
$scope.editHost = function(id) {
$state.go('dashboardHosts.edit', { id: id });
$state.go('dashboardHosts.edit', { host_id: id });
};
$scope.toggleHostEnabled = function(host) {

View File

@ -12,6 +12,7 @@ export default function(){
formLabelSize: 'col-lg-3',
formFieldSize: 'col-lg-9',
iterator: 'host',
basePath: 'hosts',
headerFields:{
enabled: {
//flag: 'host.enabled',

View File

@ -23,7 +23,9 @@ angular.module('dashboardHosts', [])
name: 'dashboardHosts',
url: '/home/hosts',
lazyLoad: () => stateDefinitions.generateTree({
url: '/home/hosts',
urls: {
list: '/home/hosts'
},
parent: 'dashboardHosts',
modes: ['edit'],
list: 'DashboardHostsList',
@ -32,6 +34,17 @@ angular.module('dashboardHosts', [])
list: listController,
edit: editController
},
resolve: {
edit: {
host: ['Rest', '$stateParams', 'GetBasePath',
function(Rest, $stateParams, GetBasePath) {
let path = GetBasePath('hosts') + $stateParams.host_id;
Rest.setUrl(path);
return Rest.get();
}
]
}
},
data: {
activityStream: true,
activityStreamTarget: 'host'

View File

@ -53,9 +53,10 @@ export default ['$injector', '$stateExtender', '$log', function($injector, $stat
formStates = _.map(params.modes, (mode) => this.generateFormNode(mode, form, params));
states = states.concat(_.flatten(formStates));
$log.debug('*** Generated State Tree', states);
resolve({ states: states });
}
$log.debug('*** Generated State Tree', states);
resolve({ states: states });
});
},
@ -68,7 +69,8 @@ export default ['$injector', '$stateExtender', '$log', function($injector, $stat
* @returns {object} a list state definition
*/
generateListNode: function(list, params) {
let state;
let state,
url = params.urls && params.urls.list ? params.urls.list : (params.url ? params.url : `/${list.name}`);
// allows passed-in params to specify a custom templateUrl
// otherwise, use html returned by generateList.build() to fulfill templateProvider fn
@ -90,7 +92,7 @@ export default ['$injector', '$stateExtender', '$log', function($injector, $stat
state = $stateExtender.buildDefinition({
searchPrefix: list.iterator,
name: params.parent,
url: (params.url || `/${list.name}`),
url: url,
data: params.data,
ncyBreadcrumb: {
label: list.title
@ -135,14 +137,17 @@ export default ['$injector', '$stateExtender', '$log', function($injector, $stat
* @returns {array} Array of state definitions required by form mode [{...}, {...}, ...]
*/
generateFormNode: function(mode, form, params) {
let formNode, states = [];
let formNode,
states = [],
url;
switch (mode) {
case 'add':
url = params.urls && params.urls.add ? params.urls.add : (params.url ? params.url : '/add');
// breadcrumbName necessary for resources that are more than one word like
// job templates. form.name can't have spaces in it or it busts form gen
formNode = $stateExtender.buildDefinition({
name: params.name || `${params.parent}.add`,
url: params.url || '/add',
url: url,
ncyBreadcrumb: {
[params.parent ? 'parent' : null]: `${params.parent}`,
label: `CREATE ${form.breadcrumbName || form.name}`
@ -171,9 +176,10 @@ export default ['$injector', '$stateExtender', '$log', function($injector, $stat
}
break;
case 'edit':
url = params.urls && params.urls.edit ? params.urls.edit : (params.url ? params.url : `/:${form.name}_id`);
formNode = $stateExtender.buildDefinition({
name: params.name || `${params.parent}.edit`,
url: (params.url || `/:${form.name}_id`),
url: url,
ncyBreadcrumb: {
[params.parent ? 'parent' : null]: `${params.parent}`,
label: '{{parentObject.name || name}}'