diff --git a/awx/ui/client/src/templates/prompt/prompt.controller.js b/awx/ui/client/src/templates/prompt/prompt.controller.js index e390ba271a..adbe803f10 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,32 +53,32 @@ 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 = {}; - vm.promptData.launchConf.passwords_needed_to_start.forEach((passwordNeeded) => { + vm.promptDataClone.launchConf.passwords_needed_to_start.forEach((passwordNeeded) => { if(passwordNeeded === "ssh_password") { - vm.promptData.prompts.credentials.passwords.ssh = {}; + vm.promptDataClone.prompts.credentials.passwords.ssh = {}; } if(passwordNeeded === "become_password") { - vm.promptData.prompts.credentials.passwords.become = {}; + vm.promptDataClone.prompts.credentials.passwords.become = {}; } if(passwordNeeded === "ssh_key_unlock") { - vm.promptData.prompts.credentials.passwords.ssh_key_unlock = {}; + vm.promptDataClone.prompts.credentials.passwords.ssh_key_unlock = {}; } if(passwordNeeded.startsWith("vault_password")) { let vault_id; @@ -84,21 +86,21 @@ export default [ 'Rest', 'GetBasePath', 'ProcessErrors', 'CredentialTypeModel', vault_id = passwordNeeded.split(/\.(.+)/)[1]; } - if(!vm.promptData.prompts.credentials.passwords.vault) { - vm.promptData.prompts.credentials.passwords.vault = []; + if(!vm.promptDataClone.prompts.credentials.passwords.vault) { + vm.promptDataClone.prompts.credentials.passwords.vault = []; } - vm.promptData.prompts.credentials.passwords.vault.push({ + vm.promptDataClone.prompts.credentials.passwords.vault.push({ vault_id: vault_id }); } }); - 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, @@ -106,7 +108,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, @@ -115,7 +117,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, @@ -124,7 +126,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, @@ -163,6 +165,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 @@
- + {{:: vm.strings.get('prompt.INVENTORY') }} {{:: vm.strings.get('prompt.CREDENTIAL') }} @@ -9,25 +9,25 @@
- +
- +
- +
- +
- +