diff --git a/ui/src/components/view/ListView.vue b/ui/src/components/view/ListView.vue
index 0c19ea8edab..8f4e58e93c7 100644
--- a/ui/src/components/view/ListView.vue
+++ b/ui/src/components/view/ListView.vue
@@ -149,6 +149,10 @@
static-nat
+
+
+ system
+
{{ ipV6Address(text, record) }}
@@ -378,8 +382,8 @@
{{ record.enabled ? 'Enabled' : 'Disabled' }}
-
- {{ $toLocaleDate(text) }}
+
+ {{ text && $toLocaleDate(text) }}
{{ getDateAtTimeZone(text, record.timezone) }}
diff --git a/ui/src/config/section/network.js b/ui/src/config/section/network.js
index 6691afa247d..6ea495ec604 100644
--- a/ui/src/config/section/network.js
+++ b/ui/src/config/section/network.js
@@ -840,10 +840,13 @@ export default {
message: 'message.action.release.ip',
docHelp: 'adminguide/networking_and_traffic.html#releasing-an-ip-address-alloted-to-a-vpc',
dataView: true,
- show: (record) => { return record.state === 'Allocated' && !record.issourcenat },
+ show: (record) => { return record.state === 'Allocated' && !record.issourcenat && !record.issystem },
groupAction: true,
popup: true,
- groupMap: (selection) => { return selection.map(x => { return { id: x } }) }
+ groupMap: (selection) => { return selection.map(x => { return { id: x } }) },
+ groupShow: (selectedIps) => {
+ return selectedIps.every((ip) => ip.state === 'Allocated' && !ip.issourcenat && !ip.issystem)
+ }
},
{
api: 'reserveIpAddress',
@@ -863,7 +866,10 @@ export default {
show: (record) => { return record.state === 'Reserved' },
groupAction: true,
popup: true,
- groupMap: (selection) => { return selection.map(x => { return { id: x } }) }
+ groupMap: (selection) => { return selection.map(x => { return { id: x } }) },
+ groupShow: (selectedIps) => {
+ return selectedIps.every((ip) => ip.state === 'Reserved')
+ }
}
]
},