diff --git a/ui/src/components/view/SearchView.vue b/ui/src/components/view/SearchView.vue index d0e962c58e5d..912c4d1be7b6 100644 --- a/ui/src/components/view/SearchView.vue +++ b/ui/src/components/view/SearchView.vue @@ -249,7 +249,8 @@ export default { this.fetchDynamicFieldData(fieldname, event.target.value) }, onSelectFieldChange (fieldname) { - if (fieldname === 'domainid') { + const fetchAccountOptions = fieldname === 'domainid' && this.fields.some((field) => field.name === 'account') + if (fetchAccountOptions) { this.fetchDynamicFieldData('account') } }, @@ -711,10 +712,6 @@ export default { if (Array.isArray(arrayField)) { this.fillFormFieldValues() } - if (networkIndex > -1) { - this.fields[networkIndex].loading = false - } - this.fillFormFieldValues() }) }, initFormFieldData () { @@ -782,7 +779,7 @@ export default { params.domainid = this.form.domainid } api('listAccounts', params).then(json => { - var account = json.listaccountsresponse.account + let account = json?.listaccountsresponse?.account || [] if (this.form.domainid) { account = account.filter(a => a.domainid === this.form.domainid) } @@ -1323,7 +1320,7 @@ export default { this.searchQuery = value this.$emit('search', { searchQuery: this.searchQuery }) }, - onClear () { + async onClear () { this.formRef.value.resetFields() this.form = reactive({}) this.isFiltered = false @@ -1331,6 +1328,14 @@ export default { this.inputValue = null this.searchQuery = null this.paramsFilter = {} + + const refreshAccountOptions = ['account', 'domainid'].every((field) => { + return this.fields.some((searchViewField) => searchViewField.name === field) + }) + if (refreshAccountOptions) { + await this.fetchDynamicFieldData('account') + } + this.$emit('search', this.paramsFilter) }, handleSubmit () {