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:
parent
d5c2af0492
commit
d44d28beba
@ -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();
|
||||
|
@ -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',
|
||||
|
Loading…
Reference in New Issue
Block a user