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 = () => {
-
+
+ - + ${window.siyuan.languages["_trayMenu"].officialWebsite} + ${window.siyuan.languages["_trayMenu"].openSource}
`; @@ -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: `
${originalPath().basename(item.path)}
`, - 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"));