Merge pull request #4494 from mabashian/4252-dashboard-hosts-edit

Fixed dashboard hosts edit
This commit is contained in:
Michael Abashian
2016-12-19 12:30:47 -05:00
committed by GitHub
5 changed files with 34 additions and 17 deletions

View File

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

View File

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

View File

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

View File

@@ -23,7 +23,9 @@ angular.module('dashboardHosts', [])
name: 'dashboardHosts', name: 'dashboardHosts',
url: '/home/hosts', url: '/home/hosts',
lazyLoad: () => stateDefinitions.generateTree({ lazyLoad: () => stateDefinitions.generateTree({
url: '/home/hosts', urls: {
list: '/home/hosts'
},
parent: 'dashboardHosts', parent: 'dashboardHosts',
modes: ['edit'], modes: ['edit'],
list: 'DashboardHostsList', list: 'DashboardHostsList',
@@ -32,6 +34,17 @@ angular.module('dashboardHosts', [])
list: listController, list: listController,
edit: editController 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: { data: {
activityStream: true, activityStream: true,
activityStreamTarget: 'host' 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)); formStates = _.map(params.modes, (mode) => this.generateFormNode(mode, form, params));
states = states.concat(_.flatten(formStates)); 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 * @returns {object} a list state definition
*/ */
generateListNode: function(list, params) { 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 // allows passed-in params to specify a custom templateUrl
// otherwise, use html returned by generateList.build() to fulfill templateProvider fn // 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({ state = $stateExtender.buildDefinition({
searchPrefix: list.iterator, searchPrefix: list.iterator,
name: params.parent, name: params.parent,
url: (params.url || `/${list.name}`), url: url,
data: params.data, data: params.data,
ncyBreadcrumb: { ncyBreadcrumb: {
label: list.title 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 [{...}, {...}, ...] * @returns {array} Array of state definitions required by form mode [{...}, {...}, ...]
*/ */
generateFormNode: function(mode, form, params) { generateFormNode: function(mode, form, params) {
let formNode, states = []; let formNode,
states = [],
url;
switch (mode) { switch (mode) {
case 'add': 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 // 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 // job templates. form.name can't have spaces in it or it busts form gen
formNode = $stateExtender.buildDefinition({ formNode = $stateExtender.buildDefinition({
name: params.name || `${params.parent}.add`, name: params.name || `${params.parent}.add`,
url: params.url || '/add', url: url,
ncyBreadcrumb: { ncyBreadcrumb: {
[params.parent ? 'parent' : null]: `${params.parent}`, [params.parent ? 'parent' : null]: `${params.parent}`,
label: `CREATE ${form.breadcrumbName || form.name}` label: `CREATE ${form.breadcrumbName || form.name}`
@@ -171,9 +176,10 @@ export default ['$injector', '$stateExtender', '$log', function($injector, $stat
} }
break; break;
case 'edit': case 'edit':
url = params.urls && params.urls.edit ? params.urls.edit : (params.url ? params.url : `/:${form.name}_id`);
formNode = $stateExtender.buildDefinition({ formNode = $stateExtender.buildDefinition({
name: params.name || `${params.parent}.edit`, name: params.name || `${params.parent}.edit`,
url: (params.url || `/:${form.name}_id`), url: url,
ncyBreadcrumb: { ncyBreadcrumb: {
[params.parent ? 'parent' : null]: `${params.parent}`, [params.parent ? 'parent' : null]: `${params.parent}`,
label: '{{parentObject.name || name}}' label: '{{parentObject.name || name}}'