Fixed delete on templates list

This commit is contained in:
mabashian
2018-01-16 08:36:38 -05:00
parent ccb40c8c68
commit d6e663eff0
3 changed files with 103 additions and 60 deletions

View File

@@ -1,10 +1,9 @@
function ListTemplatesController (model, strings, $state, $scope, rbacUiControlService, Dataset, $filter, Alert, InitiatePlaybookRun, Prompt, Wait, ProcessErrors, TemplateCopyService) { function ListTemplatesController (model, JobTemplate, WorkflowJobTemplate, strings, $state, $scope, rbacUiControlService, Dataset, $filter, Alert, InitiatePlaybookRun, Prompt, Wait, ProcessErrors, TemplateCopyService) {
const vm = this || {} const vm = this || {},
const unifiedJobTemplate = model; unifiedJobTemplate = model,
jobTemplate = new JobTemplate(),
workflowJobTemplate = new WorkflowJobTemplate();
init();
function init() {
vm.strings = strings; vm.strings = strings;
// TODO: add the permission based functionality to the base model // TODO: add the permission based functionality to the base model
@@ -39,7 +38,6 @@ function ListTemplatesController (model, strings, $state, $scope, rbacUiControlS
$scope[`${$scope.list.iterator}_dataset`] = dataset; $scope[`${$scope.list.iterator}_dataset`] = dataset;
$scope[$scope.list.name] = dataset.results; $scope[$scope.list.name] = dataset.results;
}); });
}
// get modified date and user who modified it // get modified date and user who modified it
vm.getModified = function(template) { vm.getModified = function(template) {
@@ -261,10 +259,8 @@ function ListTemplatesController (model, strings, $state, $scope, rbacUiControlS
var action = function() { var action = function() {
$('#prompt-modal').modal('hide'); $('#prompt-modal').modal('hide');
Wait('start'); Wait('start');
// TODO: The request url doesn't work here
unifiedJobTemplate.request('delete', template.id)
.then(() => {
let deleteComplete = () => {
let reloadListStateParams = null; let reloadListStateParams = null;
if($scope.templates.length === 1 && $state.params.template_search && !_.isEmpty($state.params.template_search.page) && $state.params.template_search.page !== '1') { if($scope.templates.length === 1 && $state.params.template_search && !_.isEmpty($state.params.template_search.page) && $state.params.template_search.page !== '1') {
@@ -277,6 +273,12 @@ function ListTemplatesController (model, strings, $state, $scope, rbacUiControlS
} else { } else {
$state.go('.', reloadListStateParams, {reload: true}); $state.go('.', reloadListStateParams, {reload: true});
} }
};
if(template.type === "job_template") {
jobTemplate.request('delete', template.id)
.then(() => {
deleteComplete();
}) })
.catch(({data, status}) => { .catch(({data, status}) => {
ProcessErrors($scope, data, status, null, { ProcessErrors($scope, data, status, null, {
@@ -287,6 +289,22 @@ function ListTemplatesController (model, strings, $state, $scope, rbacUiControlS
.finally(function() { .finally(function() {
Wait('stop'); Wait('stop');
}); });
} else if(template.type === "workflow_job_template") {
workflowJobTemplate.request('delete', template.id)
.then(() => {
deleteComplete();
})
.catch(({data, status}) => {
ProcessErrors($scope, data, status, null, {
hdr: strings.get('error.HEADER'),
msg: strings.get('error.CALL', {path: "" + unifiedJobTemplate.path + template.id, status})
});
})
.finally(function() {
Wait('stop');
});
}
}; };
let deleteModalBody = `<div class="Prompt-bodyQuery">${strings.get('deleteResource.CONFIRM', 'template')}</div>`; let deleteModalBody = `<div class="Prompt-bodyQuery">${strings.get('deleteResource.CONFIRM', 'template')}</div>`;
@@ -303,6 +321,8 @@ function ListTemplatesController (model, strings, $state, $scope, rbacUiControlS
ListTemplatesController.$inject = [ ListTemplatesController.$inject = [
'resolvedModels', 'resolvedModels',
'JobTemplateModel',
'WorkflowJobTemplateModel',
'TemplatesStrings', 'TemplatesStrings',
'$state', '$state',
'$scope', '$scope',

View File

@@ -0,0 +1,21 @@
let Base;
function WorkflowJobTemplateModel (method, resource, config) {
Base.call(this, 'workflow_job_templates');
this.Constructor = WorkflowJobTemplateModel;
return this.create(method, resource, config);
}
function WorkflowJobTemplateModelLoader (BaseModel) {
Base = BaseModel;
return WorkflowJobTemplateModel;
}
WorkflowJobTemplateModelLoader.$inject = [
'BaseModel'
];
export default WorkflowJobTemplateModelLoader;

View File

@@ -12,6 +12,7 @@ import WorkflowJobTemplateNode from '~models/WorkflowJobTemplateNode';
import InventorySource from '~models/InventorySource'; import InventorySource from '~models/InventorySource';
import Inventory from '~models/Inventory'; import Inventory from '~models/Inventory';
import InventoryScript from '~models/InventoryScript'; import InventoryScript from '~models/InventoryScript';
import WorkflowJobTemplate from '~models/WorkflowJobTemplate';
import ModelsStrings from '~models/models.strings'; import ModelsStrings from '~models/models.strings';
import UnifiedJobTemplate from '~models/UnifiedJobTemplate'; import UnifiedJobTemplate from '~models/UnifiedJobTemplate';
@@ -34,6 +35,7 @@ angular
.service('InventorySourceModel', InventorySource) .service('InventorySourceModel', InventorySource)
.service('InventoryModel', Inventory) .service('InventoryModel', Inventory)
.service('InventoryScriptModel', InventoryScript) .service('InventoryScriptModel', InventoryScript)
.service('WorkflowJobTemplateModel', WorkflowJobTemplate)
.service('ModelsStrings', ModelsStrings) .service('ModelsStrings', ModelsStrings)
.service('UnifiedJobTemplateModel', UnifiedJobTemplate); .service('UnifiedJobTemplateModel', UnifiedJobTemplate);