diff --git a/awx/ui/client/src/templates/prompt/prompt.controller.js b/awx/ui/client/src/templates/prompt/prompt.controller.js index 8d26dcc36c..133121e6fd 100644 --- a/awx/ui/client/src/templates/prompt/prompt.controller.js +++ b/awx/ui/client/src/templates/prompt/prompt.controller.js @@ -19,6 +19,8 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', vm.actionButtonClicked = false; if(vm.promptData && vm.promptData.triggerModalOpen) { + vm.promptDataClone = _.cloneDeep(vm.promptData); + vm.steps = { inventory: { includeStep: false @@ -51,22 +53,22 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', credentialType.http.get() .then( (response) => { - vm.promptData.prompts.credentials.credentialTypes = {}; - vm.promptData.prompts.credentials.credentialTypeOptions = []; + vm.promptDataClone.prompts.credentials.credentialTypes = {}; + vm.promptDataClone.prompts.credentials.credentialTypeOptions = []; response.data.results.forEach((credentialTypeRow => { - vm.promptData.prompts.credentials.credentialTypes[credentialTypeRow.id] = credentialTypeRow.kind; + vm.promptDataClone.prompts.credentials.credentialTypes[credentialTypeRow.id] = credentialTypeRow.kind; if(credentialTypeRow.kind.match(/^(cloud|net|ssh|vault)$/)) { if(credentialTypeRow.kind === 'ssh') { - vm.promptData.prompts.credentials.credentialKind = credentialTypeRow.id.toString(); + vm.promptDataClone.prompts.credentials.credentialKind = credentialTypeRow.id.toString(); } - vm.promptData.prompts.credentials.credentialTypeOptions.push({ + vm.promptDataClone.prompts.credentials.credentialTypeOptions.push({ name: credentialTypeRow.name, value: credentialTypeRow.id }); } })); - vm.promptData.prompts.credentials.passwords = {}; + vm.promptDataClone.prompts.credentials.passwords = {}; if(vm.promptData.launchConf.passwords_needed_to_start) { vm.promptData.launchConf.passwords_needed_to_start.forEach((passwordNeeded) => { @@ -96,11 +98,11 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', }); } - vm.promptData.credentialTypeMissing = []; + vm.promptDataClone.credentialTypeMissing = []; - vm.promptData.prompts.variables.ignore = vm.promptData.launchConf.ignore_ask_variables; + vm.promptDataClone.prompts.variables.ignore = vm.promptDataClone.launchConf.ignore_ask_variables; - if(vm.promptData.launchConf.ask_inventory_on_launch) { + if(vm.promptDataClone.launchConf.ask_inventory_on_launch) { vm.steps.inventory.includeStep = true; vm.steps.inventory.tab = { _active: true, @@ -108,7 +110,7 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', }; order++; } - if(vm.promptData.launchConf.ask_credential_on_launch || (vm.promptData.launchConf.passwords_needed_to_start && vm.promptData.launchConf.passwords_needed_to_start.length > 0)) { + if(vm.promptDataClone.launchConf.ask_credential_on_launch || (vm.promptDataClone.launchConf.passwords_needed_to_start && vm.promptDataClone.launchConf.passwords_needed_to_start.length > 0)) { vm.steps.credential.includeStep = true; vm.steps.credential.tab = { _active: order === 1 ? true : false, @@ -117,7 +119,7 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', }; order++; } - if(vm.promptData.launchConf.ask_verbosity_on_launch || vm.promptData.launchConf.ask_job_type_on_launch || vm.promptData.launchConf.ask_limit_on_launch || vm.promptData.launchConf.ask_tags_on_launch || vm.promptData.launchConf.ask_skip_tags_on_launch || (vm.promptData.launchConf.ask_variables_on_launch && !vm.promptData.launchConf.ignore_ask_variables) || vm.promptData.launchConf.ask_diff_mode_on_launch) { + if(vm.promptDataClone.launchConf.ask_verbosity_on_launch || vm.promptDataClone.launchConf.ask_job_type_on_launch || vm.promptDataClone.launchConf.ask_limit_on_launch || vm.promptDataClone.launchConf.ask_tags_on_launch || vm.promptDataClone.launchConf.ask_skip_tags_on_launch || (vm.promptDataClone.launchConf.ask_variables_on_launch && !vm.promptDataClone.launchConf.ignore_ask_variables) || vm.promptDataClone.launchConf.ask_diff_mode_on_launch) { vm.steps.other_prompts.includeStep = true; vm.steps.other_prompts.tab = { _active: order === 1 ? true : false, @@ -126,7 +128,7 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', }; order++; } - if(vm.promptData.launchConf.survey_enabled) { + if(vm.promptDataClone.launchConf.survey_enabled) { vm.steps.survey.includeStep = true; vm.steps.survey.tab = { _active: order === 1 ? true : false, @@ -165,6 +167,11 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', vm.finish = () => { // Disable the action button to prevent double clicking vm.actionButtonClicked = true; + + _.forEach(vm.promptDataClone, (value, key) => { + vm.promptData[key] = value; + }); + vm.promptData.triggerModalOpen = false; if(vm.onFinish) { vm.onFinish(); diff --git a/awx/ui/client/src/templates/prompt/prompt.partial.html b/awx/ui/client/src/templates/prompt/prompt.partial.html index 4f24b26e44..98ca4f9644 100644 --- a/awx/ui/client/src/templates/prompt/prompt.partial.html +++ b/awx/ui/client/src/templates/prompt/prompt.partial.html @@ -1,5 +1,5 @@