diff --git a/app/src/assets/scss/_layout.scss b/app/src/assets/scss/_layout.scss index 43f16f962..448a09807 100644 --- a/app/src/assets/scss/_layout.scss +++ b/app/src/assets/scss/_layout.scss @@ -237,12 +237,10 @@ border-left: 1px solid var(--b3-border-color); } - dockTop { - border-bottom: 1px solid var(--b3-border-color); - } - + dockTop, dockBottom { border-top: 1px solid var(--b3-border-color); + border-bottom: 1px solid var(--b3-border-color); } svg { diff --git a/app/src/assets/scss/base.scss b/app/src/assets/scss/base.scss index a8670d344..47591f704 100644 --- a/app/src/assets/scss/base.scss +++ b/app/src/assets/scss/base.scss @@ -230,6 +230,14 @@ progressLoading: 400 } } +.status { + background-color: var(--b3-theme-surface); + box-sizing: border-box; + height: 22px; + line-height: 22px; + font-size: 12px; +} + .config { &-query { display: flex; diff --git a/app/src/assets/template/app/index.tpl b/app/src/assets/template/app/index.tpl index fd62a534c..85fd5f6a4 100644 --- a/app/src/assets/template/app/index.tpl +++ b/app/src/assets/template/app/index.tpl @@ -20,6 +20,7 @@
+ diff --git a/app/src/assets/template/desktop/index.tpl b/app/src/assets/template/desktop/index.tpl index 0542a99ae..ad9852201 100644 --- a/app/src/assets/template/desktop/index.tpl +++ b/app/src/assets/template/desktop/index.tpl @@ -18,6 +18,7 @@ + diff --git a/app/src/dialog/processSystem.ts b/app/src/dialog/processSystem.ts index 432484b96..f5a3bfd8f 100644 --- a/app/src/dialog/processSystem.ts +++ b/app/src/dialog/processSystem.ts @@ -144,6 +144,10 @@ export const transactionError = (data: { code: number, data: string }) => { }); }; +export const progressStatus = (data: IWebSocketData) => { + document.getElementById("statusMsg").innerHTML = data.data; +}; + export const progressLoading = (data: IWebSocketData) => { let progressElement = document.getElementById("progress"); if (!progressElement) { diff --git a/app/src/index.ts b/app/src/index.ts index dda85aa85..643b3612a 100644 --- a/app/src/index.ts +++ b/app/src/index.ts @@ -11,7 +11,14 @@ import {fetchGet, fetchPost} from "./util/fetch"; import {addBaseURL, setNoteBook} from "./util/pathName"; import {repos} from "./config/repos"; import {openFileById} from "./editor/util"; -import {bootSync, downloadProgress, progressLoading, setTitle, transactionError} from "./dialog/processSystem"; +import { + bootSync, + downloadProgress, + progressLoading, + progressStatus, + setTitle, + transactionError +} from "./dialog/processSystem"; import {promiseTransactions} from "./protyle/wysiwyg/transaction"; import {initMessage} from "./dialog/message"; import {resizeDrag} from "./layout/util"; @@ -39,6 +46,9 @@ class App { case"progress": progressLoading(data); break; + case"statusbar": + progressStatus(data); + break; case"downloadProgress": downloadProgress(data.data); break; diff --git a/app/src/util/onGetConfig.ts b/app/src/util/onGetConfig.ts index 39755e896..8148f563f 100644 --- a/app/src/util/onGetConfig.ts +++ b/app/src/util/onGetConfig.ts @@ -135,6 +135,7 @@ export const onGetConfig = () => { } }); initBar(); + initStatus(); initWindow(); appearance.onSetappearance(window.siyuan.config.appearance); initAssets(); @@ -153,6 +154,61 @@ export const onGetConfig = () => { } }; +const initStatus = () => { + document.querySelector(".status").innerHTML = ` + + + + +` + const baSyncElement = document.getElementById("barSync"); + baSyncElement.addEventListener("click", () => { + if (needSubscribe()) { + return; + } + if (!window.siyuan.config.sync.enabled) { + showMessage(window.siyuan.languages._kernel[124]); + return; + } + if (baSyncElement.firstElementChild.classList.contains("fn__rotate")) { + return; + } + fetchPost("/api/sync/performSync", {}); + }); + const barDockElement = document.getElementById("barDock"); + const useElement = document.querySelector("#barDock use"); + barDockElement.addEventListener("click", () => { + const dockIsShow = useElement.getAttribute("xlink:href") === "#iconHideDock"; + if (dockIsShow) { + useElement.setAttribute("xlink:href", "#iconDock"); + barDockElement.setAttribute("aria-label", window.siyuan.languages.showDock); + } else { + useElement.setAttribute("xlink:href", "#iconHideDock"); + barDockElement.setAttribute("aria-label", window.siyuan.languages.hideDock); + } + document.querySelectorAll(".dock").forEach(item => { + if (dockIsShow) { + if (item.querySelector(".dock__item")) { + item.classList.add("fn__none"); + } + } else { + if (item.querySelector(".dock__item")) { + item.classList.remove("fn__none"); + } + } + }); + resizeTabs(); + }); +} + const initBar = () => { document.querySelector(".toolbar").innerHTML = ` - -