Vanessa 2023-03-10 10:00:03 +08:00
parent c1d2259eac
commit 9d1c83ce37
7 changed files with 63 additions and 48 deletions

View file

@ -17,6 +17,9 @@ import {getWorkspaceName} from "../util/noRelyPCFunction";
import {needSubscribe} from "../util/needSubscribe"; import {needSubscribe} from "../util/needSubscribe";
export const lockScreen = () => { export const lockScreen = () => {
if (window.siyuan.config.readonly) {
return
}
/// #if BROWSER /// #if BROWSER
fetchPost("/api/system/logoutAuth", {}, () => { fetchPost("/api/system/logoutAuth", {}, () => {
window.location.href = `/check-auth?url=${window.location.href}`; window.location.href = `/check-auth?url=${window.location.href}`;

View file

@ -214,6 +214,9 @@ const renderRmNotebook = (element: HTMLElement) => {
}; };
export const openHistory = () => { export const openHistory = () => {
if (window.siyuan.config.readonly) {
return;
}
const exitDialog = window.siyuan.dialogs.find((item) => { const exitDialog = window.siyuan.dialogs.find((item) => {
if (item.element.querySelector("#historyContainer")) { if (item.element.querySelector("#historyContainer")) {
item.destroy(); item.destroy();

View file

@ -30,7 +30,7 @@ export const initBar = () => {
<span class="toolbar__text">${getWorkspaceName()}</span> <span class="toolbar__text">${getWorkspaceName()}</span>
<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${window.siyuan.config.readonly ? " fn__none" : ""}" aria-label="${window.siyuan.config.sync.stat || (window.siyuan.languages.syncNow + " " + updateHotkeyTip(window.siyuan.config.keymap.general.syncNow.custom))}">
<svg><use xlink:href="#iconCloudSucc"></use></svg> <svg><use xlink:href="#iconCloudSucc"></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)}">
@ -40,14 +40,14 @@ export const initBar = () => {
<svg><use xlink:href="#iconForward"></use></svg> <svg><use xlink:href="#iconForward"></use></svg>
</button> </button>
<div class="fn__flex-1 fn__ellipsis" id="drag"><span class="fn__none">使 Development version, please backup before use</span></div> <div class="fn__flex-1 fn__ellipsis" id="drag"><span class="fn__none">使 Development version, please backup before use</span></div>
<div id="toolbarVIP" class="fn__flex"></div> <div id="toolbarVIP" class="fn__flex${window.siyuan.config.readonly ? " fn__none" : ""}"></div>
<div id="barSearch" class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.globalSearch} ${updateHotkeyTip(window.siyuan.config.keymap.general.globalSearch.custom)}"> <div id="barSearch" class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.globalSearch} ${updateHotkeyTip(window.siyuan.config.keymap.general.globalSearch.custom)}">
<svg><use xlink:href="#iconSearch"></use></svg> <svg><use xlink:href="#iconSearch"></use></svg>
</div> </div>
<div id="barReadonly" class="toolbar__item b3-tooltips b3-tooltips__sw${window.siyuan.config.editor.readOnly ? " toolbar__item--active" : ""}" aria-label="${window.siyuan.languages.use} ${window.siyuan.config.editor.readOnly ? window.siyuan.languages.editMode : window.siyuan.languages.editReadonly} ${updateHotkeyTip(window.siyuan.config.keymap.general.editMode.custom)}"> <div id="barReadonly" class="toolbar__item b3-tooltips b3-tooltips__sw${window.siyuan.config.readonly ? " fn__none" : ""}${window.siyuan.config.editor.readOnly ? " toolbar__item--active" : ""}" aria-label="${window.siyuan.languages.use} ${window.siyuan.config.editor.readOnly ? window.siyuan.languages.editMode : window.siyuan.languages.editReadonly} ${updateHotkeyTip(window.siyuan.config.keymap.general.editMode.custom)}">
<svg><use xlink:href="#icon${window.siyuan.config.editor.readOnly ? "Preview" : "Edit"}"></use></svg> <svg><use xlink:href="#icon${window.siyuan.config.editor.readOnly ? "Preview" : "Edit"}"></use></svg>
</div> </div>
<div id="barMode" class="toolbar__item b3-tooltips b3-tooltips__sw" aria-label="${window.siyuan.languages.appearanceMode}"> <div id="barMode" class="toolbar__item b3-tooltips b3-tooltips__sw${window.siyuan.config.readonly ? " fn__none" : ""}" aria-label="${window.siyuan.languages.appearanceMode}">
<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>`;
@ -112,8 +112,10 @@ export const initBar = () => {
event.stopPropagation(); event.stopPropagation();
break; break;
} else if (target.id === "toolbarVIP") { } else if (target.id === "toolbarVIP") {
const dialogSetting = openSetting(); if (!window.siyuan.config.readonly) {
dialogSetting.element.querySelector('.b3-tab-bar [data-name="account"]').dispatchEvent(new CustomEvent("click")); const dialogSetting = openSetting();
dialogSetting.element.querySelector('.b3-tab-bar [data-name="account"]').dispatchEvent(new CustomEvent("click"));
}
event.stopPropagation(); event.stopPropagation();
break; break;
} else if (target.id === "barSearch") { } else if (target.id === "barSearch") {

View file

@ -74,30 +74,32 @@ export const workspaceMenu = (rect: DOMRect) => {
submenu: dockMenu submenu: dockMenu
}).element); }).element);
/// #if !BROWSER /// #if !BROWSER
const workspaceSubMenu: IMenu[] = [{ if (!window.siyuan.config.readonly) {
label: window.siyuan.languages.openBy + "...", const workspaceSubMenu: IMenu[] = [{
iconHTML: Constants.ZWSP, label: window.siyuan.languages.openBy + "...",
click: async () => { iconHTML: Constants.ZWSP,
const localPath = await dialog.showOpenDialog({ click: async () => {
defaultPath: window.siyuan.config.system.homeDir, const localPath = await dialog.showOpenDialog({
properties: ["openDirectory", "createDirectory"], defaultPath: window.siyuan.config.system.homeDir,
}); properties: ["openDirectory", "createDirectory"],
if (localPath.filePaths.length === 0) { });
return; if (localPath.filePaths.length === 0) {
return;
}
openWorkspace(localPath.filePaths[0]);
} }
openWorkspace(localPath.filePaths[0]); }];
} workspaceSubMenu.push({type: "separator"});
}]; response.data.forEach((item: IWorkspace) => {
workspaceSubMenu.push({type: "separator"}); workspaceSubMenu.push(workspaceItem(item) as IMenu);
response.data.forEach((item: IWorkspace) => { });
workspaceSubMenu.push(workspaceItem(item) as IMenu); window.siyuan.menus.menu.append(new MenuItem({
}); label: window.siyuan.languages.workspaceList,
window.siyuan.menus.menu.append(new MenuItem({ icon: "iconWorkspace",
label: window.siyuan.languages.workspaceList, type: "submenu",
icon: "iconWorkspace", submenu: workspaceSubMenu,
type: "submenu", }).element);
submenu: workspaceSubMenu, }
}).element);
/// #endif /// #endif
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element); window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
if (!window.siyuan.config.readonly) { if (!window.siyuan.config.readonly) {
@ -155,24 +157,24 @@ export const workspaceMenu = (rect: DOMRect) => {
} }
}], }],
}).element); }).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.lockScreen,
icon: "iconLock",
accelerator: window.siyuan.config.keymap.general.lockScreen.custom,
click: () => {
lockScreen();
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.dataHistory,
icon: "iconHistory",
accelerator: window.siyuan.config.keymap.general.dataHistory.custom,
click: () => {
openHistory();
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
} }
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.lockScreen,
icon: "iconLock",
accelerator: window.siyuan.config.keymap.general.lockScreen.custom,
click: () => {
lockScreen();
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.dataHistory,
icon: "iconHistory",
accelerator: window.siyuan.config.keymap.general.dataHistory.custom,
click: () => {
openHistory();
}
}).element);
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
window.siyuan.menus.menu.append(new MenuItem({ window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.help, label: window.siyuan.languages.help,
icon: "iconHelp", icon: "iconHelp",

View file

@ -10,7 +10,7 @@ import {blockRender} from "../markdown/blockRender";
import {disabledForeverProtyle, disabledProtyle, enableProtyle} from "../util/onGet"; import {disabledForeverProtyle, disabledProtyle, enableProtyle} from "../util/onGet";
export const saveScroll = (protyle: IProtyle, getObject = false) => { export const saveScroll = (protyle: IProtyle, getObject = false) => {
if (!protyle.wysiwyg.element.firstElementChild) { if (!protyle.wysiwyg.element.firstElementChild || window.siyuan.config.readonly) {
// 报错或者空白页面 // 报错或者空白页面
return undefined; return undefined;
} }

View file

@ -113,6 +113,9 @@ export const getSyncCloudList = (cloudPanelElement: Element, reload = false, cb?
}; };
export const syncGuide = (element?: Element) => { export const syncGuide = (element?: Element) => {
if (window.siyuan.config.readonly) {
return;
}
if (element && element.classList.contains("toolbar__item--active")) { if (element && element.classList.contains("toolbar__item--active")) {
return; return;
} }

View file

@ -589,7 +589,9 @@ export const globalShortcut = () => {
return; return;
} }
if (!isTabWindow && matchHotKey(window.siyuan.config.keymap.general.dataHistory.custom, event)) { if (!isTabWindow && matchHotKey(window.siyuan.config.keymap.general.dataHistory.custom, event)) {
openHistory(); if (!window.siyuan.config.readonly) {
openHistory();
}
event.preventDefault(); event.preventDefault();
return; return;
} }