Skip to content

Commit 265334c

Browse files
committed
a bit more generic (and copied to AddAccount
1 parent 037d594 commit 265334c

2 files changed

Lines changed: 34 additions & 27 deletions

File tree

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: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
:filterOption="(input, option) => {
7878
return option.children[0].children.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">
@@ -345,7 +345,7 @@ export default {
345345
return {
346346
actionLoading: false,
347347
domains: [],
348-
domainLoading: false,
348+
domain: { loading: false },
349349
selectedDomain: {},
350350
accountVisible: isAdminOrDomainAdmin(),
351351
accounts: [],
@@ -459,25 +459,25 @@ export default {
459459
this.updateVPCCheckAndFetchNetworkOfferingData()
460460
},
461461
fetchDomainData () {
462-
this.domainLoading = true
463-
this.loadMoreDomains(1)
462+
this.domain.loading = true
463+
this.loadMore('listDomains', 1, this.domain)
464464
},
465-
loadMoreDomains (page) {
465+
loadMore (apiToCall, page, sema) {
466466
const params = {}
467467
params.listAll = true
468468
params.details = 'min'
469469
params.pagesize = 100
470470
params.page = page
471-
var domainCount
472-
api('listDomains', params).then(json => {
471+
var count
472+
api(apiToCall, params).then(json => {
473473
const listDomains = json.listdomainsresponse.domain
474-
domainCount = json.listdomainsresponse.count
474+
count = json.listdomainsresponse.count
475475
this.domains = this.domains.concat(listDomains)
476476
}).finally(() => {
477-
if (domainCount <= this.domains.length) {
478-
this.domainLoading = false
477+
if (count <= this.domains.length) {
478+
sema.loading = false
479479
} else {
480-
this.loadMoreDomains(page + 1)
480+
this.loadMore(apiToCall, page + 1, sema)
481481
}
482482
this.form.domainid = 0
483483
this.handleDomainChange(this.domains[0])

0 commit comments

Comments
 (0)