mirror of
https://github.com/kenzok8/small-package
synced 2025-01-07 07:06:58 +08:00
update 2023-04-04 23:35:49
This commit is contained in:
parent
a4eb1f2406
commit
4ce5dcf8fb
@ -8,14 +8,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=ddnsgo
|
||||
PKG_VERSION:=5.0.4
|
||||
PKG_VERSION:=5.0.5
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/jeessy2/ddns-go.git
|
||||
PKG_SOURCE_VERSION:=55f4462d03dd10c47b76e73711577b6f08f58df6
|
||||
PKG_MIRROR_HASH:=4f88ff9dd234a1017aa5d73b473efb0eadb519bc18ab5ddb7a564fcc830b38bf
|
||||
PKG_SOURCE_VERSION:=947ff9832d62b856761805f4b3485275bb1c841f
|
||||
PKG_MIRROR_HASH:=5f9f2453e755dd967130672d6584a0d9821fb4bb32e4337c78ab2d62f9e06e18
|
||||
|
||||
PKG_LICENSE:=AGPL-3.0-only
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
@ -5,12 +5,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=dnsproxy
|
||||
PKG_VERSION:=0.48.2
|
||||
PKG_VERSION:=0.48.3
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/AdguardTeam/dnsproxy/tar.gz/v$(PKG_VERSION)?
|
||||
PKG_HASH:=fd385b3414e616aef5d96b7b007d5fc4fd21b73d6bc097811508e9ddb9b3f4cb
|
||||
PKG_HASH:=bc5f5e6d812293c13b7b6d42eae72a82231d9f332af1d2947c37dbdbf663abf3
|
||||
|
||||
PKG_MAINTAINER:=Tianling Shen <cnsztl@immortalwrt.org>
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
@ -1,7 +1,7 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.0.1-2023403
|
||||
PKG_VERSION:=1.0.1-20230403
|
||||
PKG_RELEASE:=
|
||||
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
|
||||
|
||||
|
@ -146,10 +146,17 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
end
|
||||
type.cfgvalue = get_cfgvalue(v.id, "type")
|
||||
type.write = get_write(v.id, "type")
|
||||
-- pre-proxy node
|
||||
o = s:taboption("Main", ListValue, vid .. "-main_node", string.format('<a style="color:red">%s</a>', translate("Preproxy Node")), translate("Set the node to be used as a pre-proxy. Each rule (including <code>Default</code>) has a separate switch that controls whether this rule uses the pre-proxy or not."))
|
||||
-- pre-proxy
|
||||
o = s:taboption("Main", Flag, vid .. "-preproxy_enabled", translate("Preproxy"))
|
||||
o:depends("tcp_node", v.id)
|
||||
o:value("nil", translate("Close"))
|
||||
o.rmempty = false
|
||||
o.cfgvalue = get_cfgvalue(v.id, "preproxy_enabled")
|
||||
o.write = get_write(v.id, "preproxy_enabled")
|
||||
o = s:taboption("Main", ListValue, vid .. "-main_node", string.format('<a style="color:red">%s</a>', translate("Preproxy Node")), translate("Set the node to be used as a pre-proxy. Each rule (including <code>Default</code>) has a separate switch that controls whether this rule uses the pre-proxy or not."))
|
||||
o:depends(vid .. "-preproxy_enabled", "1")
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
@ -158,18 +165,18 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
-- Xray dialerProxy
|
||||
local dialerProxy = s:taboption("Main", Flag, vid .. "-dialerProxy", translate("dialerProxy"))
|
||||
dialerProxy.default = "0"
|
||||
dialerProxy:depends(vid .. "-type", "Xray")
|
||||
dialerProxy.cfgvalue = get_cfgvalue(v.id, "dialerProxy")
|
||||
dialerProxy.write = get_write(v.id, "dialerProxy")
|
||||
dialerProxy.rmempty = false
|
||||
dialerProxy:depends({ [vid .. "-type"] = "Xray", [vid .. "-preproxy_enabled"] = "1" })
|
||||
if (has_v2ray and has_xray) or (v.type == "V2ray" and not has_v2ray) or (v.type == "Xray" and not has_xray) then
|
||||
type:depends("tcp_node", v.id)
|
||||
else
|
||||
type:depends("tcp_node", "hide") --不存在的依赖,即始终隐藏
|
||||
if v.type == "Xray" then
|
||||
dialerProxy:depends("tcp_node", v.id)
|
||||
dialerProxy:depends({ tcp_node = v.id, [vid .. "-preproxy_enabled"] = "1" })
|
||||
end
|
||||
end
|
||||
dialerProxy.cfgvalue = get_cfgvalue(v.id, "dialerProxy")
|
||||
dialerProxy.write = get_write(v.id, "dialerProxy")
|
||||
dialerProxy.rmempty = false
|
||||
|
||||
uci:foreach(appname, "shunt_rules", function(e)
|
||||
local id = e[".name"]
|
||||
@ -190,7 +197,7 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
pt:depends(node_option, v1.id)
|
||||
pt:depends({ [node_option] = v1.id, [vid .. "-preproxy_enabled"] = "1" })
|
||||
end
|
||||
o.cfgvalue = get_cfgvalue(v.id, id)
|
||||
o.write = get_write(v.id, id)
|
||||
@ -204,8 +211,11 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
o:depends("tcp_node", v.id)
|
||||
o:value("_direct", translate("Direct Connection"))
|
||||
o:value("_blackhole", translate("Blackhole"))
|
||||
for k1, v1 in pairs(balancing_list) do
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
o:value(v1.id, v1["remark"])
|
||||
o:value(v1.id, v1.remark)
|
||||
end
|
||||
o.cfgvalue = get_cfgvalue(v.id, id)
|
||||
o.write = get_write(v.id, id)
|
||||
@ -214,7 +224,7 @@ if (has_v2ray or has_xray) and #nodes_table > 0 then
|
||||
o = s:taboption("Main", ListValue, vid .. "-" .. id, string.format('* <a style="color:red">%s</a>', translate("Default Preproxy")), translate("When using, localhost will connect this node first and then use this node to connect the default node."))
|
||||
for k1, v1 in pairs(normal_list) do
|
||||
if v1.protocol ~= "_balancing" then
|
||||
o:depends(vid .. "-default_node", v1.id)
|
||||
o:depends({ [vid .. "-default_node"] = v1.id, [vid .. "-preproxy_enabled"] = "1" })
|
||||
end
|
||||
end
|
||||
o:value("nil", translate("Close"))
|
||||
|
@ -173,11 +173,17 @@ probeInterval.description = translate("The interval between initiating probes. E
|
||||
|
||||
-- 分流
|
||||
if #nodes_table > 0 then
|
||||
o = s:option(ListValue, "main_node", string.format('<a style="color:red">%s</a>', translate("Preproxy Node")), translate("Set the node to be used as a pre-proxy. Each rule (including <code>Default</code>) has a separate switch that controls whether this rule uses the pre-proxy or not."))
|
||||
o = s:option(Flag, "preproxy_enabled", translate("Preproxy"))
|
||||
o:depends("protocol", "_shunt")
|
||||
o:value("nil", translate("Close"))
|
||||
dialerProxy = s:option(Flag, "dialerProxy", translate("dialerProxy"))
|
||||
dialerProxy:depends({ type = "Xray", protocol = "_shunt" , })
|
||||
o.rmempty = false
|
||||
o = s:option(ListValue, "main_node", string.format('<a style="color:red">%s</a>', translate("Preproxy Node")), translate("Set the node to be used as a pre-proxy. Each rule (including <code>Default</code>) has a separate switch that controls whether this rule uses the pre-proxy or not."))
|
||||
o:depends("preproxy_enabled", "1")
|
||||
local dialerProxy = s:option(Flag, "dialerProxy", translate("dialerProxy"))
|
||||
dialerProxy.hidden = true
|
||||
dialerProxy:depends({ type = "Xray", protocol = "_shunt", preproxy_enabled = "1" })
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
for k, v in pairs(nodes_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
--dialerProxy:depends({ type = "Xray", main_node = v.id })
|
||||
@ -193,17 +199,17 @@ uci:foreach(appname, "shunt_rules", function(e)
|
||||
o:value("_blackhole", translate("Blackhole"))
|
||||
o:depends("protocol", "_shunt")
|
||||
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
if #nodes_table > 0 then
|
||||
for k, v in pairs(balancers_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
end
|
||||
local pt = s:option(ListValue, e[".name"] .. "_proxy_tag", string.format('* <a style="color:red">%s</a>', e.remarks .. " " .. translate("Preproxy")))
|
||||
pt:value("nil", translate("Close"))
|
||||
pt:value("main", translate("Preproxy Node"))
|
||||
pt.default = "nil"
|
||||
for k, v in pairs(nodes_table) do
|
||||
o:value(v.id, v.remarks)
|
||||
pt:depends(e[".name"], v.id)
|
||||
pt:depends({ preproxy_enabled = "1", [e[".name"]] = v.id })
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -216,21 +222,22 @@ shunt_tips.cfgvalue = function(t, n)
|
||||
end
|
||||
shunt_tips:depends("protocol", "_shunt")
|
||||
|
||||
default_node = s:option(ListValue, "default_node", string.format('* <a style="color:red">%s</a>', translate("Default")))
|
||||
local default_node = s:option(ListValue, "default_node", string.format('* <a style="color:red">%s</a>', translate("Default")))
|
||||
default_node:depends("protocol", "_shunt")
|
||||
default_node:value("_direct", translate("Direct Connection"))
|
||||
default_node:value("_blackhole", translate("Blackhole"))
|
||||
for k, v in pairs(nodes_table) do default_node:value(v.id, v.remarks) end
|
||||
default_node:depends("protocol", "_shunt")
|
||||
|
||||
if #nodes_table > 0 then
|
||||
for k, v in pairs(balancers_table) do
|
||||
default_node:value(v.id, v.remarks)
|
||||
end
|
||||
local dpt = s:option(ListValue, "default_proxy_tag", string.format('* <a style="color:red">%s</a>', translate("Default Preproxy")), translate("When using, localhost will connect this node first and then use this node to connect the default node."))
|
||||
dpt:value("nil", translate("Close"))
|
||||
dpt:value("main", translate("Preproxy Node"))
|
||||
dpt.default = "nil"
|
||||
for k, v in pairs(nodes_table) do
|
||||
if v.protocol ~= "_balancing" then
|
||||
dpt:depends("default_node", v.id)
|
||||
end
|
||||
default_node:value(v.id, v.remarks)
|
||||
dpt:depends({ preproxy_enabled = "1", default_node = v.id })
|
||||
end
|
||||
end
|
||||
|
||||
|
17
luci-app-wan-mac/Makefile
Normal file
17
luci-app-wan-mac/Makefile
Normal file
@ -0,0 +1,17 @@
|
||||
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.0.0-20230404
|
||||
PKG_RELEASE:=
|
||||
PKG_MAINTAINER:=jjm2473 <jjm2473@gmail.com>
|
||||
|
||||
LUCI_TITLE:=Generate MAC address for WAN
|
||||
LUCI_PKGARCH:=all
|
||||
|
||||
define Package/luci-app-wan-mac/conffiles
|
||||
/etc/config/wan_mac
|
||||
endef
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
# call BuildPackage - OpenWrt buildroot signature
|
118
luci-app-wan-mac/htdocs/luci-static/resources/view/wan_mac.js
Normal file
118
luci-app-wan-mac/htdocs/luci-static/resources/view/wan_mac.js
Normal file
@ -0,0 +1,118 @@
|
||||
'use strict';
|
||||
'require view';
|
||||
'require uci';
|
||||
'require form';
|
||||
'require dom';
|
||||
|
||||
var CBIMacAddress = form.Value.extend({
|
||||
renderWidget: function(section_id, option_index, cfgvalue) {
|
||||
var node = this.super('renderWidget', [section_id, option_index, cfgvalue]);
|
||||
dom.append(node, [
|
||||
E('br'),
|
||||
E('span', { 'class': 'control-group' },
|
||||
E('button', {
|
||||
'class': 'btn cbi-button cbi-button-neutral',
|
||||
'click': this.clickFn.bind(this, section_id, node)
|
||||
}, this.btnTitle)
|
||||
)
|
||||
]);
|
||||
return node;
|
||||
}
|
||||
});
|
||||
|
||||
var genMAC = function(section_id, node) {
|
||||
var getOptVal = L.bind(function(opt, default_val) {
|
||||
default_val = default_val || null;
|
||||
return this.section.formvalue(section_id, opt) || default_val;
|
||||
}, this);
|
||||
|
||||
var prefix = getOptVal('prefix');
|
||||
if (prefix === null || prefix === "") {
|
||||
alert(_('Select or input Prefix first!'));
|
||||
return;
|
||||
}
|
||||
var macb = prefix.match(/[a-fA-F0-9]{2}/g).map(function(b){return parseInt(b,16);});
|
||||
if ((macb[0] & 1) === 1) {
|
||||
alert(_('Prefix is a Multicast address!'));
|
||||
return;
|
||||
}
|
||||
while (macb.length < 5) {
|
||||
macb.push(parseInt(Math.random()*255.9));
|
||||
}
|
||||
macb[5] = (parseInt(Math.random()*15.9) << 4) + parseInt(Math.random()*8);
|
||||
|
||||
var mac = "";
|
||||
for (var i=0; i<6; ++i) {
|
||||
var b = macb[i].toString(16).toUpperCase();
|
||||
if (b.length === 1) {
|
||||
b = '0' + b;
|
||||
}
|
||||
mac = mac + ':' + b;
|
||||
}
|
||||
mac = mac.substring(1);
|
||||
/*
|
||||
var inputEl = node.querySelector('input[type="text"]');
|
||||
inputEl.value = mac;
|
||||
// this.triggerValidation(section_id);
|
||||
inputEl.dispatchEvent(new Event('input'));
|
||||
inputEl.dispatchEvent(new Event('blur'));
|
||||
*/
|
||||
dom.callClassMethod(node, "setValue", mac);
|
||||
dom.callClassMethod(node, "triggerValidation");
|
||||
};
|
||||
|
||||
return view.extend({
|
||||
load: function() {
|
||||
return Promise.all([
|
||||
uci.load('wan_mac')
|
||||
]);
|
||||
},
|
||||
|
||||
render: function() {
|
||||
|
||||
var m, s, o;
|
||||
|
||||
m = new form.Map('wan_mac', _('WAN MAC address'),
|
||||
_('Change the MAC address of WAN port. <br>Note that modifying the MAC address may cause the IP address to change.'));
|
||||
|
||||
s = m.section(form.NamedSection, 'config', 'wan_mac', _('Global Settings'));
|
||||
s.anonymous = true;
|
||||
s.addremove = false;
|
||||
|
||||
o = s.option(form.Flag, 'enabled', _('Enable'));
|
||||
o.rmempty = false;
|
||||
|
||||
s = m.section(form.NamedSection, 'config', 'wan_mac', _('MAC Address Settings'),
|
||||
_('Select a prefix and click the "Randomly Generate Using Prefix" button to generate a MAC address'));
|
||||
s.anonymous = true;
|
||||
s.addremove = false;
|
||||
|
||||
o = s.option(form.Value, 'prefix', _('MAC address prefix'), _('Supports "000000" format'))
|
||||
o.datatype = 'and(hexstring,rangelength(2,8))';
|
||||
[
|
||||
["044A6C", "Huawei"],
|
||||
["3CCD57", "Xiaomi"],
|
||||
["603A7C", "TP-LINK"],
|
||||
["00E04C", "Realtek"],
|
||||
["68ECC5", "Intel"],
|
||||
["8086F2", "Intel"],
|
||||
["3C3786", "NETGEAR"],
|
||||
["7C10C9", "ASUS"],
|
||||
["68DB54", "Phicomm"],
|
||||
["020000", "Private"],
|
||||
["021234", "Private"],
|
||||
["02AABB", "Private"],
|
||||
].forEach(function(oui){
|
||||
o.value(oui[0], oui[0] + ' (' + oui[1] + ')');
|
||||
});
|
||||
|
||||
o = s.option(CBIMacAddress, 'macaddr', _('MAC address'), _('Supports "00:00:00:00:00:00" format'))
|
||||
o.datatype = 'macaddr';
|
||||
o.rmempty = false;
|
||||
o.placeholder = '02:00:00:00:00:00';
|
||||
o.btnTitle = _('Randomly Generate Using Prefix');
|
||||
o.clickFn = genMAC;
|
||||
|
||||
return m.render();
|
||||
}
|
||||
});
|
41
luci-app-wan-mac/po/zh-cn/wan_mac.po
Normal file
41
luci-app-wan-mac/po/zh-cn/wan_mac.po
Normal file
@ -0,0 +1,41 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8"
|
||||
|
||||
msgid "Global Settings"
|
||||
msgstr "全局设置"
|
||||
|
||||
msgid "Select or input Prefix first!"
|
||||
msgstr "先选择或者输入前缀!"
|
||||
|
||||
msgid "Prefix is a Multicast address!"
|
||||
msgstr "前缀是一个多播地址!"
|
||||
|
||||
msgid "WAN MAC address"
|
||||
msgstr "WAN口MAC地址"
|
||||
|
||||
msgid ""
|
||||
"Change the MAC address of WAN port. <br>"
|
||||
"Note that modifying the MAC address may cause the IP address to change."
|
||||
msgstr "修改WAN口的MAC地址。<br>注意修改MAC地址以后可能导致IP地址变化。"
|
||||
|
||||
msgid "MAC Address Settings"
|
||||
msgstr "MAC地址设置"
|
||||
|
||||
msgid "MAC address prefix"
|
||||
msgstr "MAC地址前缀"
|
||||
|
||||
msgid "Supports \"000000\" format"
|
||||
msgstr "支持\"000000\"格式"
|
||||
|
||||
msgid "MAC address"
|
||||
msgstr "MAC地址"
|
||||
|
||||
msgid "Supports \"00:00:00:00:00:00\" format"
|
||||
msgstr "支持\"00:00:00:00:00:00\"格式"
|
||||
|
||||
msgid "Randomly Generate Using Prefix"
|
||||
msgstr "使用前缀随机生成"
|
||||
|
||||
msgid "Select a prefix and click the \"Randomly Generate Using Prefix\" button to generate a MAC address"
|
||||
msgstr "选择前缀,然后点击“使用前缀随机生成”按钮即可生成MAC地址"
|
1
luci-app-wan-mac/po/zh_Hans
Symbolic link
1
luci-app-wan-mac/po/zh_Hans
Symbolic link
@ -0,0 +1 @@
|
||||
zh-cn
|
4
luci-app-wan-mac/root/etc/config/wan_mac
Normal file
4
luci-app-wan-mac/root/etc/config/wan_mac
Normal file
@ -0,0 +1,4 @@
|
||||
config wan_mac 'config'
|
||||
option enabled '0'
|
||||
# option prefix ''
|
||||
# option macaddr ''
|
66
luci-app-wan-mac/root/etc/init.d/wan_mac
Executable file
66
luci-app-wan-mac/root/etc/init.d/wan_mac
Executable file
@ -0,0 +1,66 @@
|
||||
#!/bin/sh /etc/rc.common
|
||||
|
||||
START=20
|
||||
USE_PROCD=1
|
||||
|
||||
boot() {
|
||||
# procd will call service_triggers
|
||||
rc_procd true
|
||||
}
|
||||
|
||||
service_triggers() {
|
||||
procd_add_reload_trigger "wan_mac"
|
||||
}
|
||||
|
||||
find_uci_section_i() {
|
||||
local key="$2"
|
||||
local value="$3"
|
||||
local testv
|
||||
config_get testv "$1" "$key"
|
||||
[[ "$value" = "$testv" ]] && echo "$1"
|
||||
}
|
||||
|
||||
find_uci_section() {
|
||||
local config="$1"
|
||||
local type="$2"
|
||||
local key="$3"
|
||||
local value="$4"
|
||||
(
|
||||
config_load "$config"
|
||||
config_foreach find_uci_section_i "$type" "$key" "$value"
|
||||
)
|
||||
}
|
||||
|
||||
generate_config() {
|
||||
local enabled
|
||||
local macaddr
|
||||
config_get_bool enabled "config" enabled 0
|
||||
config_get macaddr "config" macaddr
|
||||
local wan_dev="`uci -q get network.wan.device`"
|
||||
[[ -z "$wan_dev" ]] && {
|
||||
echo "get network.wan.device failed in uci" >&2
|
||||
return 1
|
||||
}
|
||||
|
||||
local wan_dev_s=`find_uci_section network device name "$wan_dev" | head -1`
|
||||
[[ -z "$wan_dev_s" ]] && {
|
||||
uci -q batch <<-EOF >/dev/null
|
||||
add network device
|
||||
set network.@device[-1].name="$wan_dev"
|
||||
EOF
|
||||
wan_dev_s="@device[-1]"
|
||||
}
|
||||
if [[ "$enabled" = "1" ]]; then
|
||||
uci set "network.$wan_dev_s.macaddr=$macaddr"
|
||||
else
|
||||
uci delete "network.$wan_dev_s.macaddr"
|
||||
fi
|
||||
uci commit network
|
||||
return 0
|
||||
}
|
||||
|
||||
start_service() {
|
||||
config_load wan_mac
|
||||
generate_config && /etc/init.d/network reload
|
||||
return 0
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
{
|
||||
"admin/network/wan_mac": {
|
||||
"title": "WAN MAC",
|
||||
"order": 99,
|
||||
"action": {
|
||||
"type": "view",
|
||||
"path": "wan_mac"
|
||||
},
|
||||
"depends": {
|
||||
"acl": [ "luci-app-wan-mac" ],
|
||||
"uci": { "wan_mac": true }
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"luci-app-wan-mac": {
|
||||
"description": "Grant access to 'WAN MAC'",
|
||||
"read": {
|
||||
"uci": [ "wan_mac" ]
|
||||
},
|
||||
"write": {
|
||||
"uci": [ "wan_mac" ]
|
||||
}
|
||||
}
|
||||
}
|
@ -14,7 +14,7 @@
|
||||
</a><a href="https://github.com/jerrykuku/luci-theme-argon/issues/new">
|
||||
<img src="https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=flat-square">
|
||||
</a><a href="https://github.com/jerrykuku/luci-theme-argon/releases">
|
||||
<img src="https://img.shields.io/github/release/jerrykuku/luci-theme-argon.svg?style=flat-square">
|
||||
<img src="https://img.shields.io/github/v/release/jerrykuku/luci-theme-argon?include_prereleases&style=flat-square">
|
||||
</a><a href="hhttps://github.com/jerrykuku/luci-theme-argon/releases">
|
||||
<img src="https://img.shields.io/github/downloads/jerrykuku/luci-theme-argon/total?style=flat-square">
|
||||
</a><a href="https://t.me/jerryk6">
|
||||
|
@ -14,7 +14,7 @@
|
||||
</a><a href="https://github.com/jerrykuku/luci-theme-argon/issues/new">
|
||||
<img src="https://img.shields.io/badge/Issues-welcome-brightgreen.svg?style=flat-square">
|
||||
</a><a href="https://github.com/jerrykuku/luci-theme-argon/releases">
|
||||
<img src="https://img.shields.io/github/release/jerrykuku/luci-theme-argon.svg?style=flat-square">
|
||||
<img src="https://img.shields.io/github/v/release/jerrykuku/luci-theme-argon?include_prereleases&style=flat-square">
|
||||
</a><a href="hhttps://github.com/jerrykuku/luci-theme-argon/releases">
|
||||
<img src="https://img.shields.io/github/downloads/jerrykuku/luci-theme-argon/total?style=flat-square">
|
||||
</a><a href="https://t.me/jerryk6">
|
||||
|
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
LUCI_TITLE:=Design Theme
|
||||
LUCI_DEPENDS:=
|
||||
PKG_VERSION:=5.6.2-20230403
|
||||
PKG_VERSION:=5.6.3-20230404
|
||||
|
||||
include $(TOPDIR)/feeds/luci/luci.mk
|
||||
|
||||
|
@ -74,6 +74,7 @@ luci-theme-design is an OpenWrt LuCI theme for immersive WebApp experience and o
|
||||
- Fix nlbw component
|
||||
- Support QWRT (QSDK), iStore wizard navigation
|
||||
- Adapt to OpenWrt 21/22
|
||||
- Adapt to linkease series icons
|
||||
|
||||
### Compile
|
||||
|
||||
|
@ -434,8 +434,25 @@ svg {
|
||||
color: var(--bg) !important;
|
||||
}
|
||||
|
||||
/** img retina **/
|
||||
/* file selector upload button */
|
||||
::file-selector-button {
|
||||
transition: all .1s ease-in-out;
|
||||
border-radius: 5px;
|
||||
border: 3px solid #337ab7!important;
|
||||
color: #fff!important;
|
||||
background-color: #337ab7!important;
|
||||
box-sizing: border-box;
|
||||
cursor: pointer;
|
||||
}
|
||||
::file-selector-button:hover,
|
||||
::file-selector-button:focus,
|
||||
::file-selector-button:active {
|
||||
color: #fff!important;
|
||||
background-color: #6a65d6!important;
|
||||
border-color: #6a65d6!important
|
||||
}
|
||||
|
||||
/** img retina **/
|
||||
img[src*="/luci-static/resources/icons/port_up.png"] {
|
||||
background-image: url(../images/port_up.png);
|
||||
background-size: 32px 32px;
|
||||
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user