luci: tools: Fix save changes into modal dialog for NFQWS_OPT

This commit is contained in:
remittor
2025-12-27 10:29:21 +03:00
parent 80f15e3da1
commit a56b1e3f1c

View File

@@ -404,13 +404,13 @@ return baseclass.extend({
E('button', { E('button', {
'id': 'btn_save', 'id': 'btn_save',
'class': 'btn cbi-button-positive important', 'class': 'btn cbi-button-positive important',
'click': ui.createHandlerFn(this, this.handleSave), 'click': ui.createHandlerFn(this, this.handleSaveAdv),
}, _('Save')), }, _('Save')),
]), ]),
]); ]);
}, },
handleSave: function(ev) { handleSaveAdv: function(ev) {
let txt = document.getElementById('widget.modal_content'); let txt = document.getElementById('widget.modal_content');
let value = txt.value.trim().replace(/\r\n/g, '\n') + '\n'; let value = txt.value.trim().replace(/\r\n/g, '\n') + '\n';
@@ -515,13 +515,13 @@ return baseclass.extend({
E('button', { E('button', {
'id': 'btn_save', 'id': 'btn_save',
'class': 'btn cbi-button-positive important', 'class': 'btn cbi-button-positive important',
'click': ui.createHandlerFn(this, this.handleSave), 'click': ui.createHandlerFn(this, this.handleSaveAdv),
}, _('Save')), }, _('Save')),
]), ]),
]); ]);
}, },
handleSave: function(ev) { handleSaveAdv: function(ev) {
let txt = document.getElementById('widget.modal_content'); let txt = document.getElementById('widget.modal_content');
let value = txt.value.trim(); let value = txt.value.trim();
if (this.multiline) { if (this.multiline) {
@@ -544,19 +544,32 @@ return baseclass.extend({
} }
value = value.replace(/˂/g, '<'); value = value.replace(/˂/g, '<');
value = value.replace(/˃/g, '>'); value = value.replace(/˃/g, '>');
try {
let elem2 = null;
let elem = document.getElementById("cbi-zapret-" + this.cfgsec + "-_" + this.cfgparam); let elem = document.getElementById("cbi-zapret-" + this.cfgsec + "-_" + this.cfgparam);
if (elem) { if (elem) {
if (!elem2) {
elem2 = elem.querySelector('div');
}
if (!elem2) {
elem2 = elem.querySelector('output');
}
}
if (elem2) {
let val = value.trim(); let val = value.trim();
if (this.multiline) { if (this.multiline) {
val = val.replace(/</g, '˂'); val = val.replace(/</g, '˂');
val = val.replace(/>/g, '˃'); val = val.replace(/>/g, '˃');
val = val.replace(/\n/g, '<br/>'); val = val.replace(/\n/g, '<br/>');
elem.querySelector('div').innerHTML = val; elem2.innerHTML = val;
} else { } else {
elem.querySelector('div').textContent = val; elem2.textContent = val;
} }
} }
uci.set('zapret2', this.cfgsec, this.cfgparam, value); } catch(e) {
console.error('ERROR: cannot found elem for ' + this.cfgparam);
}
uci.set('zapret', this.cfgsec, this.cfgparam, value);
uci.save().then(ui.hideModal); uci.save().then(ui.hideModal);
}, },