diff options
author | Alexandr Ilenko <AIlenko@IBS.RU> | 2022-08-02 13:09:46 +0300 |
---|---|---|
committer | Alexandr Ilenko <AIlenko@IBS.RU> | 2022-08-02 13:09:46 +0300 |
commit | 7721bc3be40731c87003af5cc17c78b6001c0bc1 (patch) | |
tree | 90bd883174a976a8c60d25f5d7a6fd9c4c1afd42 | |
parent | 72b0bc1e6cbec314f6c6298a61e03b9db343e47e (diff) | |
parent | 2005a6f64917f22b5f1a4f39a1d9572e11b308df (diff) | |
download | webui-vue-7721bc3be40731c87003af5cc17c78b6001c0bc1.tar.xz |
Merge branch 'sila-fix/SILABMC-172' into sila
-rw-r--r-- | src/store/modules/Settings/NetworkStore.js | 2 | ||||
-rw-r--r-- | src/views/Settings/Network/TableIpv4.vue | 37 | ||||
-rw-r--r-- | src/views/_ibs/Settings/Network/TableIpv4.vue | 37 | ||||
-rw-r--r-- | src/views/_sila/Settings/Network/TableIpv4.vue | 37 |
4 files changed, 83 insertions, 30 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)); }, 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)); }, diff --git a/src/views/_sila/Settings/Network/TableIpv4.vue b/src/views/_sila/Settings/Network/TableIpv4.vue index 75870031..ddabca01 100644 --- a/src/views/_sila/Settings/Network/TableIpv4.vue +++ b/src/views/_sila/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)); }, |