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 = `
@@ -165,21 +221,11 @@ const initBar = () => {
-
- - - -
-
- - - -
@@ -206,20 +252,6 @@ const initBar = () => { document.getElementById("barMore").addEventListener("click", (event) => { initToolbarMore().popup({x: event.clientX, y: event.clientY}); }); - 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 barThemeModeElement = document.getElementById("barThemeMode"); barThemeModeElement.addEventListener("click", () => { if (barThemeModeElement.getAttribute("disabled")) { @@ -248,30 +280,6 @@ const initBar = () => { loadAssets(response.data.appearance); }); }); - 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(); - }); document.getElementById("toolbarVIP").addEventListener("click", () => { const dialogSetting = openSetting(); dialogSetting.element.querySelector('.b3-tab-bar [data-name="account"]').dispatchEvent(new CustomEvent("click"));