summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandr Ilenko <AIlenko@IBS.RU>2022-07-28 15:07:15 +0300
committerAlexandr Ilenko <AIlenko@IBS.RU>2022-08-01 21:11:13 +0300
commit986c3c5e205e3a74b388622196c5eee43f1ba2c0 (patch)
treefe8972c78e7d04c9aad951234577a40d0123693e
parent123366ccc5872cf947971ab89bfa5eb968334a59 (diff)
downloadwebui-vue-986c3c5e205e3a74b388622196c5eee43f1ba2c0.tar.xz
SILABMC-172: Fix: marker deleted static IP address
-rw-r--r--src/views/_ibs/Settings/Network/TableIpv4.vue37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/views/_ibs/Settings/Network/TableIpv4.vue b/src/views/_ibs/Settings/Network/TableIpv4.vue
index a8a0486d..7954f2cd 100644
--- a/src/views/_ibs/Settings/Network/TableIpv4.vue
+++ b/src/views/_ibs/Settings/Network/TableIpv4.vue
@@ -137,7 +137,9 @@ export default {
value: 'delete',
title: this.$t('pageNetwork.table.deleteIpv4'),
},
- ],
+ ].filter((action) => {
+ return action.value === 'delete' && ipv4.AddressOrigin === 'Static';
+ }),
};
});
},
@@ -147,17 +149,32 @@ export default {
}
},
deleteIpv4TableRow(index) {
+ const deleteMarker = null;
+ const newIpv4StaticArray = this.form.ipv4TableItems
+ .map((ipv4, idx) => {
+ // address cannot be matched, except by their index
+ if (idx === index) {
+ return deleteMarker;
+ }
+ return ipv4;
+ })
+ .filter((ipv4) => {
+ return ipv4 === deleteMarker || ipv4.AddressOrigin === 'Static';
+ })
+ .map((ipv4) => {
+ if (ipv4 === deleteMarker) {
+ return deleteMarker;
+ }
+ const { Address, SubnetMask, Gateway } = ipv4;
+ return {
+ Address,
+ SubnetMask,
+ Gateway,
+ };
+ });
this.form.ipv4TableItems.splice(index, 1);
- const newIpv4Array = this.form.ipv4TableItems.map((ipv4) => {
- const { Address, SubnetMask, Gateway } = ipv4;
- return {
- Address,
- SubnetMask,
- Gateway,
- };
- });
this.$store
- .dispatch('network/editIpv4Address', newIpv4Array)
+ .dispatch('network/editIpv4Address', newIpv4StaticArray)
.then((message) => this.successToast(message))
.catch(({ message }) => this.errorToast(message));
},