From 2ecf3cf5d074d9edfbf46bc5452e90532900f790 Mon Sep 17 00:00:00 2001 From: remittor Date: Fri, 9 Jan 2026 22:31:11 +0300 Subject: [PATCH] luci: Fix js-files for unification --- .../resources/view/zapret2/dmnlog.js | 14 ++- .../resources/view/zapret2/service.js | 21 ++-- .../resources/view/zapret2/settings.js | 100 +++++++++++++----- .../resources/view/zapret2/tools.js | 9 +- .../resources/view/zapret2/updater.js | 6 +- 5 files changed, 102 insertions(+), 48 deletions(-) diff --git a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/dmnlog.js b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/dmnlog.js index e7f0618..ee94bfb 100644 --- a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/dmnlog.js +++ b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/dmnlog.js @@ -11,7 +11,7 @@ return view.extend({ retrieveLog: async function() { return Promise.all([ L.resolveDefault(fs.stat('/bin/cat'), null), - fs.exec('/usr/bin/find', [ '/tmp', '-maxdepth', '1', '-type', 'f', '-name', 'zapret2+*.log' ]), + fs.exec('/usr/bin/find', [ '/tmp', '-maxdepth', '1', '-type', 'f', '-name', tools.appName+'+*.log' ]), uci.load(tools.appName), ]).then(function(status_array) { var filereader = status_array[0] ? status_array[0].path : null; @@ -64,7 +64,7 @@ return view.extend({ }).catch(function(e) { ui.addNotification(null, E('p', _('Unable to execute or read contents') + ': %s [ %s | %s | %s ]'.format( - e.message, 'retrieveLogData', 'uci.zapret' + e.message, 'retrieveLogData', 'uci.'+tools.appName ))); return null; }); @@ -72,7 +72,7 @@ return view.extend({ const [, lineno, colno] = e.stack.match(/(\d+):(\d+)/); ui.addNotification(null, E('p', _('Unable to execute or read contents') + ': %s [ lineno: %s | %s | %s | %s ]'.format( - e.message, lineno, 'retrieveLog', 'uci.zapret' + e.message, lineno, 'retrieveLog', 'uci.'+tools.appName ))); return null; }); @@ -130,7 +130,7 @@ return view.extend({ return; } var h2 = E('div', {'class' : 'cbi-title-section'}, [ - E('h2', {'class': 'cbi-title-field'}, [ _('Zapret2') + ' - ' + _('Log Viewer') ]), + E('h2', {'class': 'cbi-title-field'}, [ tools.AppName + ' - ' + _('Log Viewer') ]), ]); var tabs = E('div', {}, E('div')); @@ -140,7 +140,11 @@ return view.extend({ var logfn = logdata[log_num].filename; let filename = logfn.replace(/.*\//, ''); let fname = filename.split('.')[0]; - fname = fname.replace(/^(zapret2\+)/, ''); + if (tools.appName == 'zapret2') { + fname = fname.replace(/^(zapret2\+)/, ''); + } else { + fname = fname.replace(/^(zapret\+)/, ''); + } let fn = fname.split('+'); let tabNameText = fname.replace(/\+/g, ' '); diff --git a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/service.js b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/service.js index 699b3ba..97f2125 100644 --- a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/service.js +++ b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/service.js @@ -55,7 +55,7 @@ return view.extend({ ]).catch(e => { ui.addNotification(null, E('p', _('Unable to execute or read contents') + ': %s [ %s | %s | %s ]'.format( - e.message, tools.execPath, 'tools.getInitState', 'uci.zapret2' + e.message, tools.execPath, 'tools.getInitState', 'uci.'+tools.appName ))); }); }, @@ -248,9 +248,10 @@ return view.extend({ let strat = '' + this.nfqws_strat_list[id]; strat_list.push( E('option', { value: 'strat_' + id }, [ strat ] ) ); } + let label_nfqws = (tools.appName == 'zapret2') ? _('NFQWS2_OPT strategy: ') : _('NFQWS_OPT strategy: '); let nfqws_strat = E('label', [ - _('NFQWS2_OPT strategy: '), - E('select', { id: 'cfg_nfqws2_strat' }, strat_list) + label_nfqws, + E('select', { id: 'cfg_nfqws_strat' }, strat_list) ]); let cancel_button = E('button', { @@ -274,7 +275,7 @@ return view.extend({ opt_flags += '(set_mode_autohostlist)'; }; //console.log('RESET: opt_flags = ' + opt_flags); - let sel_strat = document.getElementById('cfg_nfqws2_strat'); + let sel_strat = document.getElementById('cfg_nfqws_strat'); let opt_strat = sel_strat.options[sel_strat.selectedIndex].text; //console.log('RESET: strat = ' + opt_strat); opt_flags += '(sync)'; @@ -399,23 +400,23 @@ return view.extend({ poll.add(L.bind(this.statusPoll, this)); - let page_title = _('Zapret2'); + let page_title = tools.AppName; let pkgdict = tools.decode_pkg_list(pkg_list.stdout, false); page_title += '   '; - if (pkgdict['zapret2'] === undefined || pkgdict['zapret2'] == '') { + if (pkgdict[tools.appName] === undefined || pkgdict[tools.appName] == '') { page_title += 'unknown version'; } else { - page_title += 'v' + pkgdict['zapret2']; + page_title += 'v' + pkgdict[tools.appName]; } let aux1 = E('em'); let aux2 = E('em'); - if (pkgdict['zapret2'] != pkgdict['luci-app-zapret2']) { - let errtxt = 'LuCI APP v' + pkgdict['luci-app-zapret2'] + ' [ incorrect version! ]'; + if (pkgdict[tools.appName] != pkgdict['luci-app-'+tools.appName]) { + let errtxt = 'LuCI APP v' + pkgdict['luci-app-'+tools.appName] + ' [ incorrect version! ]'; aux1 = E('div', { 'class': 'label-status error' }, errtxt); aux2 = E('div', { }, ' '); } - let url1 = 'https://github.com/bol-van/zapret2'; + let url1 = 'https://github.com/bol-van/'+tools.appName; let url2 = 'https://github.com/remittor/zapret-openwrt'; return E([ diff --git a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/settings.js b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/settings.js index 3d844fc..c1a7adb 100644 --- a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/settings.js +++ b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/settings.js @@ -48,7 +48,7 @@ return view.extend({ let m, s, o, tabname; - m = new form.Map(tools.appName, _('Zapret2') + ' - ' + _('Settings')); + m = new form.Map(tools.appName, tools.AppName + ' - ' + _('Settings')); s = m.section(form.NamedSection, 'config'); s.anonymous = true; @@ -106,8 +106,12 @@ return view.extend({ /* NFQWS_OPT_DESYNC tab */ - tabname = 'nfqws2_params'; - s.tab(tabname, _('NFQWS2 options')); + tabname = 'nfqws_params'; + if (tools.appName == 'zapret2') { + s.tab(tabname, _('NFQWS2 options')); + } else { + s.tab(tabname, _('NFQWS options')); + } let add_delim = function(sec, url = null) { let o = sec.taboption(tabname, form.DummyValue, '_hr'); @@ -154,7 +158,11 @@ return view.extend({ btn.onclick = () => new tools.longstrEditDialog('config', param, param, desc, rows, multiline).show(); }; - o = s.taboption(tabname, form.Flag, 'NFQWS2_ENABLE', _('NFQWS2_ENABLE')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Flag, 'NFQWS2_ENABLE', _('NFQWS2_ENABLE')); + } else { + o = s.taboption(tabname, form.Flag, 'NFQWS_ENABLE', _('NFQWS_ENABLE')); + } o.rmempty = false; o.default = 1; @@ -173,41 +181,77 @@ return view.extend({ o.validate = function(section_id, value) { return true; }; o.write = function(section_id, value) { return form.Value.prototype.write.call(this, section_id, (value == null || value.trim() == '') ? "\t" : value.trim()); }; - o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_TCP', _('NFQWS2_PORTS_TCP')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_TCP', _('NFQWS2_PORTS_TCP')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_PORTS_TCP', _('NFQWS_PORTS_TCP')); + } o.rmempty = false; o.datatype = 'string'; - o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_UDP', _('NFQWS2_PORTS_UDP')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_UDP', _('NFQWS2_PORTS_UDP')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_PORTS_UDP', _('NFQWS_PORTS_UDP')); + } o.rmempty = false; o.datatype = 'string'; - o = s.taboption(tabname, form.Value, 'NFQWS2_TCP_PKT_OUT', _('NFQWS2_TCP_PKT_OUT')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_TCP_PKT_OUT', _('NFQWS2_TCP_PKT_OUT')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_TCP_PKT_OUT', _('NFQWS_TCP_PKT_OUT')); + } o.rmempty = false; o.datatype = 'string'; - o = s.taboption(tabname, form.Value, 'NFQWS2_TCP_PKT_IN', _('NFQWS2_TCP_PKT_IN')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_TCP_PKT_IN', _('NFQWS2_TCP_PKT_IN')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_TCP_PKT_IN', _('NFQWS_TCP_PKT_IN')); + } o.rmempty = false; o.datatype = 'string'; - o = s.taboption(tabname, form.Value, 'NFQWS2_UDP_PKT_OUT', _('NFQWS2_UDP_PKT_OUT')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_UDP_PKT_OUT', _('NFQWS2_UDP_PKT_OUT')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_UDP_PKT_OUT', _('NFQWS_UDP_PKT_OUT')); + } o.rmempty = false; o.datatype = 'string'; - o = s.taboption(tabname, form.Value, 'NFQWS2_UDP_PKT_IN', _('NFQWS2_UDP_PKT_IN')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_UDP_PKT_IN', _('NFQWS2_UDP_PKT_IN')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_UDP_PKT_IN', _('NFQWS_UDP_PKT_IN')); + } o.rmempty = false; o.datatype = 'string'; - o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_TCP_KEEPALIVE', _('NFQWS2_PORTS_TCP_KEEPALIVE')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_TCP_KEEPALIVE', _('NFQWS2_PORTS_TCP_KEEPALIVE')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_PORTS_TCP_KEEPALIVE', _('NFQWS_PORTS_TCP_KEEPALIVE')); + } o.rmempty = false; o.datatype = 'uinteger'; - o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_UDP_KEEPALIVE', _('NFQWS2_PORTS_UDP_KEEPALIVE')); + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'NFQWS2_PORTS_UDP_KEEPALIVE', _('NFQWS2_PORTS_UDP_KEEPALIVE')); + } else { + o = s.taboption(tabname, form.Value, 'NFQWS_PORTS_UDP_KEEPALIVE', _('NFQWS_PORTS_UDP_KEEPALIVE')); + } o.rmempty = false; o.datatype = 'uinteger'; add_delim(s, tools.nfqws_opt_url); - add_param(s, 'NFQWS2_OPT', null, 21, 2); - + if (tools.appName == 'zapret2') { + add_param(s, 'NFQWS2_OPT', null, 21, 2); + } else { + add_param(s, 'NFQWS_OPT', null, 21, 2); + } + /* AutoHostList settings */ tabname = 'autohostlist_tab'; @@ -227,13 +271,15 @@ return view.extend({ return uci.set(tools.appName, section_id, 'MODE_FILTER', value === '1' ? 'autohostlist' : 'hostlist'); }; - o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_INCOMING_MAXSEQ', _('INCOMING_MAXSEQ')); - o.rmempty = false; - o.datatype = 'uinteger'; + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_INCOMING_MAXSEQ', _('INCOMING_MAXSEQ')); + o.rmempty = false; + o.datatype = 'uinteger'; - o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_RETRANS_MAXSEQ', _('RETRANS_MAXSEQ')); - o.rmempty = false; - o.datatype = 'uinteger'; + o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_RETRANS_MAXSEQ', _('RETRANS_MAXSEQ')); + o.rmempty = false; + o.datatype = 'uinteger'; + } o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_RETRANS_THRESHOLD', _('RETRANS_THRESHOLD')); o.rmempty = false; @@ -247,13 +293,15 @@ return view.extend({ o.rmempty = false; o.datatype = 'uinteger'; - o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_UDP_IN', _('UDP_IN')); - o.rmempty = false; - o.datatype = 'uinteger'; + if (tools.appName == 'zapret2') { + o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_UDP_IN', _('UDP_IN')); + o.rmempty = false; + o.datatype = 'uinteger'; - o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_UDP_OUT', _('UDP_OUT')); - o.rmempty = false; - o.datatype = 'uinteger'; + o = s.taboption(tabname, form.Value, 'AUTOHOSTLIST_UDP_OUT', _('UDP_OUT')); + o.rmempty = false; + o.datatype = 'uinteger'; + } o = s.taboption(tabname, form.Button, '_auto_host_btn', _('Auto host list entries')); o.inputtitle = _('Edit'); diff --git a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/tools.js b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/tools.js index e695b64..abd323f 100644 --- a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/tools.js +++ b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/tools.js @@ -231,9 +231,9 @@ return baseclass.extend({ return -4; } let jdata = svc_info; - if (typeof(jdata.zapret2) == 'object') { + if (typeof(jdata[this.appName]) == 'object') { result.dmn.inited = true; - let dmn_list = jdata.zapret2.instances; + let dmn_list = jdata[this.appName].instances; if (typeof(dmn_list) == 'object') { for (const [dmn_name, daemon] of Object.entries(dmn_list)) { result.dmn.total += 1; @@ -427,10 +427,11 @@ return baseclass.extend({ this.desc = desc; this.rows = rows; this.multiline = multiline; + env_tools.load_env(this); }, load: function() { - let value = uci.get('zapret2', this.cfgsec, this.cfgparam); + let value = uci.get(this.appName, this.cfgsec, this.cfgparam); if (typeof(value) === 'string') { value = value.trim(); if (this.multiline == 2) { @@ -529,7 +530,7 @@ return baseclass.extend({ } catch(e) { console.error('ERROR: cannot found elem for ' + this.cfgparam); } - uci.set('zapret2', this.cfgsec, this.cfgparam, value); + uci.set(this.appName, this.cfgsec, this.cfgparam, value); uci.save().then(ui.hideModal); }, diff --git a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/updater.js b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/updater.js index 9552d97..533377a 100644 --- a/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/updater.js +++ b/luci-app-zapret2/htdocs/luci-static/resources/view/zapret2/updater.js @@ -14,7 +14,7 @@ const btn_style_negative = 'btn cbi-button-reset important'; const btn_style_warning = 'btn cbi-button-negative'; const btn_style_success = 'btn cbi-button-success important'; -const fn_update_pkg_sh = '/opt/zapret2/update-pkg.sh'; +const fn_update_pkg_sh = '/opt/'+tools.appName+'/update-pkg.sh'; return baseclass.extend({ releasesUrlPrefix : 'https://raw.githubusercontent.com/remittor/zapret-openwrt/gh-pages/releases/', @@ -104,7 +104,7 @@ return baseclass.extend({ } let rpc_opt = { timeout: 5*1000 } //rpc_opt.uid = 0; // run under root - const logFile = '/tmp/zapret2_pkg_install.log'; + const logFile = '/tmp/'+tools.appName+'_pkg_install.log'; const rcFile = logFile + '.rc'; try { await fs.exec('/bin/busybox', [ 'rm', '-f', logFile + '*' ], null, rpc_opt); @@ -118,7 +118,7 @@ return baseclass.extend({ let opt = [ logFile, fn_update_pkg_sh ]; //opt.push('-t'); opt.push('0'); // only for testing opt.push(...opt_list); - let res = await fs.exec('/opt/zapret2/script-exec.sh', opt, null, rpc_opt); + let res = await fs.exec('/opt/'+tools.appName+'/script-exec.sh', opt, null, rpc_opt); if (res.code == 0) { this.appendLog('Process started...'); } else {