diff --git a/app/appearance/langs/en_US.json b/app/appearance/langs/en_US.json
index 8875c1f26..336f9a9da 100644
--- a/app/appearance/langs/en_US.json
+++ b/app/appearance/langs/en_US.json
@@ -1,8 +1,8 @@
{
+ "panel": "Panel",
"copyPath": "Copy Path",
"workspaceList": "Workspaces",
"openWorkspace": "Open Workspace",
- "openedWorkspace": "Opened Workspaces",
"removeWorkspaceTip": "Remove from Workspaces",
"new": "New",
"share2LiandiConfirmTip": "Are you sure to share this document to Liandi?",
diff --git a/app/appearance/langs/es_ES.json b/app/appearance/langs/es_ES.json
index 6921c7e18..bf96a4665 100644
--- a/app/appearance/langs/es_ES.json
+++ b/app/appearance/langs/es_ES.json
@@ -1,8 +1,8 @@
{
+ "panel": "Panel",
"copyPath": "Copiar ruta",
"workspaceList": "Áreas de trabajo",
"openWorkspace": "Abrir espacio de trabajo",
- "openedWorkspace": "Espacio de trabajo abierto",
"removeWorkspaceTip": "Quitar de los espacios de trabajo",
"new": "Nuevo",
"share2LiandiConfirmTip": "¿Estás seguro de compartir este documento con Liandi?",
diff --git a/app/appearance/langs/fr_FR.json b/app/appearance/langs/fr_FR.json
index dbc3eb1ed..d9ee0241d 100644
--- a/app/appearance/langs/fr_FR.json
+++ b/app/appearance/langs/fr_FR.json
@@ -1,8 +1,8 @@
{
+ "panel": "Panneau",
"copyPath": "Copier le chemin",
"workspaceList": "Espaces de travail",
"openWorkspace": "Ouvrir l'espace de travail",
- "openedWorkspace": "Espace de travail ouvert",
"removeWorkspaceTip": "Supprimer des espaces de travail",
"new": "Nouveau",
"share2LiandiConfirmTip": "Êtes-vous sûr de partager ce document avec Liandi ?",
diff --git a/app/appearance/langs/zh_CHT.json b/app/appearance/langs/zh_CHT.json
index 6b23ff4ca..b52b3d415 100644
--- a/app/appearance/langs/zh_CHT.json
+++ b/app/appearance/langs/zh_CHT.json
@@ -1,8 +1,8 @@
{
+ "panel": "面板",
"copyPath": "複製路徑",
"workspaceList": "工作空間列表",
"openWorkspace": "打開工作空間",
- "openedWorkspace": "已打開的工作空間",
"removeWorkspaceTip": "從工作空間列表中移除",
"new": "新建",
"share2LiandiConfirmTip": "確定將該文檔分享到鏈滴嗎?",
diff --git a/app/appearance/langs/zh_CN.json b/app/appearance/langs/zh_CN.json
index d4c5a10ff..162a892f2 100644
--- a/app/appearance/langs/zh_CN.json
+++ b/app/appearance/langs/zh_CN.json
@@ -1,8 +1,8 @@
{
+ "panel": "面板",
"copyPath": "复制路径",
"workspaceList": "工作空间列表",
"openWorkspace": "打开工作空间",
- "openedWorkspace": "已打开的工作空间",
"removeWorkspaceTip": "从工作空间列表中移除",
"new": "新建",
"share2LiandiConfirmTip": "确定将该文档分享到链滴吗?",
diff --git a/app/src/assets/scss/_menu.scss b/app/src/assets/scss/_menu.scss
index 3492aa156..b3ba313eb 100644
--- a/app/src/assets/scss/_menu.scss
+++ b/app/src/assets/scss/_menu.scss
@@ -35,6 +35,10 @@
position: relative;
box-sizing: border-box;
+ &:hover {
+ text-decoration: none;
+ }
+
&[disabled="disabled"] {
cursor: not-allowed;
opacity: 0.38;
diff --git a/app/src/assets/scss/base.scss b/app/src/assets/scss/base.scss
index 15fc12d48..ab65c7e5c 100644
--- a/app/src/assets/scss/base.scss
+++ b/app/src/assets/scss/base.scss
@@ -301,7 +301,7 @@ progressLoading: 400
}
#barDock,
- #barHelp {
+ #statusHepl {
.b3-menu__item:hover {
background-color: var(--b3-list-hover);
}
diff --git a/app/src/layout/status.ts b/app/src/layout/status.ts
index ed59110e5..09a8cfa88 100644
--- a/app/src/layout/status.ts
+++ b/app/src/layout/status.ts
@@ -30,11 +30,13 @@ export const initStatus = () => {
-
+
`;
@@ -45,7 +47,7 @@ export const initStatus = () => {
dockElement.addEventListener("mouseleave", () => {
dockElement.querySelector(".b3-menu").classList.add("fn__none");
});
- const helpElement = document.getElementById("barHelp");
+ const helpElement = document.getElementById("statusHelp");
helpElement.addEventListener("mousemove", () => {
helpElement.querySelector(".b3-menu").classList.remove("fn__none");
});
@@ -83,10 +85,6 @@ export const initStatus = () => {
target.querySelector(".b3-menu").classList.add("fn__none");
event.stopPropagation();
break;
- } else if (target.id === "barLock") {
- lockScreen();
- event.stopPropagation();
- break;
} else if (target.id === "barHelp") {
mountHelp();
event.stopPropagation();
@@ -105,7 +103,7 @@ export const initStatus = () => {
}
event.stopPropagation();
break;
- } else if (target.classList.contains("b3-menu__item")) {
+ } else if (target.classList.contains("b3-menu__item") && target.tagName !== "A") {
const type = target.getAttribute("data-type") as TDockType;
getDockByType(type).toggleModel(type);
if (type === "file" && getSelection().rangeCount > 0) {
diff --git a/app/src/menus/workspace.ts b/app/src/menus/workspace.ts
index 222458aa0..c8ce947d0 100644
--- a/app/src/menus/workspace.ts
+++ b/app/src/menus/workspace.ts
@@ -1,16 +1,19 @@
import {MenuItem} from "./Menu";
/// #if !BROWSER
-import {dialog} from "@electron/remote";
-import {ipcRenderer, shell} from "electron";
+import {dialog, getCurrentWindow} from "@electron/remote";
+import {ipcRenderer} from "electron";
/// #endif
import {openHistory} from "../history/history";
import {getOpenNotebookCount, originalPath} from "../util/pathName";
import {mountHelp, newDailyNote} from "../util/mount";
import {fetchPost} from "../util/fetch";
import {Constants} from "../constants";
-import {setStorageVal, writeText} from "../protyle/util/compatibility";
+import {setStorageVal} from "../protyle/util/compatibility";
import {openCard} from "../card/openCard";
-import {showMessage} from "../dialog/message";
+import {openSetting} from "../config";
+import {getAllDocks} from "../layout/getAll";
+import {getDockByType} from "../layout/util";
+import {lockScreen} from "../dialog/processSystem";
export const workspaceMenu = (rect: DOMRect) => {
if (!window.siyuan.menus.menu.element.classList.contains("fn__none") &&
@@ -21,6 +24,57 @@ export const workspaceMenu = (rect: DOMRect) => {
window.siyuan.menus.menu.remove();
window.siyuan.menus.menu.element.setAttribute("data-name", "barWorkspace");
fetchPost("/api/system/getWorkspaces", {}, (response) => {
+ if (!window.siyuan.config.readonly) {
+ window.siyuan.menus.menu.append(new MenuItem({
+ label: window.siyuan.languages.config,
+ icon: "iconSettings",
+ accelerator: window.siyuan.config.keymap.general.config.custom,
+ click: () => {
+ openSetting();
+ }
+ }).element);
+ }
+ const dockMenu: IMenu[] = []
+ getAllDocks().forEach(item => {
+ dockMenu.push({
+ icon: item.icon,
+ accelerator: window.siyuan.config.keymap.general[item.hotkeyLangId].custom,
+ label: window.siyuan.languages[item.hotkeyLangId],
+ click() {
+ getDockByType(item.type).toggleModel(item.type);
+ }
+ });
+ });
+ window.siyuan.menus.menu.append(new MenuItem({
+ label: window.siyuan.languages.panel,
+ icon: "iconDock",
+ type: "submenu",
+ submenu: dockMenu
+ }).element);
+ /// #if !BROWSER
+ const workspaceMenu: IMenu[] = [{
+ label: window.siyuan.languages.openWorkspace,
+ 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]);
+ }
+ }]
+ response.data.forEach((item: IWorkspace) => {
+ workspaceMenu.push(workspaceItem(item));
+ });
+ window.siyuan.menus.menu.append(new MenuItem({
+ label: window.siyuan.languages.workspaceList,
+ type: "submenu",
+ submenu: workspaceMenu,
+ }).element);
+ /// #endif
+ window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.dataHistory,
icon: "iconHistory",
@@ -73,6 +127,15 @@ 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({type: "separator"}).element);
window.siyuan.menus.menu.append(new MenuItem({
label: window.siyuan.languages.help,
icon: "iconHelp",
@@ -80,41 +143,25 @@ export const workspaceMenu = (rect: DOMRect) => {
mountHelp();
}
}).element);
+ window.siyuan.menus.menu.append(new MenuItem({
+ label: window.siyuan.languages.feedback,
+ icon: "iconHeart",
+ click: () => {
+ if ("zh_CN" === window.siyuan.config.lang) {
+ window.open("https://ld246.com/article/1649901726096");
+ } else {
+ window.open("https://github.com/siyuan-note/siyuan/issues");
+ }
+ }
+ }).element);
/// #if !BROWSER
window.siyuan.menus.menu.append(new MenuItem({
- label: window.siyuan.languages.openWorkspace,
- 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]);
+ label: window.siyuan.languages.debug,
+ icon: "iconBug",
+ click: () => {
+ getCurrentWindow().webContents.openDevTools({mode: "bottom"});
}
}).element);
- window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
- window.siyuan.menus.menu.append(new MenuItem({
- iconHTML: window.siyuan.languages.openedWorkspace,
- label: "",
- type: "readonly"
- }).element);
- response.data.forEach((item: IWorkspace) => {
- if (item.closed) {
- return;
- }
- workspaceItem(item);
- });
- window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).element);
- window.siyuan.menus.menu.append(new MenuItem({
- iconHTML: window.siyuan.languages.workspaceList,
- label: "",
- type: "readonly"
- }).element);
- response.data.forEach((item: IWorkspace) => {
- workspaceItem(item);
- });
/// #endif
window.siyuan.menus.menu.popup({x: rect.left, y: rect.bottom});
});
@@ -138,36 +185,36 @@ const openWorkspace = (workspace: string) => {
const workspaceItem = (item: IWorkspace) => {
/// #if !BROWSER
- window.siyuan.menus.menu.append(new MenuItem({
+ return {
label: `
`,
- click() {
+ click(element: HTMLElement) {
openWorkspace(item.path);
},
- submenu: [{
- label: window.siyuan.languages.openBy,
- click() {
- openWorkspace(item.path);
- }
- }, {
- label: window.siyuan.languages.showInFolder,
- click() {
- shell.showItemInFolder(item.path);
- }
- }, {
- label: window.siyuan.languages.copyPath,
- click() {
- writeText(item.path);
- showMessage(window.siyuan.languages.copied);
- }
- }, {
- label: window.siyuan.languages.removeWorkspaceTip,
- click() {
- fetchPost("/api/system/removeWorkspaceDir", {path: item.path});
- }
- }]
- }).element);
+ // submenu: [{
+ // label: window.siyuan.languages.openBy,
+ // click() {
+ // openWorkspace(item.path);
+ // }
+ // }, {
+ // label: window.siyuan.languages.showInFolder,
+ // click() {
+ // shell.showItemInFolder(item.path);
+ // }
+ // }, {
+ // label: window.siyuan.languages.copyPath,
+ // click() {
+ // writeText(item.path);
+ // showMessage(window.siyuan.languages.copied);
+ // }
+ // }, {
+ // label: window.siyuan.languages.removeWorkspaceTip,
+ // click() {
+ // fetchPost("/api/system/removeWorkspaceDir", {path: item.path});
+ // }
+ // }]
+ };
/// #endif
};
diff --git a/app/src/util/onGetConfig.ts b/app/src/util/onGetConfig.ts
index 215419512..8697bbbc6 100644
--- a/app/src/util/onGetConfig.ts
+++ b/app/src/util/onGetConfig.ts
@@ -199,9 +199,6 @@ const initBar = () => {
-
-
-
@@ -268,10 +265,6 @@ const initBar = () => {
window.siyuan.menus.menu.popup({x: rect.left, y: rect.bottom});
event.stopPropagation();
break;
- } else if (target.id === "barSetting") {
- openSetting();
- event.stopPropagation();
- break;
} else if (target.id === "toolbarVIP") {
const dialogSetting = openSetting();
dialogSetting.element.querySelector('.b3-tab-bar [data-name="account"]').dispatchEvent(new CustomEvent("click"));