Merge pull request #1525 from mabashian/schedule-extra-vars-fixes

Populate JT schedule add with default extra vars when promptable.
This commit is contained in:
Michael Abashian 2018-04-25 11:40:24 -04:00 committed by GitHub
commit 33a080d9dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 49 deletions

View File

@ -91,7 +91,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,
@ -116,20 +116,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 &&
@ -151,11 +151,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) => {
@ -180,7 +180,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;
}
});
@ -189,8 +189,7 @@ export default ['$filter', '$state', '$stateParams', '$http', 'Wait',
watchForPromptChanges();
});
}
else {
} else {
$scope.promptData = {
launchConf: responses[1].data,
launchOptions: responses[0].data,
@ -274,18 +273,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()
@ -299,10 +298,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",
@ -332,8 +330,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;
}
}
@ -352,15 +349,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

@ -129,7 +129,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')){
@ -198,16 +198,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"
@ -274,9 +273,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;
@ -294,8 +293,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)
) {
@ -307,9 +306,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);
}
});
@ -317,11 +316,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 &&
@ -343,11 +342,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) => {
@ -380,7 +379,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;
}
});
@ -389,8 +388,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment,
watchForPromptChanges();
});
}
else {
} else {
$scope.promptData = {
launchConf: launchConf,
launchOptions: launchOptions,
@ -474,13 +472,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',