Skip to content

Commit 5c5ea09

Browse files
authored
load (domains) continuously in dropdown boxes (#7931)
1 parent d627539 commit 5c5ea09

File tree

2 files changed

+39
-21
lines changed

2 files changed

+39
-21
lines changed

ui/src/views/iam/AddAccount.vue

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
<tooltip-label :title="$t('label.domainid')" :tooltip="apiParams.domainid.description"/>
110110
</template>
111111
<a-select
112-
:loading="domainLoading"
112+
:loading="domain.loading"
113113
v-model:value="form.domainid"
114114
:placeholder="apiParams.domainid.description"
115115
showSearch
@@ -207,7 +207,7 @@ export default {
207207
this.fetchTimeZone = debounce(this.fetchTimeZone, 800)
208208
return {
209209
loading: false,
210-
domainLoading: false,
210+
domain: { loading: false },
211211
domainsList: [],
212212
roleLoading: false,
213213
roles: [],
@@ -282,21 +282,28 @@ export default {
282282
}
283283
},
284284
fetchDomains () {
285-
this.domainLoading = true
286-
api('listDomains', {
287-
listAll: true,
288-
showicon: true,
289-
details: 'min'
290-
}).then(response => {
291-
this.domainsList = response.listdomainsresponse.domain || []
292-
this.form.domain = this.domainsList[0].id || ''
293-
}).catch(error => {
294-
this.$notification.error({
295-
message: `${this.$t('label.error')} ${error.response.status}`,
296-
description: error.response.data.errorresponse.errortext
297-
})
285+
this.domain.loading = true
286+
this.loadMore('listDomains', 1, this.domain)
287+
},
288+
loadMore (apiToCall, page, sema) {
289+
console.log('sema.loading ' + sema.loading)
290+
const params = {}
291+
params.listAll = true
292+
params.details = 'min'
293+
params.pagesize = 100
294+
params.page = page
295+
var count
296+
api(apiToCall, params).then(json => {
297+
const listDomains = json.listdomainsresponse.domain
298+
count = json.listdomainsresponse.count
299+
this.domainsList = this.domainsList.concat(listDomains)
298300
}).finally(() => {
299-
this.domainLoading = false
301+
if (count <= this.domainsList.length) {
302+
sema.loading = false
303+
} else {
304+
this.loadMore(apiToCall, page + 1, sema)
305+
}
306+
this.form.domainid = 0
300307
})
301308
},
302309
fetchRoles () {

ui/src/views/network/CreateIsolatedNetworkForm.vue

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
:filterOption="(input, option) => {
7878
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
7979
}"
80-
:loading="domainLoading"
80+
:loading="domain.loading"
8181
:placeholder="apiParams.domainid.description"
8282
@change="val => { handleDomainChange(domains[val]) }">
8383
<a-select-option v-for="(opt, optIndex) in domains" :key="optIndex" :label="opt.path || opt.name || opt.description">
@@ -375,7 +375,7 @@ export default {
375375
return {
376376
actionLoading: false,
377377
domains: [],
378-
domainLoading: false,
378+
domain: { loading: false },
379379
selectedDomain: {},
380380
accountVisible: isAdminOrDomainAdmin(),
381381
accounts: [],
@@ -497,15 +497,26 @@ export default {
497497
this.updateVPCCheckAndFetchNetworkOfferingData()
498498
},
499499
fetchDomainData () {
500+
this.domain.loading = true
501+
this.loadMore('listDomains', 1, this.domain)
502+
},
503+
loadMore (apiToCall, page, sema) {
500504
const params = {}
501505
params.listAll = true
502506
params.details = 'min'
503-
this.domainLoading = true
504-
api('listDomains', params).then(json => {
507+
params.pagesize = 100
508+
params.page = page
509+
var count
510+
api(apiToCall, params).then(json => {
505511
const listDomains = json.listdomainsresponse.domain
512+
count = json.listdomainsresponse.count
506513
this.domains = this.domains.concat(listDomains)
507514
}).finally(() => {
508-
this.domainLoading = false
515+
if (count <= this.domains.length) {
516+
sema.loading = false
517+
} else {
518+
this.loadMore(apiToCall, page + 1, sema)
519+
}
509520
this.form.domainid = 0
510521
this.handleDomainChange(this.domains[0])
511522
})

0 commit comments

Comments
 (0)