From 1d3d6be0298e4e7270f5605f770fd489b3e26a15 Mon Sep 17 00:00:00 2001 From: gconsidine Date: Tue, 18 Jul 2017 16:04:38 -0400 Subject: [PATCH 1/2] Set iterator property explicitly in credentials view The CredentialList iterator seems to get clobbered after setting an Insights credential in Inventory. This quick fix forces the iterator to be the correct value on page load. --- awx/ui/client/features/credentials/legacy.credentials.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/awx/ui/client/features/credentials/legacy.credentials.js b/awx/ui/client/features/credentials/legacy.credentials.js index 95cda7e94a..b4af6fea24 100644 --- a/awx/ui/client/features/credentials/legacy.credentials.js +++ b/awx/ui/client/features/credentials/legacy.credentials.js @@ -18,6 +18,8 @@ function LegacyCredentialsService (pathService) { }, 'list@credentials': { templateProvider: function(CredentialList, generateList) { + CredentialList.iterator = 'credential'; + let html = generateList.build({ list: CredentialList, mode: 'edit' @@ -33,6 +35,7 @@ function LegacyCredentialsService (pathService) { Dataset: ['CredentialList', 'QuerySet', '$stateParams', 'GetBasePath', function(list, qs, $stateParams, GetBasePath) { let path = GetBasePath(list.basePath) || GetBasePath(list.name); + return qs.search(path, $stateParams[`${list.iterator}_search`]); } ] From cb860261fe59d108a79cb0c199a3991ea71ac027 Mon Sep 17 00:00:00 2001 From: gconsidine Date: Wed, 19 Jul 2017 12:55:01 -0400 Subject: [PATCH 2/2] Add clone of list objects for each state definition --- awx/ui/client/features/credentials/legacy.credentials.js | 2 -- awx/ui/client/src/shared/stateDefinitions.factory.js | 5 +++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/awx/ui/client/features/credentials/legacy.credentials.js b/awx/ui/client/features/credentials/legacy.credentials.js index b4af6fea24..d26822fd7b 100644 --- a/awx/ui/client/features/credentials/legacy.credentials.js +++ b/awx/ui/client/features/credentials/legacy.credentials.js @@ -18,8 +18,6 @@ function LegacyCredentialsService (pathService) { }, 'list@credentials': { templateProvider: function(CredentialList, generateList) { - CredentialList.iterator = 'credential'; - let html = generateList.build({ list: CredentialList, mode: 'edit' diff --git a/awx/ui/client/src/shared/stateDefinitions.factory.js b/awx/ui/client/src/shared/stateDefinitions.factory.js index e4af7aeb51..b473e17426 100644 --- a/awx/ui/client/src/shared/stateDefinitions.factory.js +++ b/awx/ui/client/src/shared/stateDefinitions.factory.js @@ -738,8 +738,9 @@ function($injector, $stateExtender, $log, i18n) { }, resolve: { ListDefinition: [field.list, function(list) { - list.iterator = field.sourceModel; - return list; + let listClone = _.cloneDeep(list); + listClone.iterator = field.sourceModel; + return listClone; }], OrganizationId: ['ListDefinition', 'InventoriesService', '$stateParams', '$rootScope', function(list, InventoriesService, $stateParams, $rootScope){