diff --git a/.vscode/settings.json b/.vscode/settings.json index 68a269c6c1..074f98b42a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,5 +2,6 @@ "vue.features.codeActions.enable": false, "files.associations": { "*.sy": "json" - } + }, + "workbench.editor.wrapTabs": true } diff --git a/app/scripts/genAppIndex.tpl.js b/app/scripts/genAppIndex.tpl.js index 0bd6e52b3f..2b98b76e50 100644 --- a/app/scripts/genAppIndex.tpl.js +++ b/app/scripts/genAppIndex.tpl.js @@ -22,6 +22,7 @@ const T = ` <%- ndom.SiYuan.dockBottom %> <%- ndom.SiYuan.status %> <%- ndom.Sillot.SillotDrawer %> +<%- ndom.Sillot.SillotOverlay %> <%- ndom.SiYuan.commonMenu %> <%- ndom.SiYuan.message %> <%- ndom.ReactApp.app1 %> diff --git a/app/scripts/genAppWindow.tpl.js b/app/scripts/genAppWindow.tpl.js index d68924f346..290c0a73fd 100644 --- a/app/scripts/genAppWindow.tpl.js +++ b/app/scripts/genAppWindow.tpl.js @@ -20,6 +20,7 @@ const T = ` <%- ndom.SiYuan.status %> <%- ndom.SiYuan.commonMenu %> <%- ndom.SiYuan.message %> +<%- ndom.Sillot.SillotOverlay %> <%- ndom.ReactApp.app1 %> <%- ndom.ReactApp.app3 %> <%- ndom.ReactApp.app5 %> diff --git a/app/scripts/genDesktopIndex.tpl.js b/app/scripts/genDesktopIndex.tpl.js index c13db4e502..681e29d417 100644 --- a/app/scripts/genDesktopIndex.tpl.js +++ b/app/scripts/genDesktopIndex.tpl.js @@ -25,6 +25,7 @@ const T = ` <%- ndom.SiYuan.status %> <%- ndom.SiYuan.commonMenu %> <%- ndom.SiYuan.message %> +<%- ndom.Sillot.SillotOverlay %> <%- ndom.ReactApp.app1 %> <%- ndom.ReactApp.app3 %> <%- ndom.ReactApp.app5 %> diff --git a/app/scripts/genDockerIndex.tpl.js b/app/scripts/genDockerIndex.tpl.js index 2b8bbdfae7..aa9c129386 100644 --- a/app/scripts/genDockerIndex.tpl.js +++ b/app/scripts/genDockerIndex.tpl.js @@ -24,6 +24,7 @@ const T = ` <%- ndom.SiYuan.status %> <%- ndom.SiYuan.commonMenu %> <%- ndom.SiYuan.message %> +<%- ndom.Sillot.SillotOverlay %> <%- ndom.ReactApp.app1 %> <%- ndom.ReactApp.app3 %> <%- ndom.ReactApp.app5 %> diff --git a/app/scripts/genMobileIndex.tpl.js b/app/scripts/genMobileIndex.tpl.js index 954a4bc726..72af6b5a58 100644 --- a/app/scripts/genMobileIndex.tpl.js +++ b/app/scripts/genMobileIndex.tpl.js @@ -27,6 +27,7 @@ const T = ` <%- ndom.SiYuan.mobile.status %> <%- ndom.SiYuan.mobile.keyboardToolbar %> <%- ndom.SiYuan.mobile.sideMask %> +<%- ndom.Sillot.SillotOverlay %> <%- ndom.ReactApp.app1 %> <%- ndom.ReactApp.app3 %> <%- ndom.ReactApp.app5 %> diff --git a/app/scripts/genTPLData.js b/app/scripts/genTPLData.js index e0a95bc24b..fed6e61d36 100644 --- a/app/scripts/genTPLData.js +++ b/app/scripts/genTPLData.js @@ -116,6 +116,17 @@ exports.default = { }, Sillot: { SillotDrawer: /*html*/ `
`, + SillotOverlay: /*html*/ ` + `, }, ReactApp: { app1: /*html*/ ``, diff --git a/app/src/assets/template/app/index.tpl b/app/src/assets/template/app/index.tpl index 407849a9f7..d83ff347ff 100644 --- a/app/src/assets/template/app/index.tpl +++ b/app/src/assets/template/app/index.tpl @@ -27,6 +27,17 @@ + + + + diff --git a/app/src/assets/template/mobile/index.tpl b/app/src/assets/template/mobile/index.tpl index 918650e9bc..4d1212b5f8 100644 --- a/app/src/assets/template/mobile/index.tpl +++ b/app/src/assets/template/mobile/index.tpl @@ -77,6 +77,17 @@ + + diff --git a/app/src/dialog/processSystem.ts b/app/src/dialog/processSystem.ts index f932145cc8..f32b0132db 100644 --- a/app/src/dialog/processSystem.ts +++ b/app/src/dialog/processSystem.ts @@ -180,28 +180,10 @@ export const kernelError = () => { } }; -// 在退出时禁用整个 HTML 页面的交互 -function disableInteractions() { - // 创建一个遮罩层 - const overlay = document.createElement('div'); - overlay.style.position = 'fixed'; - overlay.style.top = '0'; - overlay.style.left = '0'; - overlay.style.width = '100%'; - overlay.style.height = '100%'; - overlay.style.backgroundColor = 'rgba(0, 0, 0, 0.5)'; - overlay.style.zIndex = '9999'; // 确保在最上层 - document.body.appendChild(overlay); - - // 禁用遮罩层上的点击事件 - overlay.addEventListener('click', (event) => { - event.preventDefault(); - event.stopPropagation(); - }); -} export const exitSiYuan = () => { - disableInteractions(); + const overlay = document.querySelector('#SillotOverlay') as HTMLElement; + overlay.style.display = "block"; exportIDB().then(() => { hideAllElements(["util"]); /// #if MOBILE diff --git a/app/src/util/mount.ts b/app/src/util/mount.ts index 626a5092c6..7774255529 100644 --- a/app/src/util/mount.ts +++ b/app/src/util/mount.ts @@ -93,11 +93,13 @@ export const newDailyNote = (app: App) => { }; export const mountHelp = () => { + const overlay = document.querySelector('#SillotOverlay') as HTMLElement; + overlay.style.display = "block"; const notebookId = Constants.HELP_PATH[window.siyuan.config.appearance.lang as "zh_CN" | "en_US"]; fetchPost("/api/notebook/removeNotebook", {notebook: notebookId, callback: Constants.CB_MOUNT_REMOVE}, () => { fetchPost("/api/notebook/openNotebook", { notebook: notebookId - }); + }, () => { const overlay = document.querySelector('#SillotOverlay') as HTMLElement; overlay.style.display = 'none'; }); }); }; diff --git a/kernel/api/asset.go b/kernel/api/asset.go index 6d30e34dc2..32b2bf7672 100644 --- a/kernel/api/asset.go +++ b/kernel/api/asset.go @@ -28,6 +28,7 @@ import ( "github.com/dustin/go-humanize" "github.com/gin-gonic/gin" "github.com/siyuan-note/filelock" + "github.com/siyuan-note/logging" "github.com/siyuan-note/siyuan/kernel/model" "github.com/siyuan-note/siyuan/kernel/util" ) @@ -235,7 +236,7 @@ func resolveFileAnnotationAbsPath(assetRelPath string) (ret string, err error) { func removeUnusedAsset(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) removeUnusedAsset invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -246,16 +247,18 @@ func removeUnusedAsset(c *gin.Context) { ret.Data = map[string]interface{}{ "path": asset, } + logging.LogDebugf("[%s] (model) removeUnusedAsset invoked", c.ClientIP()) } func removeUnusedAssets(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) removeUnusedAssets invoked", c.ClientIP()) paths := model.RemoveUnusedAssets() ret.Data = map[string]interface{}{ "paths": paths, } + logging.LogDebugf("[%s] (model) removeUnusedAssets invoked", c.ClientIP()) } func getUnusedAssets(c *gin.Context) { diff --git a/kernel/api/block_op.go b/kernel/api/block_op.go index a6d75793cf..a3db34dc85 100644 --- a/kernel/api/block_op.go +++ b/kernel/api/block_op.go @@ -214,7 +214,7 @@ func moveBlock(c *gin.Context) { if !ok { return } - logging.LogDebugf("moveBlock invoked") + logging.LogDebugf("[%s] moveBlock invoked", c.ClientIP()) id := arg["id"].(string) if util.InvalidIDPattern(id, ret) { diff --git a/kernel/api/file.go b/kernel/api/file.go index a842eb7115..09a966d6df 100644 --- a/kernel/api/file.go +++ b/kernel/api/file.go @@ -292,7 +292,7 @@ func renameFile(c *gin.Context) { func removeFile(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) removeFile invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { c.JSON(http.StatusOK, ret) @@ -324,6 +324,7 @@ func removeFile(c *gin.Context) { ret.Msg = err.Error() return } + logging.LogDebugf("[%s] (github.com/siyuan-note/filelock) filelock.Remove invoked", c.ClientIP()) } func putFile(c *gin.Context) { diff --git a/kernel/api/filetree.go b/kernel/api/filetree.go index 381ddc7867..11eb3b8a93 100644 --- a/kernel/api/filetree.go +++ b/kernel/api/filetree.go @@ -30,6 +30,7 @@ import ( "github.com/88250/gulu" "github.com/88250/lute/ast" "github.com/gin-gonic/gin" + "github.com/siyuan-note/logging" "github.com/siyuan-note/siyuan/kernel/filesys" "github.com/siyuan-note/siyuan/kernel/model" "github.com/siyuan-note/siyuan/kernel/util" @@ -156,7 +157,7 @@ func upsertIndexes(c *gin.Context) { func removeIndexes(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) removeIndexes invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -168,6 +169,7 @@ func removeIndexes(c *gin.Context) { paths = append(paths, p.(string)) } model.RemoveIndexes(paths) + logging.LogDebugf("[%s] (model) RemoveIndexes invoked", c.ClientIP()) } func refreshFiletree(c *gin.Context) { @@ -450,7 +452,7 @@ func moveDocs(c *gin.Context) { func removeDoc(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) removeDoc invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -463,12 +465,13 @@ func removeDoc(c *gin.Context) { p := arg["path"].(string) model.RemoveDoc(notebook, p) + logging.LogDebugf("[%s] (model) removeDoc invoked", c.ClientIP()) } func removeDocs(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) removeDocs invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -480,6 +483,7 @@ func removeDocs(c *gin.Context) { paths = append(paths, path.(string)) } model.RemoveDocs(paths) + logging.LogDebugf("[%s] (model) RemoveDocs invoked", c.ClientIP()) } func renameDoc(c *gin.Context) { diff --git a/kernel/api/notebook.go b/kernel/api/notebook.go index 68487b9a60..04d1422230 100644 --- a/kernel/api/notebook.go +++ b/kernel/api/notebook.go @@ -92,7 +92,7 @@ func renameNotebook(c *gin.Context) { func removeNotebook(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] removeNotebook invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -125,6 +125,7 @@ func removeNotebook(c *gin.Context) { } evt.Callback = arg["callback"] util.PushEvent(evt) + logging.LogDebugf("[%s] removeNotebook done", c.ClientIP()) } func createNotebook(c *gin.Context) { @@ -173,7 +174,7 @@ func createNotebook(c *gin.Context) { func openNotebook(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] openNotebook invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -216,6 +217,7 @@ func openNotebook(c *gin.Context) { } evt.Callback = arg["callback"] util.PushEvent(evt) + logging.LogDebugf("[%s] openNotebook done", c.ClientIP()) } func closeNotebook(c *gin.Context) { @@ -265,7 +267,7 @@ func getNotebookConf(c *gin.Context) { func setNotebookConf(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - + logging.LogDebugf("[%s] (API) setNotebookConf invoked", c.ClientIP()) arg, ok := util.JsonArg(c, ret) if !ok { return @@ -336,13 +338,14 @@ func setNotebookConf(c *gin.Context) { box.SaveConf(boxConf) ret.Data = boxConf + logging.LogDebugf("[%s] (...) setNotebookConf done", c.ClientIP()) } func lsNotebooks(c *gin.Context) { ret := gulu.Ret.NewResult() defer c.JSON(http.StatusOK, ret) - logging.LogDebugf("lsNotebooks invoked") + logging.LogDebugf("[%s] (API) lsNotebooks invoked", c.ClientIP()) flashcard := false // 兼容旧版接口,不能直接使用 util.JsonArg() @@ -359,6 +362,7 @@ func lsNotebooks(c *gin.Context) { } else { var err error notebooks, err = model.ListNotebooks() + logging.LogDebugf("[%s] (model) lsNotebooks done", c.ClientIP()) if nil != err { logging.LogDebugf("lsNotebooks model.ListNotebooks() failed") return diff --git a/kernel/model/box.go b/kernel/model/box.go index 57042e113c..f01c8ebcda 100644 --- a/kernel/model/box.go +++ b/kernel/model/box.go @@ -218,6 +218,7 @@ func (box *Box) SaveConf(conf *conf.BoxConf) { } func (box *Box) saveConf0(data []byte) { + logging.LogDebugf("(model) saveConf0 invoked") confPath := filepath.Join(util.DataDir, box.ID, ".siyuan/conf.json") // 这个不要改为 .sillot if err := os.MkdirAll(filepath.Join(util.DataDir, box.ID, ".siyuan"), 0755); nil != err { // 这个不要改为 .sillot logging.LogErrorf("save box conf [%s] failed: %s", confPath, err) diff --git a/kernel/util/runtime.go b/kernel/util/runtime.go index 58328dc7f8..7143668922 100644 --- a/kernel/util/runtime.go +++ b/kernel/util/runtime.go @@ -153,7 +153,7 @@ func ReportFileSysFatalError(err error) { lines := strings.Split(output, "\n") output = strings.Join(lines[5:], "\n") } - logging.LogErrorf("check file system status failed: %s, %s", err, output) + logging.LogErrorf("check file system status failed: %s [output] %s", err, output) os.Exit(logging.ExitCodeFileSysErr) }