summaryrefslogtreecommitdiff
path: root/src/views/Settings
diff options
context:
space:
mode:
authorAlexandr Ilenko <AIlenko@IBS.RU>2022-07-28 15:07:15 +0300
committerAlexandr Ilenko <AIlenko@IBS.RU>2022-08-02 13:08:38 +0300
commite9aee6eb311de6833ebae7fda1bc1d674b0e36e0 (patch)
treed080e7d1860fb88bc9a5b89a542cff5a34e6f2b9 /src/views/Settings
parent72b0bc1e6cbec314f6c6298a61e03b9db343e47e (diff)
downloadwebui-vue-e9aee6eb311de6833ebae7fda1bc1d674b0e36e0.tar.xz
SILABMC-172: Fix: marker deleted static IP address
Diffstat (limited to 'src/views/Settings')
-rw-r--r--src/views/Settings/Network/TableIpv4.vue37
1 files changed, 27 insertions, 10 deletions
diff --git a/src/views/Settings/Network/TableIpv4.vue b/src/views/Settings/Network/TableIpv4.vue
index 75870031..ddabca01 100644
--- a/src/views/Settings/Network/TableIpv4.vue
+++ b/src/views/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));
},