diff --git a/ui/src/views/iam/AddAccount.vue b/ui/src/views/iam/AddAccount.vue
index 467a4a24ed8..bfab8df6648 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 046510dacf2..e9830bba847 100644
--- a/ui/src/views/network/CreateIsolatedNetworkForm.vue
+++ b/ui/src/views/network/CreateIsolatedNetworkForm.vue
@@ -77,7 +77,7 @@
:filterOption="(input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
}"
- :loading="domainLoading"
+ :loading="domain.loading"
:placeholder="apiParams.domainid.description"
@change="val => { handleDomainChange(domains[val]) }">
@@ -375,7 +375,7 @@ export default {
return {
actionLoading: false,
domains: [],
- domainLoading: false,
+ domain: { loading: false },
selectedDomain: {},
accountVisible: isAdminOrDomainAdmin(),
accounts: [],
@@ -497,15 +497,26 @@ export default {
this.updateVPCCheckAndFetchNetworkOfferingData()
},
fetchDomainData () {
+ this.domain.loading = true
+ this.loadMore('listDomains', 1, this.domain)
+ },
+ loadMore (apiToCall, page, sema) {
const params = {}
params.listAll = true
params.details = 'min'
- this.domainLoading = true
- api('listDomains', params).then(json => {
+ params.pagesize = 100
+ params.page = page
+ var count
+ api(apiToCall, params).then(json => {
const listDomains = json.listdomainsresponse.domain
+ count = json.listdomainsresponse.count
this.domains = this.domains.concat(listDomains)
}).finally(() => {
- this.domainLoading = false
+ if (count <= this.domains.length) {
+ sema.loading = false
+ } else {
+ this.loadMore(apiToCall, page + 1, sema)
+ }
this.form.domainid = 0
this.handleDomainChange(this.domains[0])
})