diff --git a/ui/src/components/view/ResourceView.vue b/ui/src/components/view/ResourceView.vue index f3f79e279f5..c7035a91237 100644 --- a/ui/src/components/view/ResourceView.vue +++ b/ui/src/components/view/ResourceView.vue @@ -43,7 +43,7 @@ v-for="tab in tabs" :tab="$t('label.' + tab.name)" :key="tab.name" - v-if="showHideTab(tab)"> + v-if="showTab(tab)"> @@ -97,8 +97,12 @@ export default { if (newItem.id === oldItem.id) return if (this.resource.associatednetworkid) { - api('listNetworks', { id: this.resource.associatednetworkid }).then(response => { - this.networkService = response.listnetworksresponse.network[0] + api('listNetworks', { id: this.resource.associatednetworkid, listall: true }).then(response => { + if (response && response.listnetworksresponse && response.listnetworksresponse.network) { + this.networkService = response.listnetworksresponse.network[0] + } else { + this.networkService = {} + } }) } } @@ -107,12 +111,15 @@ export default { onTabChange (key) { this.activeTab = key }, - showHideTab (tab) { + showTab (tab) { if ('networkServiceFilter' in tab) { - if (this.resource.virtualmachineid && tab.name !== 'Firewall') { + if (this.resource && this.resource.virtualmachineid && !this.resource.vpcid && tab.name !== 'firewall') { return false } - if (this.resource && this.resource.vpcid && tab.name !== 'Firewall') { + if (this.resource && this.resource.virtualmachineid && this.resource.vpcid) { + return false + } + if (this.resource && this.resource.vpcid && tab.name !== 'firewall') { return true } return this.networkService && this.networkService.service && diff --git a/ui/src/views/network/EnableStaticNat.vue b/ui/src/views/network/EnableStaticNat.vue index 3a7c35f75f8..c9e22b0ceab 100644 --- a/ui/src/views/network/EnableStaticNat.vue +++ b/ui/src/views/network/EnableStaticNat.vue @@ -172,7 +172,7 @@ export default { domainid: this.resource.domainid, keyword: this.searchQuery }).then(response => { - this.vmsList = response.listvirtualmachinesresponse.virtualmachine + this.vmsList = response.listvirtualmachinesresponse.virtualmachine || [] }).catch(error => { this.$notifyError(error) }).finally(() => { @@ -204,9 +204,9 @@ export default { this.loading = true api('listNics', { virtualmachineid: this.selectedVm, - networkid: this.resource.associatednetworkid + networkid: this.resource.associatednetworkid || this.selectedVpcTier }).then(response => { - this.nicsList = response.listnicsresponse.nic + this.nicsList = response.listnicsresponse.nic || [] let secondaryIps = this.nicsList.map(item => item.secondaryip) diff --git a/ui/src/views/network/LoadBalancing.vue b/ui/src/views/network/LoadBalancing.vue index b2586765c71..638da12b561 100644 --- a/ui/src/views/network/LoadBalancing.vue +++ b/ui/src/views/network/LoadBalancing.vue @@ -18,6 +18,21 @@