mirror of
https://github.com/ansible/awx.git
synced 2026-03-05 02:31:03 -03:30
Fixed delete on templates list
This commit is contained in:
@@ -1,45 +1,43 @@
|
|||||||
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();
|
vm.strings = strings;
|
||||||
|
|
||||||
function init() {
|
// TODO: add the permission based functionality to the base model
|
||||||
vm.strings = strings;
|
$scope.canAdd = false;
|
||||||
|
rbacUiControlService.canAdd("job_templates")
|
||||||
// TODO: add the permission based functionality to the base model
|
.then(function(params) {
|
||||||
$scope.canAdd = false;
|
$scope.canAddJobTemplate = params.canAdd;
|
||||||
rbacUiControlService.canAdd("job_templates")
|
});
|
||||||
.then(function(params) {
|
rbacUiControlService.canAdd("workflow_job_templates")
|
||||||
$scope.canAddJobTemplate = params.canAdd;
|
.then(function(params) {
|
||||||
});
|
$scope.canAddWorkflowJobTemplate = params.canAdd;
|
||||||
rbacUiControlService.canAdd("workflow_job_templates")
|
|
||||||
.then(function(params) {
|
|
||||||
$scope.canAddWorkflowJobTemplate = params.canAdd;
|
|
||||||
});
|
|
||||||
$scope.$watchGroup(["canAddJobTemplate", "canAddWorkflowJobTemplate"], function() {
|
|
||||||
if ($scope.canAddJobTemplate || $scope.canAddWorkflowJobTemplate) {
|
|
||||||
$scope.canAdd = true;
|
|
||||||
} else {
|
|
||||||
$scope.canAdd = false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
$scope.$watchGroup(["canAddJobTemplate", "canAddWorkflowJobTemplate"], function() {
|
||||||
|
if ($scope.canAddJobTemplate || $scope.canAddWorkflowJobTemplate) {
|
||||||
|
$scope.canAdd = true;
|
||||||
|
} else {
|
||||||
|
$scope.canAdd = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$scope.list = {
|
$scope.list = {
|
||||||
iterator: 'template',
|
iterator: 'template',
|
||||||
name: 'templates'
|
name: 'templates'
|
||||||
};
|
};
|
||||||
$scope.collection = {
|
$scope.collection = {
|
||||||
basePath: 'unified_job_templates',
|
basePath: 'unified_job_templates',
|
||||||
iterator: 'template'
|
iterator: 'template'
|
||||||
};
|
};
|
||||||
$scope[`${$scope.list.iterator}_dataset`] = Dataset.data;
|
$scope[`${$scope.list.iterator}_dataset`] = Dataset.data;
|
||||||
$scope[$scope.list.name] = $scope[`${$scope.list.iterator}_dataset`].results;
|
$scope[$scope.list.name] = $scope[`${$scope.list.iterator}_dataset`].results;
|
||||||
$scope.$on('updateDataset', function(e, dataset) {
|
$scope.$on('updateDataset', function(e, dataset) {
|
||||||
$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,32 +259,52 @@ 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 reloadListStateParams = null;
|
let deleteComplete = () => {
|
||||||
|
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') {
|
||||||
reloadListStateParams = _.cloneDeep($state.params);
|
reloadListStateParams = _.cloneDeep($state.params);
|
||||||
reloadListStateParams.template_search.page = (parseInt(reloadListStateParams.template_search.page)-1).toString();
|
reloadListStateParams.template_search.page = (parseInt(reloadListStateParams.template_search.page)-1).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parseInt($state.params.template_id) === template.id) {
|
if (parseInt($state.params.template_id) === template.id) {
|
||||||
$state.go("^", reloadListStateParams, { reload: true });
|
$state.go("^", reloadListStateParams, { reload: true });
|
||||||
} else {
|
} else {
|
||||||
$state.go('.', reloadListStateParams, {reload: true});
|
$state.go('.', reloadListStateParams, {reload: true});
|
||||||
}
|
}
|
||||||
})
|
};
|
||||||
.catch(({data, status}) => {
|
|
||||||
ProcessErrors($scope, data, status, null, {
|
if(template.type === "job_template") {
|
||||||
hdr: strings.get('error.HEADER'),
|
jobTemplate.request('delete', template.id)
|
||||||
msg: strings.get('error.CALL', {path: "" + unifiedJobTemplate.path + template.id, status})
|
.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');
|
||||||
});
|
});
|
||||||
})
|
} else if(template.type === "workflow_job_template") {
|
||||||
.finally(function() {
|
workflowJobTemplate.request('delete', template.id)
|
||||||
Wait('stop');
|
.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',
|
||||||
|
|||||||
21
awx/ui/client/lib/models/WorkflowJobTemplate.js
Normal file
21
awx/ui/client/lib/models/WorkflowJobTemplate.js
Normal 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;
|
||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user