1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-02 01:21:21 +03:00

Populate JT schedule add with default extra vars when promptable. Hide schedule vars for everything except JT's with promptable extra vars

This commit is contained in:
mabashian 2018-04-23 15:27:52 -04:00
parent d5c2af0492
commit d44d28beba
2 changed files with 42 additions and 49 deletions

View File

@ -89,7 +89,7 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
// extra_data field is not manifested in the UI when scheduling a Management Job
if ($state.current.name === 'jobTemplateSchedules.add'){
$scope.parseType = 'yaml';
$scope.extraVars = '---';
$scope.extraVars = ParentObject.extra_vars === '' ? '---' : ParentObject.extra_vars;
ParseTypeChange({
scope: $scope,
@ -114,20 +114,20 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
$scope.$watchGroup(promptValuesToWatch, function() {
let missingPromptValue = false;
if($scope.missingSurveyValue) {
if ($scope.missingSurveyValue) {
missingPromptValue = true;
} else if(!$scope.promptData.prompts.inventory.value || !$scope.promptData.prompts.inventory.value.id) {
} else if (!$scope.promptData.prompts.inventory.value || !$scope.promptData.prompts.inventory.value.id) {
missingPromptValue = true;
}
$scope.promptModalMissingReqFields = missingPromptValue;
});
};
if(!launchConf.ask_variables_on_launch) {
if (!launchConf.ask_variables_on_launch) {
$scope.noVars = true;
}
if(!launchConf.survey_enabled &&
if (!launchConf.survey_enabled &&
!launchConf.ask_inventory_on_launch &&
!launchConf.ask_credential_on_launch &&
!launchConf.ask_verbosity_on_launch &&
@ -149,11 +149,11 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
// Promptable variables will happen in the schedule form
launchConf.ignore_ask_variables = true;
if(launchConf.ask_inventory_on_launch && !_.has(launchConf, 'defaults.inventory')) {
if (launchConf.ask_inventory_on_launch && !_.has(launchConf, 'defaults.inventory')) {
$scope.promptModalMissingReqFields = true;
}
if(launchConf.survey_enabled) {
if (launchConf.survey_enabled) {
// go out and get the survey questions
jobTemplate.getSurveyQuestions(ParentObject.id)
.then((surveyQuestionRes) => {
@ -178,7 +178,7 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
$scope.$watch('promptData.surveyQuestions', () => {
let missingSurveyValue = false;
_.each($scope.promptData.surveyQuestions, (question) => {
if(question.required && (Empty(question.model) || question.model === [])) {
if (question.required && (Empty(question.model) || question.model === [])) {
missingSurveyValue = true;
}
});
@ -187,8 +187,7 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
watchForPromptChanges();
});
}
else {
} else {
$scope.promptData = {
launchConf: responses[1].data,
launchOptions: responses[0].data,
@ -272,18 +271,18 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
}
});
}
else if ($state.current.name === 'projectSchedules.add'){
$scope.noVars = true;
}
else if ($state.current.name === 'inventories.edit.inventory_sources.edit.schedules.add'){
if ($state.current.name === 'workflowJobTemplateSchedules.add' ||
$state.current.name === 'projectSchedules.add' ||
$state.current.name === 'inventories.edit.inventory_sources.edit.schedules.add'
){
$scope.noVars = true;
}
job_type = $scope.parentObject.job_type;
if (!Empty($stateParams.id) && base !== 'system_job_templates' && base !== 'inventories' && !schedule_url) {
schedule_url = GetBasePath(base) + $stateParams.id + '/schedules/';
}
else if(base === "inventories"){
} else if (base === "inventories"){
if (!schedule_url){
Rest.setUrl(GetBasePath('groups') + $stateParams.id + '/');
Rest.get()
@ -297,10 +296,9 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
});
});
}
}
else if (base === 'system_job_templates') {
} else if (base === 'system_job_templates') {
schedule_url = GetBasePath(base) + $stateParams.id + '/schedules/';
if(job_type === "cleanup_facts"){
if (job_type === "cleanup_facts"){
$scope.isFactCleanup = true;
$scope.keep_unit_choices = [{
"label" : "Days",
@ -330,8 +328,7 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
$scope.prompt_for_days_facts_form.granularity_keep_amount.$setViewValue(1);
$scope.keep_unit = $scope.keep_unit_choices[0];
$scope.granularity_keep_unit = $scope.granularity_keep_unit_choices[1];
}
else {
} else {
$scope.cleanupJob = true;
}
}
@ -350,15 +347,14 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
});
$scope.scheduleTimeChange();
});
if($scope.schedulerUTCTime) {
if ($scope.schedulerUTCTime) {
// The UTC time is already set
processSchedulerEndDt();
}
else {
} else {
// We need to wait for it to be set by angular-scheduler because the following function depends
// on it
var schedulerUTCTimeWatcher = $scope.$watch('schedulerUTCTime', function(newVal) {
if(newVal) {
if (newVal) {
// Remove the watcher
schedulerUTCTimeWatcher();
processSchedulerEndDt();

View File

@ -127,7 +127,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
$scope.extraVars = (data.extra_data === '' || _.isEmpty(data.extra_data)) ? '---' : '---\n' + jsyaml.safeDump(data.extra_data);
if(schedule.extra_data.hasOwnProperty('granularity')){
if (schedule.extra_data.hasOwnProperty('granularity')){
$scope.isFactCleanup = true;
}
if (schedule.extra_data.hasOwnProperty('days')){
@ -196,16 +196,15 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
scheduler.setRRule(schedule.rrule);
scheduler.setName(schedule.name);
if($scope.isFactCleanup || $scope.cleanupJob){
if ($scope.isFactCleanup || $scope.cleanupJob){
var a,b, prompt_for_days,
keep_unit,
granularity,
granularity_keep_unit;
if($scope.cleanupJob){
if ($scope.cleanupJob){
$scope.schedulerPurgeDays = Number(schedule.extra_data.days);
}
else if($scope.isFactCleanup){
} else if ($scope.isFactCleanup){
$scope.keep_unit_choices = [{
"label" : "Days",
"value" : "d"
@ -272,9 +271,9 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
$scope.$watchGroup(promptValuesToWatch, function() {
let missingPromptValue = false;
if($scope.missingSurveyValue) {
if ($scope.missingSurveyValue) {
missingPromptValue = true;
} else if(!$scope.promptData.prompts.inventory.value || !$scope.promptData.prompts.inventory.value.id) {
} else if (!$scope.promptData.prompts.inventory.value || !$scope.promptData.prompts.inventory.value.id) {
missingPromptValue = true;
}
$scope.promptModalMissingReqFields = missingPromptValue;
@ -292,8 +291,8 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
const credentialHasScheduleOverride = (templateDefaultCred) => {
let credentialHasOverride = false;
scheduleCredentials.forEach((scheduleCred) => {
if(templateDefaultCred.credential_type === scheduleCred.credential_type) {
if(
if (templateDefaultCred.credential_type === scheduleCred.credential_type) {
if (
(!templateDefaultCred.vault_id && !scheduleCred.inputs.vault_id) ||
(templateDefaultCred.vault_id && scheduleCred.inputs.vault_id && templateDefaultCred.vault_id === scheduleCred.inputs.vault_id)
) {
@ -305,9 +304,9 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
return credentialHasOverride;
};
if(_.has(launchConf, 'defaults.credentials')) {
if (_.has(launchConf, 'defaults.credentials')) {
launchConf.defaults.credentials.forEach((defaultCred) => {
if(!credentialHasScheduleOverride(defaultCred)) {
if (!credentialHasScheduleOverride(defaultCred)) {
defaultCredsWithoutOverrides.push(defaultCred);
}
});
@ -315,11 +314,11 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
prompts.credentials.value = defaultCredsWithoutOverrides.concat(scheduleCredentials);
if(!launchConf.ask_variables_on_launch) {
if (!launchConf.ask_variables_on_launch) {
$scope.noVars = true;
}
if(!launchConf.survey_enabled &&
if (!launchConf.survey_enabled &&
!launchConf.ask_inventory_on_launch &&
!launchConf.ask_credential_on_launch &&
!launchConf.ask_verbosity_on_launch &&
@ -341,11 +340,11 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
// Promptable variables will happen in the schedule form
launchConf.ignore_ask_variables = true;
if(launchConf.ask_inventory_on_launch && !_.has(launchConf, 'defaults.inventory') && !_.has(data, 'summary_fields.inventory')) {
if (launchConf.ask_inventory_on_launch && !_.has(launchConf, 'defaults.inventory') && !_.has(data, 'summary_fields.inventory')) {
$scope.promptModalMissingReqFields = true;
}
if(responses[1].data.survey_enabled) {
if (responses[1].data.survey_enabled) {
// go out and get the survey questions
jobTemplate.getSurveyQuestions(ParentObject.id)
.then((surveyQuestionRes) => {
@ -378,7 +377,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
$scope.$watch('promptData.surveyQuestions', () => {
let missingSurveyValue = false;
_.each($scope.promptData.surveyQuestions, (question) => {
if(question.required && (Empty(question.model) || question.model === [])) {
if (question.required && (Empty(question.model) || question.model === [])) {
missingSurveyValue = true;
}
});
@ -387,8 +386,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
watchForPromptChanges();
});
}
else {
} else {
$scope.promptData = {
launchConf: launchConf,
launchOptions: launchOptions,
@ -472,13 +470,12 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
// extra_data field is not manifested in the UI when scheduling a Management Job
if ($state.current.name !== 'managementJobsList.schedule.add' && $state.current.name !== 'managementJobsList.schedule.edit'){
if ($state.current.name === 'projectSchedules.edit'){
if ($state.current.name === 'projectSchedules.edit' ||
$state.current.name === 'inventories.edit.inventory_sources.edit.schedules.edit' ||
$state.current.name === 'workflowJobTemplateSchedules.add'
){
$scope.noVars = true;
}
else if ($state.current.name === 'inventories.edit.inventory_sources.edit.schedules.edit'){
$scope.noVars = true;
}
else {
} else {
ParseTypeChange({
scope: $scope,
variable: 'extraVars',