mirror of
https://github.com/kiddin9/op-packages.git
synced 2026-11-07 04:34:05 +08:00
💋 Sync 2026-11-03 13:49:21
This commit is contained in:
1 parent
e37cccd846
commit
d3bdfa7f1c
8 files changed
+123
-14
No files matched your search
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=apfree-wifidog
|
||||
PKG_RELEASE:=10
|
||||
PKG_RELEASE:=11
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/liudf0716/apfree-wifidog.git
|
||||
PKG_SOURCE_DATE:=2026-10-25
|
||||
PKG_SOURCE_VERSION:=9997baf26c737102940dd3a44e9d95c84dd57dab
|
||||
PKG_SOURCE_DATE:=2026-11-03
|
||||
PKG_SOURCE_VERSION:=f012073104f2a1aa75954b5bc0e013b14bf663d4
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_MAINTAINER:=Dengfeng Liu <liudf0716@gmail.com>
|
||||
@@ -51,7 +51,6 @@ define Package/apfree-wifidog/install
|
||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/wdctlx $(1)/usr/bin/wdctlx
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_DIR) $(1)/etc
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/wifidog-msg.html $(1)/etc/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/wifidog-redir.html $(1)/etc/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/wifidog-redir.html.front $(1)/etc/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/wifidog-redir.html.rear $(1)/etc/
|
||||
|
||||
+2
-2
@@ -5,8 +5,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=gately
|
||||
PKG_VERSION:=0.6.3
|
||||
PKG_RELEASE:=23
|
||||
PKG_VERSION:=0.6.3.5
|
||||
PKG_RELEASE:=24
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://codeload.github.com/wangwanjie/gately/tar.gz/v$(PKG_VERSION)?
|
||||
|
||||
@@ -25,7 +25,7 @@ document.querySelector('head').appendChild(E('style', [
|
||||
'
|
||||
]));
|
||||
|
||||
const hm_dir = '/var/run/fchomo';
|
||||
const RUN_DIR = '/var/run/fchomo';
|
||||
|
||||
function getRuntimeLog(name, option_index, section_id, in_table) {
|
||||
const filename = this.option.split('_')[1];
|
||||
@@ -84,7 +84,7 @@ function getRuntimeLog(name, option_index, section_id, in_table) {
|
||||
|
||||
let log;
|
||||
poll.add(function() {
|
||||
return fs.read_direct(String.format('%s/%s.log', hm_dir, filename), 'text')
|
||||
return fs.read_direct(String.format('%s/%s.log', RUN_DIR, filename), 'text')
|
||||
.then((res) => {
|
||||
log = E('pre', { 'wrap': 'pre' }, [
|
||||
res.trim() || _('Log is empty.')
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-app-open-box
|
||||
PKG_VERSION:=0.1.390
|
||||
PKG_RELEASE:=59
|
||||
PKG_VERSION:=0.1.392
|
||||
PKG_RELEASE:=60
|
||||
|
||||
PKG_MAINTAINER:=liandu2024
|
||||
PKG_LICENSE:=GPL-3.0-or-later
|
||||
|
||||
@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=luci-theme-liquid
|
||||
PKG_VERSION:=1.0
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_MAINTAINER:=然后七年 <z@7ze.top>
|
||||
PKG_LICENSE:=Apache-2.0
|
||||
|
||||
@@ -5290,3 +5290,24 @@ body:is([data-page="admin-system-startup"], [data-page="admin/system/startup"])
|
||||
min-width: min(420px, 75vw);
|
||||
max-width: 75vw;
|
||||
}
|
||||
|
||||
/* ===== 登录页防页脚遮挡(几何触发,仅重叠的设备生效)=====
|
||||
#liquid-login 是 fixed 全屏 + flex 垂直居中;页脚 p.luci 是 fixed bottom:4
|
||||
z-index:2001 —— 矮视口(折叠机外屏)或 iOS 工具栏展开时,卡片下半截(登录
|
||||
按钮)被页脚文字压住,内屏(大屏)轻微覆盖。
|
||||
main.js 实测"整个 stack(顶部胶囊+卡片)相对视口与页脚"重叠才加类:
|
||||
· clear → 给页脚留 72px 净空(卡片上移,解决轻微覆盖)
|
||||
· fit → 仍不行则整栈 zoom 等比缩小(小屏不滚动、页脚固定可见、
|
||||
顶部胶囊不被裁——用户要求:缩小登录页所有元素比例)
|
||||
其它平台视口够高 → 不重叠 → 不加类 → 渲染完全不变。
|
||||
注:不靠 UA/分辨率猜设备(iOS UA 无机型信息),靠几何测量。 */
|
||||
body.liquid-login.liquid-login-clear #liquid-login {
|
||||
padding-bottom: 72px;
|
||||
}
|
||||
|
||||
/* 第二级:整栈等比缩小(zoom 由 main.js 按几何计算后写入 inline style)。
|
||||
目的是"小屏不滚动、页脚固定可见"(用户要求:缩小登录页所有元素比例),
|
||||
同时保证顶部胶囊(暗黑模式/颜色选择)不被裁掉。 */
|
||||
body.liquid-login.liquid-login-fit #liquid-login .liquid-login-stack {
|
||||
/* zoom 在 inline style 上;此处只留调试标记用的 class,无强制样式 */
|
||||
}
|
||||
@@ -1910,6 +1910,95 @@
|
||||
m.insertBefore(w.firstChild, m.firstChild);
|
||||
}
|
||||
|
||||
/* ===== 登录页:卡片与固定页脚的重叠检测(Duo 外屏/内屏、iOS 工具栏展开等)=====
|
||||
起因:外屏登录框下半截被页脚压住(连登录按钮都被盖)、内屏轻微覆盖。
|
||||
为什么不用 UA/分辨率判断设备:iOS 的 EdgiOS UA 只有 OS 版本+浏览器构建号,
|
||||
读不到机型与屏幕形态;分辨率能区分内外屏但会误伤同尺寸的其它设备。
|
||||
这里直接量几何——整个 stack(顶部胶囊+卡片)的上下边 vs 视口安全区与
|
||||
页脚顶线(fixed bottom:4+自身高),重叠才分级处理:
|
||||
clear=页脚留净空(卡片上移) / fit=整栈 zoom 等比缩小(不滚动、页脚始终
|
||||
可见、顶部胶囊不裁)。不重叠的平台零变化。监听 resize / orientationchange
|
||||
/ visualViewport 以覆盖 iOS 工具栏展开收起引起的视口变化。 */
|
||||
function syncLoginFooterClearance() {
|
||||
var body = document.body;
|
||||
if (!body || !body.classList.contains('liquid-login'))
|
||||
return;
|
||||
var overlay = document.getElementById('liquid-login');
|
||||
var stack = overlay && overlay.querySelector('.liquid-login-stack');
|
||||
var card = stack && stack.querySelector('.modal.login');
|
||||
var foot = document.querySelector('p.luci');
|
||||
if (!overlay || !stack || !card || !foot)
|
||||
return;
|
||||
|
||||
/* 复位到"零变化"基线 */
|
||||
body.classList.remove('liquid-login-clear');
|
||||
body.classList.remove('liquid-login-fit');
|
||||
stack.style.zoom = '';
|
||||
|
||||
function geom() {
|
||||
var sr = stack.getBoundingClientRect();
|
||||
var fh = foot.offsetHeight || 0;
|
||||
var vh = overlay.clientHeight;
|
||||
return {
|
||||
top: sr.top,
|
||||
bottom: sr.bottom,
|
||||
height: sr.height,
|
||||
footTop: vh - 4 - fh,
|
||||
vh: vh
|
||||
};
|
||||
}
|
||||
function fits() {
|
||||
var g = geom();
|
||||
/* 顶部不被裁(留8px)、底部不进页脚区(留8px气口)、卡片不超高 */
|
||||
return g.top >= 8 && g.bottom <= g.footTop - 8 &&
|
||||
card.getBoundingClientRect().height <= g.vh - 8;
|
||||
}
|
||||
|
||||
if (fits())
|
||||
return; /* 不重叠 → 一个 class 都不加(其它平台零变化) */
|
||||
|
||||
/* 级1 clear:给页脚留净空,卡片整体上移一点(解决轻微覆盖) */
|
||||
body.classList.add('liquid-login-clear');
|
||||
if (fits())
|
||||
return;
|
||||
|
||||
/* 级2 fit:整栈等比缩小(zoom)——小屏不滚动、页脚固定可见、
|
||||
顶部胶囊不被裁(用户要求:缩小登录页所有元素比例)。
|
||||
注意 flex 是垂直居中:栈底 = (内容高+缩放后高)/2,不能按顶对齐公式
|
||||
算,改为"保留 clear 净空 + 逐次收敛"——每缩 8% 复测一次直到 fits。 */
|
||||
body.classList.add('liquid-login-clear'); /* fit 期间保留净空,整体上移 */
|
||||
body.classList.add('liquid-login-fit');
|
||||
var scale = 1;
|
||||
stack.style.zoom = scale;
|
||||
for (var i = 0; i < 12 && !fits(); i++) {
|
||||
scale = Math.max(scale * 0.92, 0.4); /* 0.4 兜底,避免缩到不可读 */
|
||||
stack.style.zoom = scale;
|
||||
if (scale <= 0.401)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function scheduleLoginFooterClearance() {
|
||||
if (window.requestAnimationFrame)
|
||||
window.requestAnimationFrame(syncLoginFooterClearance);
|
||||
else
|
||||
syncLoginFooterClearance();
|
||||
}
|
||||
|
||||
scheduleLoginFooterClearance();
|
||||
window.addEventListener('load', scheduleLoginFooterClearance);
|
||||
window.addEventListener('resize', scheduleLoginFooterClearance);
|
||||
window.addEventListener('orientationchange', scheduleLoginFooterClearance);
|
||||
if (window.visualViewport)
|
||||
window.visualViewport.addEventListener('resize', scheduleLoginFooterClearance);
|
||||
setTimeout(scheduleLoginFooterClearance, 300); /* 字体/布局落定后复核 */
|
||||
if (window.MutationObserver) {
|
||||
/* 输密码报错会让卡片变高 → 重新判定 */
|
||||
new MutationObserver(scheduleLoginFooterClearance)
|
||||
.observe(document.getElementById('liquid-login') || document.body,
|
||||
{ childList: true, subtree: true, characterData: true });
|
||||
}
|
||||
|
||||
/* 窗口尺寸变化时重新计算已打开下拉框的方向 */
|
||||
window.addEventListener('resize', function () {
|
||||
setTimeout(adjustDropdownDirection, 60);
|
||||
|
||||
+3
-3
@@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=xkcptun
|
||||
PKG_RELEASE:=9
|
||||
PKG_RELEASE:=10
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/liudf0716/xkcptun.git
|
||||
PKG_SOURCE_DATE:=2026-10-25
|
||||
PKG_SOURCE_VERSION:=e5ec5ed74a20a75e9c3b22221d7f07346ffa0d1e
|
||||
PKG_SOURCE_DATE:=2026-11-03
|
||||
PKG_SOURCE_VERSION:=cddcd5e6d5dfa5d376dec0d2e8ef35fdc9409967
|
||||
PKG_MIRROR_HASH:=skip
|
||||
|
||||
PKG_MAINTAINER:=Dengfeng Liu <liudf0716@gmail.com>
|
||||
|
||||
Reference in new issue
Block a user