From 037d5947db84b5e55eaba4be7ece691da2ffd74a Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Thu, 31 Aug 2023 10:54:43 +0200 Subject: [PATCH 1/2] load continuously --- .../views/network/CreateIsolatedNetworkForm.vue | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/ui/src/views/network/CreateIsolatedNetworkForm.vue b/ui/src/views/network/CreateIsolatedNetworkForm.vue index 21ab5e349143..ad063b8d7a40 100644 --- a/ui/src/views/network/CreateIsolatedNetworkForm.vue +++ b/ui/src/views/network/CreateIsolatedNetworkForm.vue @@ -459,15 +459,26 @@ export default { this.updateVPCCheckAndFetchNetworkOfferingData() }, fetchDomainData () { + this.domainLoading = true + this.loadMoreDomains(1) + }, + loadMoreDomains (page) { const params = {} params.listAll = true params.details = 'min' - this.domainLoading = true + params.pagesize = 100 + params.page = page + var domainCount api('listDomains', params).then(json => { const listDomains = json.listdomainsresponse.domain + domainCount = json.listdomainsresponse.count this.domains = this.domains.concat(listDomains) }).finally(() => { - this.domainLoading = false + if (domainCount <= this.domains.length) { + this.domainLoading = false + } else { + this.loadMoreDomains(page + 1) + } this.form.domainid = 0 this.handleDomainChange(this.domains[0]) }) From 265334c01a023bbab77488cfd5eb0d03accef95d Mon Sep 17 00:00:00 2001 From: Daan Hoogland Date: Thu, 31 Aug 2023 16:51:49 +0200 Subject: [PATCH 2/2] a bit more generic (and copied to AddAccount --- ui/src/views/iam/AddAccount.vue | 39 +++++++++++-------- .../network/CreateIsolatedNetworkForm.vue | 22 +++++------ 2 files changed, 34 insertions(+), 27 deletions(-) diff --git a/ui/src/views/iam/AddAccount.vue b/ui/src/views/iam/AddAccount.vue index 88bf848a3da1..8173115e7504 100644 --- a/ui/src/views/iam/AddAccount.vue +++ b/ui/src/views/iam/AddAccount.vue @@ -109,7 +109,7 @@ { - this.domainsList = response.listdomainsresponse.domain || [] - this.form.domain = this.domainsList[0].id || '' - }).catch(error => { - this.$notification.error({ - message: `${this.$t('label.error')} ${error.response.status}`, - description: error.response.data.errorresponse.errortext - }) + this.domain.loading = true + this.loadMore('listDomains', 1, this.domain) + }, + loadMore (apiToCall, page, sema) { + console.log('sema.loading ' + sema.loading) + const params = {} + params.listAll = true + params.details = 'min' + params.pagesize = 100 + params.page = page + var count + api(apiToCall, params).then(json => { + const listDomains = json.listdomainsresponse.domain + count = json.listdomainsresponse.count + this.domainsList = this.domainsList.concat(listDomains) }).finally(() => { - this.domainLoading = false + if (count <= this.domainsList.length) { + sema.loading = false + } else { + this.loadMore(apiToCall, page + 1, sema) + } + this.form.domainid = 0 }) }, fetchRoles () { diff --git a/ui/src/views/network/CreateIsolatedNetworkForm.vue b/ui/src/views/network/CreateIsolatedNetworkForm.vue index ad063b8d7a40..82203b0ae27b 100644 --- a/ui/src/views/network/CreateIsolatedNetworkForm.vue +++ b/ui/src/views/network/CreateIsolatedNetworkForm.vue @@ -77,7 +77,7 @@ :filterOption="(input, option) => { return option.children[0].children.toLowerCase().indexOf(input.toLowerCase()) >= 0 }" - :loading="domainLoading" + :loading="domain.loading" :placeholder="apiParams.domainid.description" @change="val => { handleDomainChange(domains[val]) }"> @@ -345,7 +345,7 @@ export default { return { actionLoading: false, domains: [], - domainLoading: false, + domain: { loading: false }, selectedDomain: {}, accountVisible: isAdminOrDomainAdmin(), accounts: [], @@ -459,25 +459,25 @@ export default { this.updateVPCCheckAndFetchNetworkOfferingData() }, fetchDomainData () { - this.domainLoading = true - this.loadMoreDomains(1) + this.domain.loading = true + this.loadMore('listDomains', 1, this.domain) }, - loadMoreDomains (page) { + loadMore (apiToCall, page, sema) { const params = {} params.listAll = true params.details = 'min' params.pagesize = 100 params.page = page - var domainCount - api('listDomains', params).then(json => { + var count + api(apiToCall, params).then(json => { const listDomains = json.listdomainsresponse.domain - domainCount = json.listdomainsresponse.count + count = json.listdomainsresponse.count this.domains = this.domains.concat(listDomains) }).finally(() => { - if (domainCount <= this.domains.length) { - this.domainLoading = false + if (count <= this.domains.length) { + sema.loading = false } else { - this.loadMoreDomains(page + 1) + this.loadMore(apiToCall, page + 1, sema) } this.form.domainid = 0 this.handleDomainChange(this.domains[0])