From 7300c2ccc181fcb88d4c717119a7c469cb54bfc4 Mon Sep 17 00:00:00 2001 From: Jake McDermott Date: Tue, 23 Jan 2018 10:19:19 -0500 Subject: [PATCH] fix unexpected deselect when selecting no-vault-id vault credentials --- .../multi-credential-modal.directive.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/awx/ui/client/src/templates/job_templates/multi-credential/multi-credential-modal.directive.js b/awx/ui/client/src/templates/job_templates/multi-credential/multi-credential-modal.directive.js index 5e5baa5a91..0ab5816e70 100644 --- a/awx/ui/client/src/templates/job_templates/multi-credential/multi-credential-modal.directive.js +++ b/awx/ui/client/src/templates/job_templates/multi-credential/multi-credential-modal.directive.js @@ -145,7 +145,7 @@ function multiCredentialModalController(GetBasePath, qs, MultiCredentialService) if(isReadOnly(credential) && credentialTypeId !== types.Vault) { const index = displayedCredentialTypes - .map(t => t.id).indexOf(credential.credential_type); + .map(t => t.id).indexOf(credentialTypeId); if (index > -1) { displayedCredentialTypes.splice(index, 1); @@ -227,13 +227,17 @@ function multiCredentialModalController(GetBasePath, qs, MultiCredentialService) return; } - if (credential.credential_type === types.Vault) { + const credentialTypeId = credential.credential_type || credential.credential_type_id; + + if (credentialTypeId === types.Vault) { + const vaultId = _.get(credential, 'inputs.vault_id'); + scope.modalSelectedCredentials = scope.modalSelectedCredentials - .filter(({ inputs }) => inputs.vault_id !== credential.inputs.vault_id) + .filter(c => (c.credential_type !== types.Vault) || (c.inputs.vault_id !== vaultId)) .concat([credential]); } else { scope.modalSelectedCredentials = scope.modalSelectedCredentials - .filter(({ credential_type }) => credential_type !== credential.credential_type) + .filter(({ credential_type }) => credential_type !== credentialTypeId) .concat([credential]); } };