* [pve-devel] [PATCH pve-manager] sdn: subnet: proper change detect for dhcp range panel
@ 2023-11-21 19:46 Stefan Hanreich
2023-11-21 21:14 ` [pve-devel] applied: " Thomas Lamprecht
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Hanreich @ 2023-11-21 19:46 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
---
www/manager6/sdn/SubnetEdit.js | 51 +++++++++++++++++++++++++---------
1 file changed, 38 insertions(+), 13 deletions(-)
diff --git a/www/manager6/sdn/SubnetEdit.js b/www/manager6/sdn/SubnetEdit.js
index 4fe16ab92..8851b013a 100644
--- a/www/manager6/sdn/SubnetEdit.js
+++ b/www/manager6/sdn/SubnetEdit.js
@@ -67,25 +67,37 @@ Ext.define('PVE.sdn.SubnetDhcpRangePanel', {
me.initField();
},
+ // since value is an array of objects we need to override isEquals here
+ isEqual: function(value1, value2) {
+ return JSON.stringify(value1) === JSON.stringify(value2);
+ },
+
getValue: function() {
let me = this;
let store = me.lookup('grid').getStore();
- let data = [];
+ let value = [];
store.getData()
- .each((item) =>
- data.push(`start-address=${item.data['start-address']},end-address=${item.data['end-address']}`),
- );
+ .each((item) => {
+ // needs a deep copy otherwise we run in to ExtJS reference
+ // shenaningans
+ value.push({
+ 'start-address': item.data['start-address'],
+ 'end-address': item.data['end-address'],
+ });
+ });
- return data;
+ return value;
},
getSubmitData: function() {
let me = this;
let data = {};
- let value = me.getValue();
+
+ let value = me.getValue()
+ .map((item) => `start-address=${item['start-address']},end-address=${item['end-address']}`);
if (value.length) {
data[me.getName()] = value;
@@ -97,7 +109,19 @@ Ext.define('PVE.sdn.SubnetDhcpRangePanel', {
setValue: function(dhcpRanges) {
let me = this;
let store = me.lookup('grid').getStore();
- store.setData(dhcpRanges);
+
+ let data = [];
+
+ dhcpRanges.forEach((item) => {
+ // needs a deep copy otherwise we run in to ExtJS reference
+ // shenaningans
+ data.push({
+ 'start-address': item['start-address'],
+ 'end-address': item['end-address'],
+ });
+ });
+
+ store.setData(data);
},
getErrors: function() {
@@ -113,6 +137,8 @@ Ext.define('PVE.sdn.SubnetDhcpRangePanel', {
addRange: function() {
let me = this;
me.lookup('grid').getStore().add({});
+
+ me.getView().checkChange();
},
removeRange: function(field) {
@@ -120,6 +146,8 @@ Ext.define('PVE.sdn.SubnetDhcpRangePanel', {
let record = field.getWidgetRecord();
me.lookup('grid').getStore().remove(record);
+
+ me.getView().checkChange();
},
onValueChange: function(field, value) {
@@ -129,6 +157,8 @@ Ext.define('PVE.sdn.SubnetDhcpRangePanel', {
record.set(column.dataIndex, value);
record.commit();
+
+ me.getView().checkChange();
},
control: {
@@ -249,12 +279,7 @@ Ext.define('PVE.sdn.SubnetEdit', {
if (!me.isCreate) {
me.load({
success: function(response, options) {
- let values = response.result.data;
- ipanel.setValues(values);
-
- if (values['dhcp-range']) {
- dhcpPanel.setValue(values['dhcp-range']);
- }
+ me.setValues(response.result.data);
},
});
}
--
2.39.2
^ permalink raw reply [flat|nested] 2+ messages in thread
* [pve-devel] applied: [PATCH pve-manager] sdn: subnet: proper change detect for dhcp range panel
2023-11-21 19:46 [pve-devel] [PATCH pve-manager] sdn: subnet: proper change detect for dhcp range panel Stefan Hanreich
@ 2023-11-21 21:14 ` Thomas Lamprecht
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2023-11-21 21:14 UTC (permalink / raw)
To: Proxmox VE development discussion, Stefan Hanreich
Am 21/11/2023 um 20:46 schrieb Stefan Hanreich:
> Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
> ---
> www/manager6/sdn/SubnetEdit.js | 51 +++++++++++++++++++++++++---------
> 1 file changed, 38 insertions(+), 13 deletions(-)
>
>
applied, thanks!
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-11-21 21:15 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-11-21 19:46 [pve-devel] [PATCH pve-manager] sdn: subnet: proper change detect for dhcp range panel Stefan Hanreich
2023-11-21 21:14 ` [pve-devel] applied: " Thomas Lamprecht
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox