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 17:04:57 +0300
commit496b7e93728ee3d3f0b1a446658d279cb0e897b8 (patch)
treee6d2a25f4a7e4c35de68ba9d82ba03504769ea98
parent351834d4d3e62ce863d1c377801db3382abd4d36 (diff)
downloadwebui-vue-sila_ui/fix-SILABMC-172.tar.xz
SILABMC-172: Fix: marker deleted static IP addresssila_ui/fix-SILABMC-172
-rw-r--r--src/store/modules/Settings/NetworkStore.js2
-rw-r--r--src/views/Settings/Network/TableIpv4.vue37
2 files changed, 29 insertions, 10 deletions
diff --git a/src/store/modules/Settings/NetworkStore.js b/src/store/modules/Settings/NetworkStore.js
index 125eca7a..14338e1d 100644
--- a/src/store/modules/Settings/NetworkStore.js
+++ b/src/store/modules/Settings/NetworkStore.js
@@ -213,6 +213,8 @@ const NetworkStore = {
});
},
async editIpv4Address({ dispatch, state }, ipv4TableData) {
+ // perhaps, this method name should include 'static'
+ // perhaps, this method name should not serve 'delete' case
return api
.patch(
`/redfish/v1/Managers/bmc/EthernetInterfaces/${state.selectedInterfaceId}`,
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));
},