awx/awx/ui/client/lib/models/WorkflowJobTemplate.js
2018-11-19 12:51:58 -05:00

95 lines
2.0 KiB
JavaScript

/* eslint camelcase: 0 */
let Base;
let $http;
function optionsLaunch (id) {
const req = {
method: 'OPTIONS',
url: `${this.path}${id}/launch/`
};
return $http(req);
}
function getLaunch (id) {
const req = {
method: 'GET',
url: `${this.path}${id}/launch/`
};
return $http(req)
.then(res => {
this.model.launch.GET = res.data;
return res;
});
}
function postLaunch (params) {
const req = {
method: 'POST',
url: `${this.path}${params.id}/launch/`
};
if (params.launchData) {
req.data = params.launchData;
}
return $http(req);
}
function getSurveyQuestions (id) {
const req = {
method: 'GET',
url: `${this.path}${id}/survey_spec/`
};
return $http(req);
}
function getLaunchConf () {
return this.model.launch.GET;
}
function canLaunchWithoutPrompt () {
const launchData = this.getLaunchConf();
return (
launchData.can_start_without_user_input &&
!launchData.ask_inventory_on_launch &&
!launchData.ask_variables_on_launch &&
!launchData.survey_enabled &&
launchData.variables_needed_to_start.length === 0
);
}
function WorkflowJobTemplateModel (method, resource, config) {
Base.call(this, 'workflow_job_templates');
this.Constructor = WorkflowJobTemplateModel;
this.optionsLaunch = optionsLaunch.bind(this);
this.getLaunch = getLaunch.bind(this);
this.postLaunch = postLaunch.bind(this);
this.getSurveyQuestions = getSurveyQuestions.bind(this);
this.getLaunchConf = getLaunchConf.bind(this);
this.canLaunchWithoutPrompt = canLaunchWithoutPrompt.bind(this);
this.model.launch = {};
return this.create(method, resource, config);
}
function WorkflowJobTemplateModelLoader (BaseModel, _$http_) {
Base = BaseModel;
$http = _$http_;
return WorkflowJobTemplateModel;
}
WorkflowJobTemplateModelLoader.$inject = [
'BaseModel',
'$http',
];
export default WorkflowJobTemplateModelLoader;