+
`;
@@ -112,8 +112,10 @@ export const initBar = () => {
event.stopPropagation();
break;
} else if (target.id === "toolbarVIP") {
- const dialogSetting = openSetting();
- dialogSetting.element.querySelector('.b3-tab-bar [data-name="account"]').dispatchEvent(new CustomEvent("click"));
+ if (!window.siyuan.config.readonly) {
+ const dialogSetting = openSetting();
+ dialogSetting.element.querySelector('.b3-tab-bar [data-name="account"]').dispatchEvent(new CustomEvent("click"));
+ }
event.stopPropagation();
break;
} else if (target.id === "barSearch") {
diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts
index 651fbe7a5..34c7f7a8a 100644
--- a/app/src/menus/workspace.ts
+++ b/app/src/menus/workspace.ts
@@ -74,30 +74,32 @@ export const workspaceMenu = (rect: DOMRect) => {
submenu: dockMenu
}).element);
/// #if !BROWSER
- const workspaceSubMenu: IMenu[] = [{
- label: window.siyuan.languages.openBy + "...",
- iconHTML: Constants.ZWSP,
- click: async () => {
- const localPath = await dialog.showOpenDialog({
- defaultPath: window.siyuan.config.system.homeDir,
- properties: ["openDirectory", "createDirectory"],
- });
- if (localPath.filePaths.length === 0) {
- return;
+ if (!window.siyuan.config.readonly) {
+ const workspaceSubMenu: IMenu[] = [{
+ label: window.siyuan.languages.openBy + "...",
+ iconHTML: Constants.ZWSP,
+ click: async () => {
+ const localPath = await dialog.showOpenDialog({
+ defaultPath: window.siyuan.config.system.homeDir,
+ properties: ["openDirectory", "createDirectory"],
+ });
+ 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(workspaceItem(item) as IMenu);
- });
- window.siyuan.menus.menu.append(new MenuItem({
- label: window.siyuan.languages.workspaceList,
- icon: "iconWorkspace",
- type: "submenu",
- submenu: workspaceSubMenu,
- }).element);
+ }];
+ workspaceSubMenu.push({type: "separator"});
+ response.data.forEach((item: IWorkspace) => {
+ workspaceSubMenu.push(workspaceItem(item) as IMenu);
+ });
+ window.siyuan.menus.menu.append(new MenuItem({
+ label: window.siyuan.languages.workspaceList,
+ icon: "iconWorkspace",
+ type: "submenu",
+ submenu: workspaceSubMenu,
+ }).element);
+ }
/// #endif
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
if (!window.siyuan.config.readonly) {
@@ -155,24 +157,24 @@ export const workspaceMenu = (rect: DOMRect) => {
}
}],
}).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({
label: window.siyuan.languages.help,
icon: "iconHelp",
diff --git a/app/src/protyle/scroll/saveScroll.ts b/app/src/protyle/scroll/saveScroll.ts
index 4c5974fa9..686ac2a02 100644
--- a/app/src/protyle/scroll/saveScroll.ts
+++ b/app/src/protyle/scroll/saveScroll.ts
@@ -10,7 +10,7 @@ import {blockRender} from "../markdown/blockRender";
import {disabledForeverProtyle, disabledProtyle, enableProtyle} from "../util/onGet";
export const saveScroll = (protyle: IProtyle, getObject = false) => {
- if (!protyle.wysiwyg.element.firstElementChild) {
+ if (!protyle.wysiwyg.element.firstElementChild || window.siyuan.config.readonly) {
// 报错或者空白页面
return undefined;
}
diff --git a/app/src/sync/syncGuide.ts b/app/src/sync/syncGuide.ts
index 7b794b8aa..323e62319 100644
--- a/app/src/sync/syncGuide.ts
+++ b/app/src/sync/syncGuide.ts
@@ -113,6 +113,9 @@ export const getSyncCloudList = (cloudPanelElement: Element, reload = false, cb?
};
export const syncGuide = (element?: Element) => {
+ if (window.siyuan.config.readonly) {
+ return;
+ }
if (element && element.classList.contains("toolbar__item--active")) {
return;
}
diff --git a/app/src/util/globalShortcut.ts b/app/src/util/globalShortcut.ts
index eb9775957..1c2cde443 100644
--- a/app/src/util/globalShortcut.ts
+++ b/app/src/util/globalShortcut.ts
@@ -589,7 +589,9 @@ export const globalShortcut = () => {
return;
}
if (!isTabWindow && matchHotKey(window.siyuan.config.keymap.general.dataHistory.custom, event)) {
- openHistory();
+ if (!window.siyuan.config.readonly) {
+ openHistory();
+ }
event.preventDefault();
return;
}