fix(logs): 忽略/取消忽略操作写入操作日志

原 /api/ignore 与 /api/ignore/:pkgName 只写 ignored_packages 表不记日志,
导致操作日志页查不到忽略记录。logs 表新增 action 列区分操作类型
(clean/ignore/unignore,旧库运行时 ALTER TABLE 迁移),忽略与取消忽略
接口补写 addLog;日志页按操作类型展示徽标与详情,删除数量/释放空间对
非清理操作显示占位符。
This commit is contained in:
陈银军
2026-09-19 21:58:44 +08:00
parent d5074d0ff4
commit a0f0c27c44
5 changed files with 81 additions and 27 deletions
+10 -3
View File
@@ -26,6 +26,7 @@ CREATE TABLE IF NOT EXISTS ignored_packages (
);
CREATE TABLE IF NOT EXISTS logs (
id INTEGER PRIMARY KEY AUTOINCREMENT,
action TEXT DEFAULT 'clean',
pkg_name TEXT,
deleted_versions TEXT,
deleted_count INTEGER,
@@ -34,6 +35,12 @@ CREATE TABLE IF NOT EXISTS logs (
);
`)
// 旧库迁移:早期 logs 表无 action 列,运行时补齐(忽略/取消忽略等操作依赖该列区分类型)
const logCols = db.prepare('PRAGMA table_info(logs)').all().map(c => c.name)
if (!logCols.includes('action')) {
db.exec("ALTER TABLE logs ADD COLUMN action TEXT DEFAULT 'clean'")
}
// —— settings ——
export function getSetting(key, def = null) {
const row = db.prepare('SELECT value FROM settings WHERE key = ?').get(key)
@@ -70,10 +77,10 @@ export function removeIgnored(pkgName) {
}
// —— logs ——
export function addLog({ pkgName, deletedVersions, deletedCount, freedSpace }) {
export function addLog({ action = 'clean', pkgName, deletedVersions = null, deletedCount = 0, freedSpace = null }) {
const info = db.prepare(
'INSERT INTO logs (pkg_name, deleted_versions, deleted_count, freed_space) VALUES (?, ?, ?, ?)',
).run(pkgName, deletedVersions, deletedCount, freedSpace)
'INSERT INTO logs (action, pkg_name, deleted_versions, deleted_count, freed_space) VALUES (?, ?, ?, ?, ?)',
).run(action, pkgName, deletedVersions, deletedCount, freedSpace)
return info.lastInsertRowid
}