diff --git a/ui/src/components/view/SearchView.vue b/ui/src/components/view/SearchView.vue index c82b1172f2d6..cb0952c1b031 100644 --- a/ui/src/components/view/SearchView.vue +++ b/ui/src/components/view/SearchView.vue @@ -80,7 +80,7 @@ - + @@ -90,13 +90,6 @@ {{ $t((['storageid'].includes(field.name) || !opt.path) ? opt.name : opt.path) }} - - - - - - - {{ $t(opt.path || opt.name) }} @@ -313,7 +306,7 @@ export default { } if (['zoneid', 'domainid', 'imagestoreid', 'storageid', 'state', 'account', 'hypervisor', 'level', 'clusterid', 'podid', 'groupid', 'entitytype', 'accounttype', 'systemvmtype', 'scope', 'provider', - 'type', 'scope', 'managementserverid', 'serviceofferingid', 'diskofferingid', 'networkid', 'usagetype', 'restartrequired'].includes(item) + 'type', 'scope', 'managementserverid', 'serviceofferingid', 'diskofferingid', 'networkid', 'usagetype', 'restartrequired', 'guestiptype'].includes(item) ) { type = 'list' } else if (item === 'tags') { @@ -335,9 +328,9 @@ export default { return arrayField }, fetchStaticFieldData (arrayField) { - if (arrayField.includes('type')) { - if (this.$route.path === '/guestnetwork' || this.$route.path.includes('/guestnetwork/')) { - const typeIndex = this.fields.findIndex(item => item.name === 'type') + if (arrayField.includes('type') || arrayField.includes('guestiptype')) { + if (this.$route.path.includes('/guestnetwork') || this.$route.path.includes('/networkoffering')) { + const typeIndex = this.fields.findIndex(item => ['type', 'guestiptype'].includes(item.name)) this.fields[typeIndex].loading = true this.fields[typeIndex].opts = this.fetchGuestNetworkTypes() this.fields[typeIndex].loading = false @@ -982,7 +975,7 @@ export default { }, fetchGuestNetworkTypes () { const types = [] - if (this.apiName.indexOf('listNetworks') > -1) { + if (['listNetworks', 'listNetworkOfferings'].includes(this.apiName)) { types.push({ id: 'Isolated', name: 'label.isolated' diff --git a/ui/src/config/section/offering.js b/ui/src/config/section/offering.js index e542f3d8df3c..3d3e0f7d5e91 100644 --- a/ui/src/config/section/offering.js +++ b/ui/src/config/section/offering.js @@ -373,10 +373,22 @@ export default { icon: 'wifi-outlined', docHelp: 'adminguide/networking.html#network-offerings', permission: ['listNetworkOfferings'], - searchFilters: ['name', 'zoneid', 'domainid', 'tags'], + filters: ['all', 'forvpc', 'guestnetwork'], + searchFilters: ['name', 'zoneid', 'domainid', 'guestiptype', 'tags'], columns: ['name', 'state', 'guestiptype', 'traffictype', 'networkrate', 'domain', 'zone', 'order'], details: ['name', 'id', 'displaytext', 'guestiptype', 'traffictype', 'internetprotocol', 'networkrate', 'ispersistent', 'egressdefaultpolicy', 'availability', 'conservemode', 'specifyvlan', 'routingmode', 'specifyasnumber', 'specifyipranges', 'supportspublicaccess', 'supportsstrechedl2subnet', 'forvpc', 'fornsx', 'networkmode', 'service', 'tags', 'domain', 'zone'], resourceType: 'NetworkOffering', + customParamHandler: (params, query) => { + const { filter } = query + if (!filter) { + return params + } + params.forvpc = filter === 'forvpc' + if (filter === 'all') { + delete params.forvpc + } + return params + }, tabs: [ { name: 'details', diff --git a/ui/src/views/AutogenView.vue b/ui/src/views/AutogenView.vue index bfdde77191ee..07c6b53d29e2 100644 --- a/ui/src/views/AutogenView.vue +++ b/ui/src/views/AutogenView.vue @@ -692,7 +692,7 @@ export default { return this.$route.query.filter } const routeName = this.$route.name - if ((this.projectView && routeName === 'vm') || (['Admin', 'DomainAdmin'].includes(this.$store.getters.userInfo.roletype) && ['vm', 'iso', 'template', 'pod', 'cluster', 'host', 'systemvm', 'router', 'storagepool'].includes(routeName)) || ['account', 'guestnetwork', 'guestvlans', 'oauthsetting', 'guestos', 'guestoshypervisormapping', 'kubernetes', 'asnumbers'].includes(routeName)) { + if ((this.projectView && routeName === 'vm') || (['Admin', 'DomainAdmin'].includes(this.$store.getters.userInfo.roletype) && ['vm', 'iso', 'template', 'pod', 'cluster', 'host', 'systemvm', 'router', 'storagepool'].includes(routeName)) || ['account', 'guestnetwork', 'guestvlans', 'oauthsetting', 'guestos', 'guestoshypervisormapping', 'kubernetes', 'asnumbers', 'networkoffering'].includes(routeName)) { return 'all' } if (['publicip'].includes(routeName)) {