diff --git a/awx/ui/client/src/scheduler/schedulerEdit.controller.js b/awx/ui/client/src/scheduler/schedulerEdit.controller.js index 4aa3044adf..0e27408c1f 100644 --- a/awx/ui/client/src/scheduler/schedulerEdit.controller.js +++ b/awx/ui/client/src/scheduler/schedulerEdit.controller.js @@ -243,6 +243,15 @@ function($filter, $state, $stateParams, Wait, $scope, moment, let jobTemplate = new JobTemplate(); + const codeMirrorExtraVars = () => { + ParseTypeChange({ + scope: $scope, + variable: 'extraVars', + parse_variable: 'parseType', + field_id: 'SchedulerForm-extraVars' + }); + }; + Rest.setUrl(scheduleResolve.related.credentials); $q.all([jobTemplate.optionsLaunch(ParentObject.id), jobTemplate.getLaunch(ParentObject.id), Rest.get()]) @@ -312,21 +321,10 @@ function($filter, $state, $stateParams, Wait, $scope, moment, prompts.credentials.value = defaultCredsWithoutOverrides.concat(scheduleCredentials); - if (launchConf.ask_variables_on_launch) { - // the extra vars codemirror is ONLY shown if the - // schedule is for a JT and the JT has - // ask_variables_on_launch = true. - $scope.extraVars = ParentObject.extra_vars === '' ? '---' : ParentObject.extra_vars; - $scope.noVars = false; - ParseTypeChange({ - scope: $scope, - variable: 'extraVars', - parse_variable: 'parseType', - field_id: 'SchedulerForm-extraVars' - }); - } else { - $scope.noVars = true; - } + // the extra vars codemirror is ONLY shown if the + // schedule is for a JT and the JT has + // ask_variables_on_launch = true + $scope.noVars = !launchConf.ask_variables_on_launch; if (!launchConf.survey_enabled && !launchConf.ask_inventory_on_launch && @@ -343,6 +341,10 @@ function($filter, $state, $stateParams, Wait, $scope, moment, launchConf.passwords_needed_to_start.length === 0 && launchConf.variables_needed_to_start.length === 0) { $scope.showPromptButton = false; + + if (launchConf.ask_variables_on_launch) { + codeMirrorExtraVars(); + } } else { $scope.showPromptButton = true; @@ -368,13 +370,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment, $scope.extraVars = (processed.extra_data === '' || _.isEmpty(processed.extra_data)) ? '---' : '---\n' + jsyaml.safeDump(processed.extra_data); - ParseTypeChange({ - scope: $scope, - variable: 'extraVars', - parse_variable: 'parseType', - field_id: 'SchedulerForm-extraVars', - readOnly: !$scope.schedule_obj.summary_fields.user_capabilities.edit - }); + codeMirrorExtraVars(); $scope.promptData = { launchConf: launchConf, @@ -397,6 +393,7 @@ function($filter, $state, $stateParams, Wait, $scope, moment, watchForPromptChanges(); }); } else { + codeMirrorExtraVars(); $scope.promptData = { launchConf: launchConf, launchOptions: launchOptions,