Vanessa 2023-01-24 12:13:57 +08:00
parent 456bd7d16b
commit 260be73a45
7 changed files with 45 additions and 24 deletions

View file

@ -6,7 +6,7 @@ import {isBrowser} from "../util/functions";
import {fetchPost} from "../util/fetch"; import {fetchPost} from "../util/fetch";
import {setAccessAuthCode} from "./util/setAccessAuthCode"; import {setAccessAuthCode} from "./util/setAccessAuthCode";
import {exportLayout} from "../layout/util"; import {exportLayout} from "../layout/util";
import {exitSiYuan} from "../dialog/processSystem"; import {exitSiYuan, processSync} from "../dialog/processSystem";
import {openByMobile, writeText} from "../protyle/util/compatibility"; import {openByMobile, writeText} from "../protyle/util/compatibility";
import {showMessage} from "../dialog/message"; import {showMessage} from "../dialog/message";
import {Dialog} from "../dialog"; import {Dialog} from "../dialog";
@ -297,6 +297,7 @@ export const about = {
fetchPost("/api/repo/resetRepo", {}, () => { fetchPost("/api/repo/resetRepo", {}, () => {
window.siyuan.config.repo.key = ""; window.siyuan.config.repo.key = "";
window.siyuan.config.sync.enabled = false; window.siyuan.config.sync.enabled = false;
processSync();
importKeyElement.parentElement.classList.remove("fn__none"); importKeyElement.parentElement.classList.remove("fn__none");
importKeyElement.parentElement.nextElementSibling.classList.add("fn__none"); importKeyElement.parentElement.nextElementSibling.classList.add("fn__none");
}); });

View file

@ -8,6 +8,7 @@ import {needSubscribe} from "../util/needSubscribe";
import {syncGuide} from "../sync/syncGuide"; import {syncGuide} from "../sync/syncGuide";
import {hasClosestByClassName} from "../protyle/util/hasClosest"; import {hasClosestByClassName} from "../protyle/util/hasClosest";
import {getEventName} from "../protyle/util/compatibility"; import {getEventName} from "../protyle/util/compatibility";
import {processSync} from "../dialog/processSystem";
export const account = { export const account = {
element: undefined as Element, element: undefined as Element,
@ -202,6 +203,7 @@ ${window.siyuan.languages.account8}`;
account.bindEvent(element); account.bindEvent(element);
showMessage(window.siyuan.languages.refreshUser, 3000); showMessage(window.siyuan.languages.refreshUser, 3000);
account.onSetaccount(); account.onSetaccount();
processSync()
}); });
}); });
element.querySelector("#logout").addEventListener("click", () => { element.querySelector("#logout").addEventListener("click", () => {
@ -211,6 +213,7 @@ ${window.siyuan.languages.account8}`;
element.innerHTML = account.genHTML(); element.innerHTML = account.genHTML();
account.bindEvent(element); account.bindEvent(element);
account.onSetaccount(); account.onSetaccount();
processSync()
}); });
}); });
}); });
@ -221,6 +224,7 @@ ${window.siyuan.languages.account8}`;
element.innerHTML = account.genHTML(); element.innerHTML = account.genHTML();
account.bindEvent(element); account.bindEvent(element);
account.onSetaccount(); account.onSetaccount();
processSync()
}); });
}); });
}); });
@ -368,6 +372,7 @@ ${window.siyuan.languages.account8}`;
}, },
_afterLogin(userResponse: IWebSocketData, element: Element) { _afterLogin(userResponse: IWebSocketData, element: Element) {
window.siyuan.user = userResponse.data; window.siyuan.user = userResponse.data;
processSync()
if (element.classList.contains("account") && !needSubscribe("")) { if (element.classList.contains("account") && !needSubscribe("")) {
const dialogElement = hasClosestByClassName(element, "b3-dialog--open"); const dialogElement = hasClosestByClassName(element, "b3-dialog--open");
if (dialogElement) { if (dialogElement) {
@ -395,21 +400,21 @@ ${window.siyuan.languages.account8}`;
let html = ""; let html = "";
if (window.siyuan.config.account.displayVIP && window.siyuan.user) { if (window.siyuan.config.account.displayVIP && window.siyuan.user) {
if (window.siyuan.user.userSiYuanProExpireTime === -1) { if (window.siyuan.user.userSiYuanProExpireTime === -1) {
html = `<div class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.languages.account12}">${Constants.SIYUAN_IMAGE_VIP}</div>`; html = `<div class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.account12}">${Constants.SIYUAN_IMAGE_VIP}</div>`;
} else if (window.siyuan.user.userSiYuanProExpireTime > 0) { } else if (window.siyuan.user.userSiYuanProExpireTime > 0) {
if (window.siyuan.user.userSiYuanSubscriptionPlan === 2) { if (window.siyuan.user.userSiYuanSubscriptionPlan === 2) {
html = `<div class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.languages.account3}"><svg><use xlink:href="#iconVIP"></use></svg></div>`; html = `<div class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.account3}"><svg><use xlink:href="#iconVIP"></use></svg></div>`;
} else { } else {
html = `<div class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.languages.account10}"><svg class="ft__secondary"><use xlink:href="#iconVIP"></use></svg></div>`; html = `<div class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.account10}"><svg class="ft__secondary"><use xlink:href="#iconVIP"></use></svg></div>`;
} }
} }
} }
if (!window.siyuan.user || (window.siyuan.user && window.siyuan.user.userSiYuanSubscriptionStatus === -1)) { if (!window.siyuan.user || (window.siyuan.user && window.siyuan.user.userSiYuanSubscriptionStatus === -1)) {
html = `<div class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.languages.freeSub}"><svg class="ft__error"><use xlink:href="#iconVIP"></use></svg></div>`; html = `<div class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.freeSub}"><svg class="ft__error"><use xlink:href="#iconVIP"></use></svg></div>`;
} }
if (window.siyuan.config.account.displayTitle && window.siyuan.user) { if (window.siyuan.config.account.displayTitle && window.siyuan.user) {
window.siyuan.user.userTitles.forEach(item => { window.siyuan.user.userTitles.forEach(item => {
html += `<div class="toolbar__item fn__a b3-tooltips b3-tooltips__se" aria-label="${item.name}${item.desc}">${item.icon}</div>`; html += `<div class="toolbar__item fn__a b3-tooltips b3-tooltips__sw" aria-label="${item.name}${item.desc}">${item.icon}</div>`;
}); });
} }
document.getElementById("toolbarVIP").innerHTML = html; document.getElementById("toolbarVIP").innerHTML = html;

View file

@ -3,6 +3,7 @@ import {fetchPost} from "../util/fetch";
import {showMessage} from "../dialog/message"; import {showMessage} from "../dialog/message";
import {bindSyncCloudListEvent, getSyncCloudList} from "../sync/syncGuide"; import {bindSyncCloudListEvent, getSyncCloudList} from "../sync/syncGuide";
import {hasClosestByClassName} from "../protyle/util/hasClosest"; import {hasClosestByClassName} from "../protyle/util/hasClosest";
import {processSync} from "../dialog/processSystem";
const renderProvider = (provider: number) => { const renderProvider = (provider: number) => {
if (provider === 0) { if (provider === 0) {
@ -328,12 +329,8 @@ export const repos = {
return; return;
} }
fetchPost("/api/sync/setSyncEnable", {enabled: switchElement.checked}, (response) => { fetchPost("/api/sync/setSyncEnable", {enabled: switchElement.checked}, (response) => {
if (response.code === 1) { window.siyuan.config.sync.enabled = switchElement.checked;
showMessage(response.msg); processSync();
switchElement.checked = false;
} else {
window.siyuan.config.sync.enabled = switchElement.checked;
}
}); });
}); });
const switchConflictElement = repos.element.querySelector("#generateConflictDoc") as HTMLInputElement; const switchConflictElement = repos.element.querySelector("#generateConflictDoc") as HTMLInputElement;

View file

@ -12,6 +12,7 @@ import {confirmDialog} from "./confirmDialog";
import {getCurrentWindow} from "@electron/remote"; import {getCurrentWindow} from "@electron/remote";
import {escapeHtml} from "../util/escape"; import {escapeHtml} from "../util/escape";
import {getWorkspaceName} from "../util/noRelyPCFunction"; import {getWorkspaceName} from "../util/noRelyPCFunction";
import {needSubscribe} from "../util/needSubscribe";
export const lockScreen = () => { export const lockScreen = () => {
/// #if BROWSER /// #if BROWSER
@ -315,9 +316,20 @@ export const downloadProgress = (data: { id: string, percent: number }) => {
} }
}; };
export const processSync = (data: IWebSocketData) => { export const processSync = (data?: IWebSocketData) => {
const iconElement = document.querySelector("#barSync") const iconElement = document.querySelector("#barSync")
const useElement = iconElement.querySelector("use") const useElement = iconElement.querySelector("use")
if (!data) {
if (!window.siyuan.config.sync.enabled || (0 === window.siyuan.config.sync.provider && needSubscribe(""))) {
iconElement.classList.add("toolbar__item--active");
iconElement.setAttribute("aria-label", window.siyuan.languages["_kernel"]["53"]);
useElement.setAttribute("xlink:href", "#iconCloudOff")
} else {
iconElement.classList.remove("toolbar__item--active");
useElement.setAttribute("xlink:href", "#iconCloud")
}
return;
}
if (data.code === 0) { // syncing if (data.code === 0) { // syncing
iconElement.classList.add("toolbar__item--active"); iconElement.classList.add("toolbar__item--active");
useElement.setAttribute("xlink:href", "#iconCloudSync") useElement.setAttribute("xlink:href", "#iconCloudSync")

View file

@ -9,7 +9,7 @@ import {mountHelp, newDailyNote, newNotebook} from "../../util/mount";
import {repos} from "../../config/repos"; import {repos} from "../../config/repos";
import * as md5 from "blueimp-md5"; import * as md5 from "blueimp-md5";
import {showMessage} from "../../dialog/message"; import {showMessage} from "../../dialog/message";
import {exitSiYuan, lockScreen} from "../../dialog/processSystem"; import {exitSiYuan, lockScreen, processSync} from "../../dialog/processSystem";
import {confirmDialog} from "../../dialog/confirmDialog"; import {confirmDialog} from "../../dialog/confirmDialog";
import {openHistory} from "../../history/history"; import {openHistory} from "../../history/history";
import {Dialog} from "../../dialog"; import {Dialog} from "../../dialog";
@ -62,6 +62,7 @@ const showAccountInfo = (modelElement: HTMLElement, modelMainElement: Element) =
window.siyuan.user = null; window.siyuan.user = null;
closePanel(); closePanel();
document.getElementById("menuAccount").innerHTML = `<svg class="b3-list-item__graphic"><use xlink:href="#iconAccount"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.login}</span>`; document.getElementById("menuAccount").innerHTML = `<svg class="b3-list-item__graphic"><use xlink:href="#iconAccount"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.login}</span>`;
processSync()
}); });
}); });
modelMainElement.querySelector("#deactivateUser").addEventListener(getEventName(), () => { modelMainElement.querySelector("#deactivateUser").addEventListener(getEventName(), () => {
@ -70,6 +71,7 @@ const showAccountInfo = (modelElement: HTMLElement, modelMainElement: Element) =
window.siyuan.user = null; window.siyuan.user = null;
closePanel(); closePanel();
document.getElementById("menuAccount").innerHTML = `<svg class="b3-list-item__graphic"><use xlink:href="#iconAccount"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.login}</span>`; document.getElementById("menuAccount").innerHTML = `<svg class="b3-list-item__graphic"><use xlink:href="#iconAccount"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.login}</span>`;
processSync()
}); });
}); });
}); });
@ -92,6 +94,7 @@ const showAccountInfo = (modelElement: HTMLElement, modelMainElement: Element) =
} else { } else {
menuAccountElement.innerHTML = `<svg class="b3-list-item__graphic"><use xlink:href="#iconAccount"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.login}</span>`; menuAccountElement.innerHTML = `<svg class="b3-list-item__graphic"><use xlink:href="#iconAccount"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.login}</span>`;
} }
processSync()
}); });
}); });
}; };
@ -171,6 +174,7 @@ ${accountHTML}
<svg class="b3-list-item__graphic"><use xlink:href="#iconQuit"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.safeQuit}</span> <svg class="b3-list-item__graphic"><use xlink:href="#iconQuit"></use></svg><span class="b3-list-item__text">${window.siyuan.languages.safeQuit}</span>
</div>`; </div>`;
// 只能用 click否则无法上下滚动 https://github.com/siyuan-note/siyuan/issues/6628 // 只能用 click否则无法上下滚动 https://github.com/siyuan-note/siyuan/issues/6628
processSync()
menuElement.addEventListener("click", (event) => { menuElement.addEventListener("click", (event) => {
let target = event.target as HTMLElement; let target = event.target as HTMLElement;
while (target && !target.isEqualNode(menuElement)) { while (target && !target.isEqualNode(menuElement)) {
@ -416,6 +420,7 @@ ${accountHTML}
fetchPost("/api/repo/resetRepo", {}, () => { fetchPost("/api/repo/resetRepo", {}, () => {
window.siyuan.config.repo.key = ""; window.siyuan.config.repo.key = "";
window.siyuan.config.sync.enabled = false; window.siyuan.config.sync.enabled = false;
processSync();
importKeyElement.parentElement.classList.remove("fn__none"); importKeyElement.parentElement.classList.remove("fn__none");
importKeyElement.parentElement.nextElementSibling.classList.add("fn__none"); importKeyElement.parentElement.nextElementSibling.classList.add("fn__none");
}); });
@ -664,6 +669,7 @@ ${accountHTML}
closePanel(); closePanel();
document.getElementById("menuAccount").innerHTML = `<img class="b3-list-item__graphic" src="${window.siyuan.user.userAvatarURL}"/> document.getElementById("menuAccount").innerHTML = `<img class="b3-list-item__graphic" src="${window.siyuan.user.userAvatarURL}"/>
<span class="b3-list-item__text">${window.siyuan.user.userName}</span>`; <span class="b3-list-item__text">${window.siyuan.user.userName}</span>`;
processSync()
}); });
}); });
}); });
@ -680,6 +686,7 @@ ${accountHTML}
closePanel(); closePanel();
document.getElementById("menuAccount").innerHTML = `<img class="b3-list-item__graphic" src="${window.siyuan.user.userAvatarURL}"/> document.getElementById("menuAccount").innerHTML = `<img class="b3-list-item__graphic" src="${window.siyuan.user.userAvatarURL}"/>
<span class="b3-list-item__text">${window.siyuan.user.userName}</span>`; <span class="b3-list-item__text">${window.siyuan.user.userName}</span>`;
processSync()
}); });
}); });
}); });

View file

@ -5,6 +5,7 @@ import {Dialog} from "../dialog";
import {confirmDialog} from "../dialog/confirmDialog"; import {confirmDialog} from "../dialog/confirmDialog";
import {isMobile} from "../util/functions"; import {isMobile} from "../util/functions";
import {account} from "../config/account"; import {account} from "../config/account";
import {processSync} from "../dialog/processSystem";
export const addCloudName = (cloudPanelElement: Element) => { export const addCloudName = (cloudPanelElement: Element) => {
const dialog = new Dialog({ const dialog = new Dialog({
@ -176,14 +177,11 @@ const setSync = (key?: string, dialog?: Dialog) => {
btnElement.addEventListener("click", () => { btnElement.addEventListener("click", () => {
dialog.destroy(); dialog.destroy();
fetchPost("/api/sync/setSyncEnable", {enabled: true}, (response) => { fetchPost("/api/sync/setSyncEnable", {enabled: true}, (response) => {
if (response.code === 1) { window.siyuan.config.sync.enabled = true;
showMessage(response.msg); processSync();
} else { confirmDialog(window.siyuan.languages.syncConfGuide4, window.siyuan.languages.syncConfGuide5, () => {
window.siyuan.config.sync.enabled = true; fetchPost("/api/sync/performSync", {});
confirmDialog(window.siyuan.languages.syncConfGuide4, window.siyuan.languages.syncConfGuide5, () => { });
fetchPost("/api/sync/performSync", {});
});
}
}); });
}); });
} else { } else {

View file

@ -18,7 +18,7 @@ import {addGA, initAssets, setInlineStyle, setMode} from "./assets";
import {renderSnippet} from "../config/util/snippets"; import {renderSnippet} from "../config/util/snippets";
import {openFileById} from "../editor/util"; import {openFileById} from "../editor/util";
import {focusByRange} from "../protyle/util/selection"; import {focusByRange} from "../protyle/util/selection";
import {exitSiYuan} from "../dialog/processSystem"; import {exitSiYuan, processSync} from "../dialog/processSystem";
import {openSetting} from "../config"; import {openSetting} from "../config";
import {getSearch} from "./functions"; import {getSearch} from "./functions";
import {initStatus} from "../layout/status"; import {initStatus} from "../layout/status";
@ -187,7 +187,7 @@ const initBar = () => {
<svg class="toolbar__svg"><use xlink:href="#iconDown"></use></svg> <svg class="toolbar__svg"><use xlink:href="#iconDown"></use></svg>
</div> </div>
<div id="barSync" class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.config.sync.stat || (window.siyuan.languages.syncNow + " " + updateHotkeyTip(window.siyuan.config.keymap.general.syncNow.custom))}"> <div id="barSync" class="toolbar__item b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.config.sync.stat || (window.siyuan.languages.syncNow + " " + updateHotkeyTip(window.siyuan.config.keymap.general.syncNow.custom))}">
<svg><use xlink:href="#iconCloud${window.siyuan.config.sync.enabled ? "" : "Off"}"></use></svg> <svg><use xlink:href="#iconCloud"></use></svg>
</div> </div>
<button id="barBack" data-menu="true" class="toolbar__item toolbar__item--disabled b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.languages.goBack} ${updateHotkeyTip(window.siyuan.config.keymap.general.goBack.custom)}"> <button id="barBack" data-menu="true" class="toolbar__item toolbar__item--disabled b3-tooltips b3-tooltips__se" aria-label="${window.siyuan.languages.goBack} ${updateHotkeyTip(window.siyuan.config.keymap.general.goBack.custom)}">
<svg><use xlink:href="#iconBack"></use></svg> <svg><use xlink:href="#iconBack"></use></svg>
@ -207,6 +207,7 @@ const initBar = () => {
<svg><use xlink:href="#icon${window.siyuan.config.appearance.modeOS ? "Mode" : (window.siyuan.config.appearance.mode === 0 ? "Light" : "Dark")}"></use></svg> <svg><use xlink:href="#icon${window.siyuan.config.appearance.modeOS ? "Mode" : (window.siyuan.config.appearance.mode === 0 ? "Light" : "Dark")}"></use></svg>
</div> </div>
<div class="fn__flex" id="windowControls"></div>`; <div class="fn__flex" id="windowControls"></div>`;
processSync();
toolbar.addEventListener("click", (event: MouseEvent) => { toolbar.addEventListener("click", (event: MouseEvent) => {
let target = event.target as HTMLElement; let target = event.target as HTMLElement;
while (!target.classList.contains("toolbar")) { while (!target.classList.contains("toolbar")) {