mirror of
https://github.com/ansible/awx.git
synced 2026-03-27 13:55:04 -02:30
WIP integration with smart-search
This commit is contained in:
@@ -10,6 +10,8 @@
|
|||||||
* @description This form is for adding/editing a Job
|
* @description This form is for adding/editing a Job
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// @issue PLEASE KILL ME I NEED TO DIE
|
||||||
|
|
||||||
export default
|
export default
|
||||||
angular.module('JobFormDefinition', [])
|
angular.module('JobFormDefinition', [])
|
||||||
.value('JobForm', {
|
.value('JobForm', {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ export default
|
|||||||
addTitle: '',
|
addTitle: '',
|
||||||
editTitle: '',
|
editTitle: '',
|
||||||
name: 'workflow_maker',
|
name: 'workflow_maker',
|
||||||
base: 'job_templates',
|
basePath: 'job_templates',
|
||||||
tabs: false,
|
tabs: false,
|
||||||
cancelButton: false,
|
cancelButton: false,
|
||||||
showHeader: false,
|
showHeader: false,
|
||||||
@@ -48,7 +48,9 @@ export default
|
|||||||
type: 'lookup',
|
type: 'lookup',
|
||||||
sourceModel: 'inventory',
|
sourceModel: 'inventory',
|
||||||
sourceField: 'name',
|
sourceField: 'name',
|
||||||
ngClick: 'lookUpInventory()',
|
list: 'OrganizationList',
|
||||||
|
basePath: 'organization',
|
||||||
|
//ngClick: 'lookUpInventory()',
|
||||||
requiredErrorMsg: "Please select an Inventory.",
|
requiredErrorMsg: "Please select an Inventory.",
|
||||||
column: 1,
|
column: 1,
|
||||||
class: 'Form-formGroup--fullWidth',
|
class: 'Form-formGroup--fullWidth',
|
||||||
@@ -56,10 +58,10 @@ export default
|
|||||||
dataTitle: 'Inventory',
|
dataTitle: 'Inventory',
|
||||||
dataPlacement: 'right',
|
dataPlacement: 'right',
|
||||||
dataContainer: "body",
|
dataContainer: "body",
|
||||||
ngShow: "selectedTemplate.ask_inventory_on_launch",
|
//ngShow: "selectedTemplate.ask_inventory_on_launch",
|
||||||
awRequiredWhen: {
|
// awRequiredWhen: {
|
||||||
reqExpression: 'selectedTemplate.ask_inventory_on_launch'
|
// reqExpression: 'selectedTemplate.ask_inventory_on_launch'
|
||||||
}
|
// }
|
||||||
},
|
},
|
||||||
job_type: {
|
job_type: {
|
||||||
label: 'Job Type',
|
label: 'Job Type',
|
||||||
|
|||||||
@@ -480,7 +480,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.openWorkflowMaker = function() {
|
$scope.openWorkflowMaker = function() {
|
||||||
$scope.$broadcast("showWorkflowMaker");
|
$state.go('.workflowMaker');
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.formSave = function () {
|
$scope.formSave = function () {
|
||||||
|
|||||||
@@ -10,6 +10,13 @@ export default {
|
|||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
label: "TEMPLATES"
|
label: "TEMPLATES"
|
||||||
},
|
},
|
||||||
|
data: {
|
||||||
|
socket: {
|
||||||
|
"groups": {
|
||||||
|
"jobs": ["status_changed"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
params: {
|
params: {
|
||||||
unified_job_templates_search: {
|
unified_job_templates_search: {
|
||||||
value: {
|
value: {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
* All Rights Reserved
|
* All Rights Reserved
|
||||||
*************************************************/
|
*************************************************/
|
||||||
|
|
||||||
|
import { templateUrl } from '../shared/template-url/template-url.factory';
|
||||||
|
|
||||||
import jobTemplateService from './job-template.service';
|
import jobTemplateService from './job-template.service';
|
||||||
|
|
||||||
import surveyMaker from './survey-maker/main';
|
import surveyMaker from './survey-maker/main';
|
||||||
@@ -25,8 +27,9 @@ angular.module('jobTemplates', [surveyMaker.name, jobTemplatesList.name, jobTemp
|
|||||||
])
|
])
|
||||||
.service('JobTemplateService', jobTemplateService)
|
.service('JobTemplateService', jobTemplateService)
|
||||||
.config(['$stateProvider', 'stateDefinitionsProvider', '$stateExtenderProvider',
|
.config(['$stateProvider', 'stateDefinitionsProvider', '$stateExtenderProvider',
|
||||||
function($stateProvider, stateDefinitionsProvider, $stateExtenderProvider ) {
|
function($stateProvider, stateDefinitionsProvider, $stateExtenderProvider) {
|
||||||
let stateTree, addJobTemplate, editJobTemplate, addWorkflow, editWorkflow,
|
let stateTree, addJobTemplate, editJobTemplate, addWorkflow, editWorkflow,
|
||||||
|
workflowMaker, inventoryLookup, credentialLookup,
|
||||||
stateDefinitions = stateDefinitionsProvider.$get(),
|
stateDefinitions = stateDefinitionsProvider.$get(),
|
||||||
stateExtender = $stateExtenderProvider.$get();
|
stateExtender = $stateExtenderProvider.$get();
|
||||||
|
|
||||||
@@ -72,6 +75,103 @@ angular.module('jobTemplates', [surveyMaker.name, jobTemplatesList.name, jobTemp
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
workflowMaker = stateExtender.buildDefinition({
|
||||||
|
name: 'templates.editWorkflowJobTemplate.workflowMaker',
|
||||||
|
url: '/workflow-maker',
|
||||||
|
views: {
|
||||||
|
'modal': {
|
||||||
|
template: ` <workflow-maker ng-if="includeWorkflowMaker" tree-data="workflowTree"></workflow-maker>`
|
||||||
|
},
|
||||||
|
// 'jobsTemplateList@templates.editWorkflowJobTemplate.workflowMaker': {
|
||||||
|
// templateProvider: function(JobTemplateList, generateList) {
|
||||||
|
// let html = generateList.build({
|
||||||
|
// list: JobTemplateList,
|
||||||
|
// mode: 'edit'
|
||||||
|
// });
|
||||||
|
// return html;
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// 'inventorySyncList@templates.editWorkflowJobTemplate.workflowMaker': {
|
||||||
|
// templateProvider: function(InventoryList, generateList) {
|
||||||
|
// let html = generateList.build({
|
||||||
|
// list: InventoryList,
|
||||||
|
// mode: 'edit'
|
||||||
|
// });
|
||||||
|
// return html;
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
// 'projectList@templates.editWorkflowJobTemplate.workflowMaker': {
|
||||||
|
// templateProvider: function(ProjectList, generateList) {
|
||||||
|
// let html = generateList.build({
|
||||||
|
// list: ProjectList,
|
||||||
|
// mode: 'edit'
|
||||||
|
// });
|
||||||
|
// return html;
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
'workflowForm@templates.editWorkflowJobTemplate.workflowMaker': {
|
||||||
|
templateProvider: function(WorkflowMakerForm, GenerateForm) {
|
||||||
|
let form = WorkflowMakerForm();
|
||||||
|
let html = GenerateForm.buildHTML(form, {
|
||||||
|
mode: 'add',
|
||||||
|
related: false,
|
||||||
|
});
|
||||||
|
return html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
inventoryLookup = stateExtender.buildDefinition({
|
||||||
|
searchPrefix: 'inventory',
|
||||||
|
//squashSearchUrl: true, @issue enable
|
||||||
|
name: 'templates.editWorkflowJobTemplate.workflowMaker.inventory',
|
||||||
|
url: '/inventory',
|
||||||
|
data: {
|
||||||
|
lookup: true
|
||||||
|
},
|
||||||
|
params: {
|
||||||
|
inventory_search: {
|
||||||
|
value: { page_size: '5'}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
views: {
|
||||||
|
'modal@templates.editWorkflowJobTemplate.workflowMaker': {
|
||||||
|
templateProvider: function(ListDefinition, generateList) {
|
||||||
|
let list_html = generateList.build({
|
||||||
|
mode: 'lookup',
|
||||||
|
list: ListDefinition,
|
||||||
|
input_type: 'radio'
|
||||||
|
});
|
||||||
|
return `<lookup-modal>${list_html}</lookup-modal>`;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
// ListDefinition: [InventoryList, function(list) {
|
||||||
|
// list.iterator = field.sourceModel;
|
||||||
|
// return list;
|
||||||
|
// }],
|
||||||
|
Dataset: ['InventoryList', 'QuerySet', '$stateParams', 'GetBasePath',
|
||||||
|
(list, qs, $stateParams, GetBasePath) => {
|
||||||
|
let path = GetBasePath(list.name) || GetBasePath(list.basePath);
|
||||||
|
return qs.search(path, $stateParams[`${list.iterator}_search`]);
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
onExit: function($state) {
|
||||||
|
if ($state.transition) {
|
||||||
|
$('#form-modal').modal('hide');
|
||||||
|
$('.modal-backdrop').remove();
|
||||||
|
$('body').removeClass('modal-open');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return Promise.all([
|
return Promise.all([
|
||||||
addJobTemplate,
|
addJobTemplate,
|
||||||
editJobTemplate,
|
editJobTemplate,
|
||||||
@@ -82,8 +182,9 @@ angular.module('jobTemplates', [surveyMaker.name, jobTemplatesList.name, jobTemp
|
|||||||
states: _.reduce(generated, (result, definition) => {
|
states: _.reduce(generated, (result, definition) => {
|
||||||
return result.concat(definition.states);
|
return result.concat(definition.states);
|
||||||
}, [
|
}, [
|
||||||
stateExtender.buildDefinition(jobTemplatesListRoute)
|
stateExtender.buildDefinition(jobTemplatesListRoute),
|
||||||
|
workflowMaker,
|
||||||
|
//inventoryLookup
|
||||||
])
|
])
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export default ['CreateDialog', 'Wait', '$q', function(CreateDialog, Wait, $q){
|
|||||||
deferred.resolve();
|
deferred.resolve();
|
||||||
});
|
});
|
||||||
Wait('start');
|
Wait('start');
|
||||||
|
debugger;
|
||||||
CreateDialog({
|
CreateDialog({
|
||||||
id: 'workflow-modal-dialog',
|
id: 'workflow-modal-dialog',
|
||||||
scope: params.scope,
|
scope: params.scope,
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@ export default [ 'templateUrl',
|
|||||||
},
|
},
|
||||||
restrict: 'E',
|
restrict: 'E',
|
||||||
templateUrl: templateUrl('job-templates/workflow-maker/workflow-maker'),
|
templateUrl: templateUrl('job-templates/workflow-maker/workflow-maker'),
|
||||||
controller: workflowMakerController
|
controller: workflowMakerController,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -60,21 +60,23 @@
|
|||||||
<span class="badge List-titleBadge" ng-bind="treeData.data.totalNodes"></span>
|
<span class="badge List-titleBadge" ng-bind="treeData.data.totalNodes"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<!--
|
||||||
<workflow-chart tree-data="treeData.data" add-node="startAddNode(parent, betweenTwoNodes)" edit-node="startEditNode(nodeToEdit)" delete-node="startDeleteNode(nodeToDelete)" class="WorkflowMaker-chart"></workflow-chart>
|
<workflow-chart tree-data="treeData.data" add-node="startAddNode(parent, betweenTwoNodes)" edit-node="startEditNode(nodeToEdit)" delete-node="startDeleteNode(nodeToDelete)" class="WorkflowMaker-chart"></workflow-chart>
|
||||||
|
-->
|
||||||
</div>
|
</div>
|
||||||
<div class="WorkflowMaker-contentRight">
|
<div class="WorkflowMaker-contentRight">
|
||||||
<div class="WorkflowMaker-formTitle">{{(workflowMakerFormConfig.nodeMode === 'edit' && nodeBeingEdited && nodeBeingEdited.unifiedJobTemplate && nodeBeingEdited.unifiedJobTemplate.name) ? nodeBeingEdited.unifiedJobTemplate.name : "ADD A TEMPLATE"}}</div>
|
<div class="WorkflowMaker-formTitle">{{(workflowMakerFormConfig.nodeMode === 'edit' && nodeBeingEdited && nodeBeingEdited.unifiedJobTemplate && nodeBeingEdited.unifiedJobTemplate.name) ? nodeBeingEdited.unifiedJobTemplate.name : "ADD A TEMPLATE"}}</div>
|
||||||
<div class="WorkflowMaker-formHelp" ng-show="workflowMakerFormConfig.nodeMode === 'idle'">Please hover over a template and click the Add button.</div>
|
<div class="WorkflowMaker-formHelp" ng-show="workflowMakerFormConfig.nodeMode === 'idle'">Please hover over a template and click the Add button.</div>
|
||||||
<div class="WorkflowMaker-form" ng-show="workflowMakerFormConfig.nodeMode === 'add' || workflowMakerFormConfig.nodeMode === 'edit'">
|
<div class="WorkflowMaker-form" > <!-- ng-show="workflowMakerFormConfig.nodeMode === 'add' || workflowMakerFormConfig.nodeMode === 'edit'" -->
|
||||||
<div class="Form-tabHolder">
|
<div class="Form-tabHolder">
|
||||||
<div class="Form-tab" ng-class="{'is-selected': workflowMakerFormConfig.activeTab === 'jobs'}" ng-click="toggleFormTab('jobs')">JOBS</div>
|
<div class="Form-tab" ng-class="{'is-selected': workflowMakerFormConfig.activeTab === 'jobs'}" ng-click="toggleFormTab('jobs')">JOBS</div>
|
||||||
<div class="Form-tab" ng-class="{'is-selected': workflowMakerFormConfig.activeTab === 'project_sync'}" ng-click="toggleFormTab('project_sync')">PROJECT SYNC</div>
|
<div class="Form-tab" ng-class="{'is-selected': workflowMakerFormConfig.activeTab === 'project_sync'}" ng-click="toggleFormTab('project_sync')">PROJECT SYNC</div>
|
||||||
<div class="Form-tab" ng-class="{'is-selected': workflowMakerFormConfig.activeTab === 'inventory_sync'}" ng-click="toggleFormTab('inventory_sync')">INVENTORY SYNC</div>
|
<div class="Form-tab" ng-class="{'is-selected': workflowMakerFormConfig.activeTab === 'inventory_sync'}" ng-click="toggleFormTab('inventory_sync')">INVENTORY SYNC</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="WorkflowMaker-formLists">
|
<div class="WorkflowMaker-formLists">
|
||||||
<div id="workflow-jobs-list" ng-show="workflowMakerFormConfig.activeTab === 'jobs'"></div>
|
<div id="workflow-jobs-list" ui-view="jobsTemplateList"></div> <!-- ng-show="workflowMakerFormConfig.activeTab === 'jobs'" -->
|
||||||
<div id="workflow-project-sync-list" ng-show="workflowMakerFormConfig.activeTab === 'project_sync'"></div>
|
<div id="workflow-project-sync-list" ng-show="workflowMakerFormConfig.activeTab === 'project_sync'" ui-view="projectSyncList"></div>
|
||||||
<div id="workflow-inventory-sync-list" ng-show="workflowMakerFormConfig.activeTab === 'inventory_sync'"></div>
|
<div id="workflow-inventory-sync-list" ng-show="workflowMakerFormConfig.activeTab === 'inventory_sync'" ui-view="inventorySyncList"></div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-show="showTypeOptions" class="WorkflowMaker-formElement">
|
<div ng-show="showTypeOptions" class="WorkflowMaker-formElement">
|
||||||
<label class="Form-inputLabelContainer">
|
<label class="Form-inputLabelContainer">
|
||||||
@@ -95,7 +97,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div id="workflow-maker-form"></div>
|
<div id="workflow-maker-form" ui-view="workflowForm"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -178,7 +178,7 @@ angular.module('FormGenerator', [GeneratorHelpers.name, 'Utilities', listGenerat
|
|||||||
// html = GenerateForm.buildHTML(JobVarsPromptForm, { mode: 'edit', modal: true, scope: scope });
|
// html = GenerateForm.buildHTML(JobVarsPromptForm, { mode: 'edit', modal: true, scope: scope });
|
||||||
|
|
||||||
this.mode = options.mode;
|
this.mode = options.mode;
|
||||||
this.modal = (options.modal) ? true : false;
|
//this.modal = (options.modal) ? true : false;
|
||||||
this.setForm(form);
|
this.setForm(form);
|
||||||
return this.build(options);
|
return this.build(options);
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user