qing
ea670adde2
feat(static): dnfs 内容输入框随内容自动调整高度
...
- textarea 输入时自动增长,最小 120px,最大 400px
- 超过最大高度后出现滚动条,避免页面无限撑开
- 编辑已有节点时自动适配内容高度
- 提交/重置/退出编辑后恢复初始高度
- 禁用手动拖拽 resize,由自动增长统一控制
2026-07-30 22:21:24 +08:00
qing
6649b31e17
feat(static): add frontend token auto-refresh for dnfs page
...
- New token_manager.js: silent refresh timer (80% lifetime) + global
fetch 401 interceptor with one-shot retry.
- dnfs.py /whoami now returns iat, created_at, keep_time for expiry
estimation.
- Dnfs.html loads token_manager.js before dnfs.js (zero change to dnfs.js).
- Graceful fallback: stale tokens without new fields, refresh failures,
and /refresh_token 401 itself all degrade to the existing 401→login flow.
2026-07-30 12:25:11 +08:00
qing
9765edac9b
fix(static): 前端脚本识别 WAF 拦截响应并正确提示
...
- validation.js 新增 WafTip 公共检测:403 + 响应体含 blocked by WAF 双重特征,
与 gateway 白名单拒绝的 403(JSON 错误消息)精确区分
- login/register/dnfs/view 各请求点在 JSON 解析前识别拦截,统一提示
「请求被 WAF 安全规则拦截,请检查输入内容」
- 修复 dnfs getNode 被 WAF 拦截时落入 catch 误跳登录页的问题
- 验证码图片加载识别 403 拦截,alt 提示点击重试
- __view.html 补充引入 validation.js
2026-07-30 11:01:34 +08:00
qing
40175eddb5
Revert "style(dnfs): 用户信息面板移到左边中间,与右侧 minimap 镜像对称"
...
This reverts commit 5c33dbe027 .
2026-07-30 09:52:08 +08:00
qing
5c33dbe027
style(dnfs): 用户信息面板移到左边中间,与右侧 minimap 镜像对称
2026-07-30 09:44:15 +08:00
qing
a58a0f97e3
feat(dnfs): minimap 与用户面板按视口宽度决定初始折叠态
...
新增 PANEL_EXPAND_MIN_WIDTH=768 断点:宽屏默认展开、窄屏默认折叠避免
遮挡内容;仅决定初始状态,用户手动折叠/展开不被 resize 覆盖。
2026-07-30 09:40:58 +08:00
qing
55b127747a
fix(dnfs): 用户面板用户名/角色改为纯展示,去除手型光标与 hover 变色
...
新增 .tag.no-hover 修饰类还原交互态;折叠按钮与退出登录保持可点样式。
2026-07-30 09:34:53 +08:00
qing
8c1956cdeb
feat(dnfs): 左上角用户信息面板(默认折叠),新增 /whoami 身份接口
...
dnfs 新增 POST /whoami:解 Token payload 返回 user/is_admin,无或畸形
Token 返回 login=false(HttpOnly Cookie 模式下 JS 无法读 Token,身份
必须由后端下发);static 加 /whoami 代理(Cookie 转 Bearer);前端
dnfs.html 左上新增 userpanel,镜像 minimap 样式默认折叠,展开显示
用户名/角色/退出登录(POST /logout 清 Cookie 后跳登录页)。
2026-07-30 09:31:28 +08:00
qing
1388fcb72b
feat(dnfs): 卡片移动按钮一并纳入 can_operate 权限显隐
...
编辑/移动/删除三个按钮合并为单次权限判断(移动本质也是 update_note),
未登录或无权时不渲染整个按钮组。
2026-07-30 09:21:15 +08:00
qing
b4e1cf462a
feat(dnfs): get_notes 按当前用户注入 can_operate,前端按权显隐编辑/删除按钮
...
dnfs get_notes 可选解析 Authorization(畸形 Token try 兜底),为每个节点
附带 can_operate 标记(is_admin 或 owner,口径与 delete/update 一致);
dnfs.js 卡片编辑/删除按钮仅 can_operate === true 时渲染,未登录或无权隐藏。
2026-07-30 09:17:28 +08:00
qing
949d274c22
获取节点失败后跳转
2026-07-30 08:22:53 +08:00
qing
c5dd8d198d
feat(smtp): 同一邮箱 60 秒发送冷却,gateway 429 透传 + 前端重发倒计时(gateway v0.5.3)
2026-07-29 20:54:56 +08:00
qing
f4a7aca2fa
update: smtp 验证码有效期 60s 调整为 10 分钟,邮件正文从 CODE_TTL 派生
...
60 秒对邮件送达延迟过于紧张;正文有效期文案改为按 TTL 自动生成避免漂移,前端提示与 README 同步。同时移除 .env 排查用的凭证明文调试打印。
2026-07-29 19:32:44 +08:00
qing
3bc4f9720f
fix(dnfs): 移动请求期间禁用按钮防止重复提交
...
后端 update_note 走 AI 审核耗时较长,confirmMove 期间禁用移动条
与表单按钮,finally 统一恢复
2026-07-29 14:37:27 +08:00
qing
3f9bffb9ea
feat(dnfs): 节点移动功能
...
- dnfs.js: 卡片新增移动按钮,startMove 暂存节点,底部悬浮移动条
提供移动到当前层/取消;confirmMove 经 update_note 改 pid 完成迁移;
拦截移动到自身与已在当前层的情况
- dnfs.html: 新增 #movebar 容器
- theme.css: act-move 描边按钮与 movebar 底部悬浮条样式
2026-07-29 11:40:35 +08:00
qing
ace98caff6
feat: 卡片编辑/删除按钮 + dnfs 管理员豁免
...
- dnfs.js: 卡片底部新增编辑/删除按钮,复用下方表单支持编辑模式
(startEdit/cancelEdit/updateNode/deleteChild),stopPropagation 防误触
- theme.css: 新增 card-actions/act-btn 按钮样式,编辑橙色/删除红色软底
- dnfs.py: ADMIN_USERS 统一管理豁免名单(admin, admin@qsont.me ),
update_note 新增管理员豁免,delete_note 同步改用名单
- dnfs/README.md: 同步更新所有权豁免说明
2026-07-29 11:22:30 +08:00
qing
2fc12e7b00
feat(dnfs): 卡片增加观看/点赞/分享互动统计图标
...
- dnfs.js: 新增眼睛/爱心/转发 SVG 图标常量与 makeStatItem 构造函数,
统计行挂载在 owner 胶囊下方,计数缺省显示 0(后端暂无该字段)
- theme.css: 新增 card-stats/stat-item/stat-num 样式
2026-07-29 10:59:40 +08:00
qing
dae81ba4a1
style(dnfs): 美化卡片发帖用户显示为头像+昵称胶囊
...
- dnfs.js: owner 纯文本改为首字符圆形头像 + 昵称,空值兜底匿名
- theme.css: 新增 Owner Chip 样式段,复用主题变量自动适配深色模式
2026-07-29 10:53:29 +08:00
qing
a905dac00d
display note ownerx
2026-07-29 10:47:20 +08:00
qing
df518d1adb
feat: 注册强制邮箱验证码(gateway v0.5.0 新增 /register/send_code,pymsg 调 smtp)
2026-07-28 17:29:52 +08:00
qing
483c5f227f
fix: 发布节点期间同步禁用重置/删除按钮,防止误触
2026-07-28 12:17:27 +08:00
qing
bfd2d334fe
fix: 前端按钮防重复点击,避免重复请求(dnfs提交/删除、view刷新、验证码刷新)
2026-07-28 12:10:48 +08:00
qing
6fcb70d235
feat: 登录页接入图形验证码,登录接口强制校验
...
登录页展示 captcha 图形码(点击刷新),登录请求携带 captcha_token/captcha_answer;gateway 的 /login 启用验证码校验,经 pymsg 调 captcha verify 路由(fail-closed),补齐防爆破短板。
2026-07-28 10:15:01 +08:00
qing
4ad3fbfca8
fix: 修复公开页面因旧 Cookie 验签失败误返回 401
...
浏览器会自动给每个请求携带 q4_token,gateway 重启轮换内存 RSA 密钥后旧凭证验签失败,导致无需登录的公开页面也 401。代理层改为仅对需鉴权目标校验凭证,公开目标跳过;前端遇 401 自动跳转登录页自愈。
2026-07-28 09:31:10 +08:00
qing
e89578fa82
security: Token 改为 HttpOnly Cookie 下发,消除 XSS 窃取面
...
登录时网关签发 HttpOnly+Secure+SameSite=Lax 的 q4_token Cookie,前端不再经手 Token;网关代理时支持从 Cookie 验签并向下游注入 Authorization(dnfs 零改动),新增 /logout 清除 Cookie,static 代理路由兼容 Cookie 转 Bearer。
2026-07-28 09:07:12 +08:00
qing
ee44e1bef1
docs & ui: 完善 captcha/aibox 文档,登录注册改为邮箱制
...
- captcha/README.md: 补充字段级接口文档与错误码表
- aibox/README.md: 对照 main.py 源码核对修正(入口/模型/工具/配置)
- static/public/login.html & register.html: 用户名改为邮箱
- static/public/js/register.js: 合并注册页双邮箱框为单一邮箱字段
2026-07-27 22:51:57 +08:00
qing
13f3eb8f88
DEV
2026-07-27 21:43:56 +08:00
qing
a67f190634
“返回上一层”按钮样式
2026-07-27 15:41:14 +08:00
qing
9b4a0a6a16
折叠minimap
2026-07-27 14:51:41 +08:00
shufeng2012
0abba64ea8
🐛 我看还是把等号加上吧
2026-07-27 13:32:06 +08:00
qing
f056da1dfc
update minimap
2026-07-27 12:36:59 +08:00
qing
614368eb93
fontend update without css
2026-07-27 12:24:06 +08:00
qing
896cfc32ca
网友修x改、我修复之后
2026-07-26 12:06:56 +08:00
qing
fbccc5d909
网友修改版
2026-07-25 00:21:16 +08:00
shufeng2012
15a95f7a18
✨ 添加 删除节点确认 功能
2026-07-24 15:08:48 +08:00
shufeng2012
a6ff35260b
使用db服务
2026-07-24 10:02:46 +08:00
shufeng2012
787502b88d
🐛 修复新建节点后没有自动清空
2026-07-24 09:34:41 +08:00
shufeng2012
b5e88171f4
FIXBUG:
...
Uncaught (in promise) TypeError: Cannot set properties of null (setting 'textContent')
at load_notes (dnfs.js:196:28)
2026-07-23 21:38:46 +08:00
shufeng2012
ed4f114f18
🚸 添加 是否保留输入内容 功能
2026-07-23 20:55:31 +08:00
shufeng2012
cebae03059
🎨 整合为刷新页面就清空输入框
2026-07-23 20:37:47 +08:00
shufeng2012
234e4340c4
🚸 添加 添加节点后自动清空输入框 功能
2026-07-23 20:03:11 +08:00
shufeng2012
0055ffb17f
🚸 添加 添加节点后自动刷新 功能
2026-07-23 20:02:00 +08:00
shufeng2012
68ec85c6c7
✨ 添加删除节点功能
2026-07-23 19:59:46 +08:00
shufeng2012
1f7a33cf33
临时提交
2026-07-23 19:01:43 +08:00
shufeng2012
bd0bc751d9
💬 更改添加节点报错输出
2026-07-23 17:06:08 +08:00
qing
3a09e64e74
微调
2026-07-23 12:58:44 +08:00
qing
888e1e56f5
9201 => 443
2026-07-23 12:00:38 +08:00
shufeng2012
da12f288d2
💄 更新子节点内点赞数等ui
2026-07-23 11:29:34 +08:00
qing
874630d84e
加注释
2026-07-23 11:06:22 +08:00
qing
47a84e3232
记录笔记,脚本还无法在编译状态下稳定运行
2026-07-23 10:48:56 +08:00