mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-10-29 02:15:13 +08:00
Add files via upload
This commit is contained in:
1 parent
adf4a1a94c
commit
17738c6f79
4 files changed
+375
No files matched your search
@@ -0,0 +1,208 @@
|
||||
--- a/luci-base/root/usr/share/rpcd/ucode/luci
|
||||
+++ b/luci-base/root/usr/share/rpcd/ucode/luci
|
||||
@@ -223,6 +223,7 @@ const methods = {
|
||||
|
||||
getFeatures: {
|
||||
call: function() {
|
||||
+ let kernel_version = popen('echo -n `uname -r`').read('all');
|
||||
let result = {
|
||||
firewall: access('/sbin/fw3') == true,
|
||||
firewall4: access('/sbin/fw4') == true,
|
||||
@@ -230,7 +231,7 @@ const methods = {
|
||||
bonding: access('/sys/module/bonding'),
|
||||
mii_tool: access('/usr/sbin/mii-tool'),
|
||||
offloading: access('/sys/module/xt_FLOWOFFLOAD/refcnt') == true || access('/sys/module/nft_flow_offload/refcnt') == true,
|
||||
- fullcone: access('/sys/module/xt_FULLCONENAT/refcnt') == true || access('/sys/module/nft_fullcone/refcnt') == true,
|
||||
+ fullcone: access(`/lib/modules/${kernel_version}/xt_FULLCONENAT.ko`) == true || access(`/lib/modules/${kernel_version}/nft_fullcone.ko`) == true,
|
||||
br2684ctl: access('/usr/sbin/br2684ctl') == true,
|
||||
swconfig: access('/sbin/swconfig') == true,
|
||||
zram: access('/sys/class/zram-control') == true,
|
||||
|
||||
--- a/luci-base/htdocs/luci-static/resources/network.js
|
||||
+++ b/luci-base/htdocs/luci-static/resources/network.js
|
||||
@@ -4376,4 +4376,10 @@ WifiNetwork = baseclass.extend(/** @lends LuCI.network.WifiNetwork.prototype */
|
||||
}
|
||||
});
|
||||
|
||||
+setTimeout(function(){
|
||||
+try{
|
||||
+ document.getElementsByClassName('cbi-button-apply')[0].children[3].children[0].value='1'
|
||||
+}catch(err) {
|
||||
+}},1000)
|
||||
+
|
||||
return Network;
|
||||
|
||||
--- a/luci-base/ucode/dispatcher.uc
|
||||
+++ b/luci-base/ucode/dispatcher.uc
|
||||
@@ -939,7 +939,12 @@ dispatch = function(_http, path) {
|
||||
let cookie_name = (http.getenv('HTTPS') == 'on') ? 'sysauth_https' : 'sysauth_http',
|
||||
cookie_secure = (http.getenv('HTTPS') == 'on') ? '; secure' : '';
|
||||
|
||||
- http.header('Set-Cookie', `${cookie_name}=${session.sid}; path=${build_url()}; SameSite=strict; HttpOnly${cookie_secure}`);
|
||||
+ let cookie_p = uci.get('wizard', 'default', 'cookie_p');
|
||||
+ if (cookie_p == '0') {
|
||||
+ http.header('Set-Cookie', `${cookie_name}=${session.sid}; path=${build_url()}; SameSite=strict; HttpOnly${cookie_secure}`);
|
||||
+ } else {
|
||||
+ http.header('Set-Cookie', `${cookie_name}=${session.sid}; Max-Age=2147483647; path=${build_url()}; SameSite=strict; HttpOnly${cookie_secure}`);
|
||||
+ }
|
||||
http.redirect(build_url(...resolved.ctx.request_path));
|
||||
|
||||
return;
|
||||
|
||||
--- a/luci-base/root/www/index.html
|
||||
+++ b/luci-base/root/www/index.html
|
||||
@@ -15,6 +15,5 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
- <a href="cgi-bin/luci/">LuCI - Lua Configuration Interface</a>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
--- a/luci-base/root/etc/init.d/ucitrack
|
||||
+++ b/luci-base/root/etc/init.d/ucitrack
|
||||
@@ -8,7 +8,7 @@ register_init() {
|
||||
local init="$2"
|
||||
shift; shift
|
||||
|
||||
- if [ -x "$init" ] && "$init" enabled && ! grep -sqE 'USE_PROCD=.' "$init"; then
|
||||
+ if [ -x "$init" ] && ! grep -sqE 'USE_PROCD=.' "$init"; then
|
||||
logger -t "ucitrack" "Setting up /etc/config/$config reload trigger for non-procd $init"
|
||||
procd_add_config_trigger "config.change" "$config" "$init" "$@"
|
||||
fi
|
||||
|
||||
--- a/luci-base/htdocs/luci-static/resources/tools/widgets.js
|
||||
+++ b/luci-base/htdocs/luci-static/resources/tools/widgets.js
|
||||
@@ -4,6 +4,7 @@
|
||||
'require network';
|
||||
'require firewall';
|
||||
'require fs';
|
||||
+'require uci';
|
||||
|
||||
|
||||
/**
|
||||
@@ -752,6 +752,81 @@ var CBIGroupSelect = form.ListValue.extend({
|
||||
},
|
||||
});
|
||||
|
||||
+var CBIWifidogxGroupSelect = form.ListValue.extend({
|
||||
+ __name__: 'CBI.WifidogxGroupSelect',
|
||||
+
|
||||
+ // group_type: 1: Domain Group, 2: MAC Group
|
||||
+ // add a new property to store the group type
|
||||
+ group_type: '1',
|
||||
+
|
||||
+ load: function(section_id) {
|
||||
+ this.sappList = [];
|
||||
+ var sections = uci.sections('wifidogx', 'group');
|
||||
+
|
||||
+ for (var i = 0; i < sections.length; i++) {
|
||||
+ if (sections[i]['g_type'] == this.group_type)
|
||||
+ this.sappList.push(sections[i]['.name']);
|
||||
+ }
|
||||
+
|
||||
+ return this.super('load', section_id);
|
||||
+ },
|
||||
+
|
||||
+ setGroupType: function(group_type) {
|
||||
+ if (group_type == 'mac') {
|
||||
+ this.group_type = '2';
|
||||
+ } else if (group_type == 'wildcard') {
|
||||
+ this.group_type = '3';
|
||||
+ }
|
||||
+ },
|
||||
+
|
||||
+ filter: function(section_id, value) {
|
||||
+ return true;
|
||||
+ },
|
||||
+
|
||||
+ renderWidget: function(section_id, option_index, cfgvalue) {
|
||||
+ var values = L.toArray((cfgvalue != null) ? cfgvalue : this.default),
|
||||
+ choices = {},
|
||||
+ checked = {};
|
||||
+
|
||||
+ for (var i = 0; i < values.length; i++)
|
||||
+ checked[values[i]] = true;
|
||||
+
|
||||
+ values = [];
|
||||
+
|
||||
+ if (!this.multiple && (this.rmempty || this.optional))
|
||||
+ choices[''] = E('em', _('unspecified'));
|
||||
+
|
||||
+ for (var i = 0; i < this.sappList.length; i++) {
|
||||
+ var name = this.sappList[i];
|
||||
+
|
||||
+ if (checked[name])
|
||||
+ values.push(name);
|
||||
+
|
||||
+ choices[name] = E('span', { 'class': 'ifacebadge' }, name);
|
||||
+ }
|
||||
+
|
||||
+ var widget = new ui.Dropdown(this.multiple ? values : values[0], choices, {
|
||||
+ id: this.cbid(section_id),
|
||||
+ sort: true,
|
||||
+ multiple: this.multiple,
|
||||
+ optional: this.optional || this.rmempty,
|
||||
+ disabled: (this.readonly != null) ? this.readonly : this.map.readonly,
|
||||
+ select_placeholder: E('em', _('unspecified')),
|
||||
+ display_items: this.display_size || this.size || 3,
|
||||
+ dropdown_items: this.dropdown_size || this.size || 5,
|
||||
+ validate: L.bind(this.validate, this, section_id),
|
||||
+ create: !this.nocreate,
|
||||
+ create_markup: '' +
|
||||
+ '<li data-value="{{value}}">' +
|
||||
+ '<span class="ifacebadge" style="background:repeating-linear-gradient(45deg,rgba(204,204,204,0.5),rgba(204,204,204,0.5) 5px,rgba(255,255,255,0.5) 5px,rgba(255,255,255,0.5) 10px)">' +
|
||||
+ '{{value}}: <em>('+_('create')+')</em>' +
|
||||
+ '</span>' +
|
||||
+ '</li>'
|
||||
+ });
|
||||
+
|
||||
+ return widget.render();
|
||||
+ }
|
||||
+});
|
||||
|
||||
return L.Class.extend({
|
||||
ZoneSelect: CBIZoneSelect,
|
||||
@@ -761,4 +836,5 @@ return L.Class.extend({
|
||||
DeviceSelect: CBIDeviceSelect,
|
||||
UserSelect: CBIUserSelect,
|
||||
GroupSelect: CBIGroupSelect,
|
||||
+ WifidogxGroupSelect: CBIWifidogxGroupSelect,
|
||||
});
|
||||
|
||||
--- a/luci-base/htdocs/luci-static/resources/validation.js
|
||||
+++ b/luci-base/htdocs/luci-static/resources/validation.js
|
||||
@@ -403,6 +403,14 @@ const ValidatorFactory = baseclass.extend({
|
||||
return this.assert(false, _('valid hostname'));
|
||||
},
|
||||
|
||||
+ wildcard() {
|
||||
+ // must start with '.', then remove it and check if it's a valid hostname
|
||||
+ if (this.value[0] != '.')
|
||||
+ return this.assert(false, _('valid wildcard hostname'));
|
||||
+ const hostname = this.value.substr(1);
|
||||
+ return this.apply('hostname', hostname);
|
||||
+ },
|
||||
+
|
||||
/**
|
||||
* Assert a valid UCI identifier, hostname or IP address range.
|
||||
* @function LuCI.validation.ValidatorFactory.types#network
|
||||
|
||||
--- a/luci-base/root/usr/share/luci/menu.d/luci-base.json
|
||||
+++ b/luci-base/root/usr/share/luci/menu.d/luci-base.json
|
||||
@@ -59,6 +59,15 @@
|
||||
}
|
||||
},
|
||||
|
||||
+ "admin/control": {
|
||||
+ "title": "Control",
|
||||
+ "order": 51,
|
||||
+ "action": {
|
||||
+ "type": "firstchild",
|
||||
+ "recurse": true
|
||||
+ }
|
||||
+ },
|
||||
+
|
||||
"admin/network": {
|
||||
"title": "Network",
|
||||
"order": 60,
|
||||
@@ -0,0 +1,12 @@
|
||||
--- a/luci-mod-network/htdocs/luci-static/resources/view/network/dns.js
|
||||
+++ b/luci-mod-network/htdocs/luci-static/resources/view/network/dns.js
|
||||
@@ -437,6 +442,9 @@ return view.extend({
|
||||
so.rmempty = false;
|
||||
so.datatype = 'ipaddr("nomask")';
|
||||
|
||||
+ so = ss.option(form.Value, 'comments', _('Comments'));
|
||||
+ so.rmempty = true;
|
||||
+
|
||||
const ipaddrs = {};
|
||||
|
||||
Object.keys(hosts).forEach(function(mac) {
|
||||
@@ -0,0 +1,107 @@
|
||||
--- a/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js
|
||||
+++ b/luci-mod-status/htdocs/luci-static/resources/view/status/include/20_memory.js
|
||||
@@ -32,8 +32,7 @@ return baseclass.extend({
|
||||
swap = L.isObject(systeminfo.swap) ? systeminfo.swap : {};
|
||||
|
||||
var fields = [
|
||||
- _('Total Available'), (mem.available) ? mem.available : (mem.total && mem.free && mem.buffered) ? mem.free + mem.buffered : null, mem.total,
|
||||
- _('Used'), (mem.total && mem.free) ? (mem.total - mem.free) : null, mem.total,
|
||||
+ _('Used'), (mem.total && mem.available) ? (mem.total - mem.free - mem.buffered - mem.cached) : null, mem.total,
|
||||
];
|
||||
|
||||
if (mem.buffered)
|
||||
@@ -43,7 +42,7 @@ return baseclass.extend({
|
||||
fields.push(_('Cached'), mem.cached, mem.total);
|
||||
|
||||
if (swap.total > 0)
|
||||
- fields.push(_('Swap free'), swap.free, swap.total);
|
||||
+ fields.push(_('Swap used'), swap.total - swap.free, swap.total);
|
||||
|
||||
var table = E('table', { 'class': 'table' });
|
||||
|
||||
|
||||
--- a/luci-mod-status/htdocs/luci-static/resources/view/status/index.js
|
||||
+++ b/luci-mod-status/htdocs/luci-static/resources/view/status/index.js
|
||||
@@ -280,6 +280,7 @@ return view.extend({
|
||||
load: function() {
|
||||
var includeModules = [
|
||||
{ name: 'view.status.include.10_system' },
|
||||
+ { name: 'view.status.include.19_cpu' },
|
||||
{ name: 'view.status.include.15_ports', title: _('Port status'), deferFirstLoad: true },
|
||||
{ name: 'view.status.include.20_memory' },
|
||||
{ name: 'view.status.include.25_storage' },
|
||||
|
||||
--- a/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
|
||||
+++ b/luci-mod-status/htdocs/luci-static/resources/view/status/include/10_system.js
|
||||
@@ -33,9 +33,9 @@ var callCPUInfo = rpc.declare({
|
||||
method: 'getCPUInfo'
|
||||
});
|
||||
|
||||
-var callCPUUsage = rpc.declare({
|
||||
+var callTempInfo = rpc.declare({
|
||||
object: 'luci',
|
||||
- method: 'getCPUUsage'
|
||||
+ method: 'getTempInfo'
|
||||
});
|
||||
|
||||
return baseclass.extend({
|
||||
@@ -48,7 +48,7 @@ return baseclass.extend({
|
||||
L.resolveDefault(callSystemInfo(), {}),
|
||||
L.resolveDefault(callCPUBench(), {}),
|
||||
L.resolveDefault(callCPUInfo(), {}),
|
||||
- L.resolveDefault(callCPUUsage(), {}),
|
||||
+ L.resolveDefault(callTempInfo(), {}),
|
||||
L.resolveDefault(callLuciVersion(), { revision: _('unknown version'), branch: 'LuCI' }),
|
||||
L.resolveDefault(callGetUnixtime(), 0)
|
||||
]);
|
||||
@@ -59,7 +59,7 @@ return baseclass.extend({
|
||||
systeminfo = data[1],
|
||||
cpubench = data[2],
|
||||
cpuinfo = data[3],
|
||||
- cpuusage = data[4],
|
||||
+ tempinfo = data[4],
|
||||
luciversion = data[5],
|
||||
unixtime = data[6];
|
||||
|
||||
@@ -78,8 +78,7 @@ return baseclass.extend({
|
||||
|
||||
var fields = [
|
||||
_('Hostname'), boardinfo.hostname,
|
||||
- _('Model'), boardinfo.model + cpubench.cpubench,
|
||||
- _('Architecture'), cpuinfo.cpuinfo || boardinfo.system,
|
||||
+ _('Architecture'), (cpuinfo.cpuinfo || boardinfo.system) + ' ' + cpubench.cpubench,
|
||||
_('Target Platform'), (L.isObject(boardinfo.release) ? boardinfo.release.target : ''),
|
||||
_('Firmware Version'), (L.isObject(boardinfo.release)
|
||||
? '%s%s / '.format(
|
||||
@@ -94,10 +93,18 @@ return baseclass.extend({
|
||||
systeminfo.load[0] / 65535.0,
|
||||
systeminfo.load[1] / 65535.0,
|
||||
systeminfo.load[2] / 65535.0
|
||||
- ) : null,
|
||||
- _('CPU usage (%)'), cpuusage.cpuusage
|
||||
+ ) : null
|
||||
];
|
||||
|
||||
+ if (tempinfo.tempinfo) {
|
||||
+ fields.splice(6, 0, _('Temperature'));
|
||||
+ fields.splice(7, 0, tempinfo.tempinfo);
|
||||
+ }
|
||||
+ if (boardinfo.model != "Default string Default string") {
|
||||
+ fields.splice(2, 0, _('Model'));
|
||||
+ fields.splice(3, 0, boardinfo.model);
|
||||
+ }
|
||||
+
|
||||
var table = E('table', { 'class': 'table' });
|
||||
|
||||
for (var i = 0; i < fields.length; i += 2) {
|
||||
|
||||
--- a/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js
|
||||
+++ b/luci-mod-status/htdocs/luci-static/resources/view/status/nftables.js
|
||||
@@ -675,7 +675,6 @@ return view.extend({
|
||||
checkLegacyRules: function(ipt4save, ipt6save) {
|
||||
if (ipt4save.match(/\n-A /) || ipt6save.match(/\n-A /)) {
|
||||
ui.addNotification(_('Legacy rules detected'), [
|
||||
- E('p', _('There are legacy iptables rules present on the system. Mixing iptables and nftables rules is discouraged and may lead to incomplete traffic filtering.')),
|
||||
E('button', {
|
||||
'class': 'btn cbi-button',
|
||||
'click': function() { location.href = 'nftables/iptables' }
|
||||
@@ -0,0 +1,48 @@
|
||||
--- a/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js
|
||||
+++ b/luci-mod-system/htdocs/luci-static/resources/view/system/flash.js
|
||||
@@ -101,7 +101,7 @@ return view.extend({
|
||||
/* Currently the sysupgrade rpc call will not return, hence no promise handling */
|
||||
fs.exec('/sbin/firstboot', [ '-r', '-y' ]);
|
||||
|
||||
- ui.awaitReconnect('192.168.1.1', 'immortalwrt.lan');
|
||||
+ ui.awaitReconnect('10.0.0.1', 'kwrt.lan');
|
||||
},
|
||||
|
||||
handleRestore: function(ev) {
|
||||
@@ -163,7 +163,7 @@ return view.extend({
|
||||
E('p', { 'class': 'spinning' }, _('The system is rebooting now. If the restored configuration changed the current LAN IP address, you might need to reconnect manually.'))
|
||||
]);
|
||||
|
||||
- ui.awaitReconnect(window.location.host, '192.168.1.1', 'immortalwrt.lan');
|
||||
+ ui.awaitReconnect(window.location.host, '10.0.0.1', 'kwrt.lan');
|
||||
}, this))
|
||||
.catch(function(e) { ui.addNotification(null, E('p', e.message)) })
|
||||
.finally(function() { btn.firstChild.data = _('Upload archive...') });
|
||||
@@ -263,6 +263,7 @@ return view.extend({
|
||||
body.push(E('p', {}, E('label', { 'class': 'btn' }, [
|
||||
opts.backup_pkgs[0], ' ', _('Include in backup a list of current installed packages at /etc/backup/installed_packages.txt')
|
||||
])));
|
||||
+ opts.backup_pkgs[0].checked = true;
|
||||
};
|
||||
|
||||
var cntbtn = E('button', {
|
||||
@@ -304,6 +305,10 @@ return view.extend({
|
||||
opts.keep[0].addEventListener('change', function(ev) {
|
||||
opts.skip_orig[0].disabled = !ev.target.checked;
|
||||
opts.backup_pkgs[0].disabled = !ev.target.checked;
|
||||
+ if (ev.target.checked == false){
|
||||
+ opts.skip_orig[0].checked =false
|
||||
+ opts.backup_pkgs[0].checked =false
|
||||
+ }
|
||||
|
||||
});
|
||||
|
||||
@@ -337,7 +342,7 @@ return view.extend({
|
||||
if (opts['keep'][0].checked)
|
||||
ui.awaitReconnect(window.location.host);
|
||||
else
|
||||
- ui.awaitReconnect('192.168.1.1', 'immortalwrt.lan');
|
||||
+ ui.awaitReconnect('10.0.0.1', 'kwrt.lan');
|
||||
},
|
||||
|
||||
handleBackupList: function(ev) {
|
||||
Reference in new issue
Block a user