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)) {