@@ -48,7 +48,7 @@ export default {
4848 return fields
4949 } ,
5050 details : ( ) => {
51- var fields = [ 'name' , 'id' , 'description' , 'type' , 'traffictype' , 'vpcid' , 'vlan' , 'broadcasturi' , 'cidr' , 'ip6cidr' , 'netmask' , 'gateway' , 'asnumber' , 'aclname' , 'ispersistent' , 'restartrequired' , 'reservediprange' , 'redundantrouter' , 'networkdomain' , 'egressdefaultpolicy' , 'zonename' , 'account' , 'domain ' , 'associatednetwork' , 'associatednetworkid' , 'ip4routing' , 'ip6routing' , 'dns1' , 'dns2' , 'ip6dns1' , 'ip6dns2' , 'publicmtu' , 'privatemtu' ]
51+ var fields = [ 'name' , 'id' , 'description' , 'type' , 'traffictype' , 'vpcid' , 'vlan' , 'broadcasturi' , 'cidr' , 'ip6cidr' , 'netmask' , 'gateway' , 'asnumber' , 'aclname' , 'ispersistent' , 'restartrequired' , 'reservediprange' , 'redundantrouter' , 'networkdomain' , 'egressdefaultpolicy' , 'zonename' , 'account' , 'domainpath ' , 'associatednetwork' , 'associatednetworkid' , 'ip4routing' , 'ip6firewall' , ' ip6routing' , 'ip6routes ', 'dns1' , 'dns2' , 'ip6dns1' , 'ip6dns2' , 'publicmtu' , 'privatemtu' ]
5252 if ( ! isAdmin ( ) ) {
5353 fields = fields . filter ( function ( e ) { return e !== 'broadcasturi' } )
5454 }
@@ -76,6 +76,14 @@ export default {
7676 name : 'routing.firewall' ,
7777 component : shallowRef ( defineAsyncComponent ( ( ) => import ( '@/views/network/RoutingFirewallRulesTab.vue' ) ) ) ,
7878 show : ( record , route , user ) => { return record . type === 'Isolated' && record . ip4routing && ! ( 'vpcname' in record ) && 'listRoutingFirewallRules' in store . getters . apis && ( [ 'Admin' , 'DomainAdmin' ] . includes ( user . roletype ) || record . account === user . account || record . projectid ) }
79+ } , {
80+ name : 'bgp.peers' ,
81+ component : shallowRef ( defineAsyncComponent ( ( ) => import ( '@/views/infra/zone/BgpPeersTab.vue' ) ) ) ,
82+ show : ( record , route , user ) => { return ! record . vpcid && [ 'Admin' ] . includes ( user . roletype ) && record . ip4routing === 'Dynamic' }
83+ } , {
84+ name : 'routing.firewall' ,
85+ component : shallowRef ( defineAsyncComponent ( ( ) => import ( '@/views/network/RoutingFirewallRulesTab.vue' ) ) ) ,
86+ show : ( record , route , user ) => { return record . type === 'Isolated' && record . ip4routing && ! ( 'vpcname' in record ) && 'listRoutingFirewallRules' in store . getters . apis && ( [ 'Admin' , 'DomainAdmin' ] . includes ( user . roletype ) || record . account === user . account || record . projectid ) }
7987 } , {
8088 name : 'ip.v6.firewall' ,
8189 component : shallowRef ( defineAsyncComponent ( ( ) => import ( '@/views/network/Ipv6FirewallRulesTab.vue' ) ) ) ,
@@ -1447,6 +1455,46 @@ export default {
14471455 show : ( record ) => { return ( record . allocationstate === 'Allocated' ) }
14481456 } ] ,
14491457 show : isZoneCreated
1458+ } ,
1459+ {
1460+ name : 'ipv4subnets' ,
1461+ title : 'label.ipv4.subnets' ,
1462+ icon : 'pic-center-outlined' ,
1463+ permission : [ 'listIpv4SubnetsForGuestNetwork' ] ,
1464+ columns : [ 'subnet' , 'zonename' , 'parentsubnet' , 'networkname' , 'vpcname' , 'created' , 'allocated' ] ,
1465+ details : [ 'subnet' , 'zonename' , 'zoneid' , 'parentsubnet' , 'networkname' , 'networkid' , 'vpcname' , 'vpcid' , 'created' , 'allocated' , 'state' ] ,
1466+ searchFilters : [ 'zoneid' ] ,
1467+ show : ( ) => {
1468+ if ( ! store . getters . zones || store . getters . zones . length === 0 ) {
1469+ return false
1470+ }
1471+ const AdvancedZonesWithRoutedmode = store . getters . zones . filter ( zone => zone . routedmodeenabled )
1472+ if ( isAdmin ( ) && ( AdvancedZonesWithRoutedmode && AdvancedZonesWithRoutedmode . length > 0 ) ) {
1473+ return true
1474+ }
1475+ return false
1476+ } ,
1477+ actions : [
1478+ {
1479+ api : 'createIpv4SubnetForGuestNetwork' ,
1480+ icon : 'plus-outlined' ,
1481+ label : 'label.add.ipv4.subnet' ,
1482+ listView : true ,
1483+ popup : true ,
1484+ component : shallowRef ( defineAsyncComponent ( ( ) => import ( '@/views/network/CreateIpv4SubnetForNetwork.vue' ) ) )
1485+ } ,
1486+ {
1487+ api : 'deleteIpv4SubnetForGuestNetwork' ,
1488+ icon : 'delete-outlined' ,
1489+ label : 'label.delete.ipv4.subnet' ,
1490+ message : 'message.action.delete.ipv4.subnet' ,
1491+ dataView : true ,
1492+ show : ( record ) => { return ! record . networkid } ,
1493+ groupAction : true ,
1494+ popup : true ,
1495+ groupMap : ( selection ) => { return selection . map ( x => { return { id : x } } ) }
1496+ }
1497+ ]
14501498 }
14511499 ]
14521500}
0 commit comments