🎨 从工作空间列表中移除

This commit is contained in:
Vanessa 2023-01-10 22:33:54 +08:00
parent c50400428b
commit de8949d88d
8 changed files with 52 additions and 30 deletions

View file

@ -2,7 +2,7 @@
"workspaceList": "Workspaces", "workspaceList": "Workspaces",
"openWorkspace": "Open Workspace", "openWorkspace": "Open Workspace",
"openedWorkspace": "Opened Workspaces", "openedWorkspace": "Opened Workspaces",
"removeWorkspaceTip": "The workspace cannot be recovered after being deleted, are you sure to delete it?", "removeWorkspaceTip": "Remove from Workspaces",
"new": "New", "new": "New",
"share2LiandiConfirmTip": "Are you sure to share this document to Liandi?", "share2LiandiConfirmTip": "Are you sure to share this document to Liandi?",
"share2Liandi": "Share to Liandi", "share2Liandi": "Share to Liandi",

View file

@ -2,7 +2,7 @@
"workspaceList": "Áreas de trabajo", "workspaceList": "Áreas de trabajo",
"openWorkspace": "Abrir espacio de trabajo", "openWorkspace": "Abrir espacio de trabajo",
"openedWorkspace": "Espacio de trabajo abierto", "openedWorkspace": "Espacio de trabajo abierto",
"removeWorkspaceTip": "El espacio de trabajo no se puede recuperar después de eliminarlo, ¿está seguro de eliminarlo?", "removeWorkspaceTip": "Quitar de los espacios de trabajo",
"new": "Nuevo", "new": "Nuevo",
"share2LiandiConfirmTip": "¿Estás seguro de compartir este documento con Liandi?", "share2LiandiConfirmTip": "¿Estás seguro de compartir este documento con Liandi?",
"share2Liandi": "Compartir con Liandi", "share2Liandi": "Compartir con Liandi",

View file

@ -2,7 +2,7 @@
"workspaceList": "Espaces de travail", "workspaceList": "Espaces de travail",
"openWorkspace": "Ouvrir l'espace de travail", "openWorkspace": "Ouvrir l'espace de travail",
"openedWorkspace": "Espace de travail ouvert", "openedWorkspace": "Espace de travail ouvert",
"removeWorkspaceTip": "L'espace de travail ne peut pas être récupéré après avoir été supprimé, êtes-vous sûr de le supprimer ?", "removeWorkspaceTip": "Supprimer des espaces de travail",
"new": "Nouveau", "new": "Nouveau",
"share2LiandiConfirmTip": "Êtes-vous sûr de partager ce document avec Liandi ?", "share2LiandiConfirmTip": "Êtes-vous sûr de partager ce document avec Liandi ?",
"share2Liandi": "Partager avec Liandi", "share2Liandi": "Partager avec Liandi",

View file

@ -2,7 +2,7 @@
"workspaceList": "工作空間列表", "workspaceList": "工作空間列表",
"openWorkspace": "打開工作空間", "openWorkspace": "打開工作空間",
"openedWorkspace": "已打開的工作空間", "openedWorkspace": "已打開的工作空間",
"removeWorkspaceTip": "刪除工作空間後無法恢復,確定刪除嗎?", "removeWorkspaceTip": "從工作空間列表中移除",
"new": "新建", "new": "新建",
"share2LiandiConfirmTip": "確定將該文檔分享到鏈滴嗎?", "share2LiandiConfirmTip": "確定將該文檔分享到鏈滴嗎?",
"share2Liandi": "分享到鏈滴", "share2Liandi": "分享到鏈滴",

View file

@ -2,7 +2,7 @@
"workspaceList": "工作空间列表", "workspaceList": "工作空间列表",
"openWorkspace": "打开工作空间", "openWorkspace": "打开工作空间",
"openedWorkspace": "已打开的工作空间", "openedWorkspace": "已打开的工作空间",
"removeWorkspaceTip": "删除工作空间后无法恢复,确定删除吗?", "removeWorkspaceTip": "从工作空间列表中移除",
"new": "新建", "new": "新建",
"share2LiandiConfirmTip": "确定将该文档分享到链滴吗?", "share2LiandiConfirmTip": "确定将该文档分享到链滴吗?",
"share2Liandi": "分享到链滴", "share2Liandi": "分享到链滴",

View file

@ -256,6 +256,8 @@ progressLoading: 400
max-width: 96px; max-width: 96px;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap;
user-select: none;
} }
} }

View file

@ -1,15 +1,16 @@
import {MenuItem} from "./Menu"; import {MenuItem} from "./Menu";
/// #if !BROWSER /// #if !BROWSER
import {dialog} from "@electron/remote"; import {dialog} from "@electron/remote";
import {ipcRenderer} from "electron"; import {ipcRenderer, shell} from "electron";
/// #endif /// #endif
import {openHistory} from "../history/history"; import {openHistory} from "../history/history";
import {getOpenNotebookCount, originalPath} from "../util/pathName"; import {getOpenNotebookCount, originalPath} from "../util/pathName";
import {mountHelp, newDailyNote} from "../util/mount"; import {mountHelp, newDailyNote} from "../util/mount";
import {fetchPost} from "../util/fetch"; import {fetchPost} from "../util/fetch";
import {Constants} from "../constants"; import {Constants} from "../constants";
import {setStorageVal} from "../protyle/util/compatibility"; import {setStorageVal, writeText} from "../protyle/util/compatibility";
import {openCard} from "../card/openCard"; import {openCard} from "../card/openCard";
import {showMessage} from "../dialog/message";
export const workspaceMenu = (rect: DOMRect) => { export const workspaceMenu = (rect: DOMRect) => {
window.siyuan.menus.menu.remove(); window.siyuan.menus.menu.remove();
@ -90,37 +91,23 @@ export const workspaceMenu = (rect: DOMRect) => {
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).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({
iconHTML: window.siyuan.languages.openedWorkspace, iconHTML: window.siyuan.languages.openedWorkspace,
label:"", label: "",
type: "readonly" type: "readonly"
}).element); }).element);
response.data.forEach((item: IWorkspace) => { response.data.forEach((item: IWorkspace) => {
if (item.closed) { if (item.closed) {
return; return;
} }
window.siyuan.menus.menu.append(new MenuItem({ workspaceItem(item)
label: `<div class="b3-tooltips b3-tooltips__e" aria-label="${item.path}">
<div class="fn__ellipsis" style="max-width: 256px">${originalPath().basename(item.path)}</div>
</div>`,
click: () => {
openWorkspace(item.path);
}
}).element);
}); });
window.siyuan.menus.menu.append(new MenuItem({type: "separator"}).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({
iconHTML: window.siyuan.languages.workspaceList, iconHTML: window.siyuan.languages.workspaceList,
label:"", label: "",
type: "readonly" type: "readonly"
}).element); }).element);
response.data.forEach((item: IWorkspace) => { response.data.forEach((item: IWorkspace) => {
window.siyuan.menus.menu.append(new MenuItem({ workspaceItem(item)
label: `<div class="b3-tooltips b3-tooltips__e" aria-label="${item.path}">
<div class="fn__ellipsis" style="max-width: 256px">${originalPath().basename(item.path)}</div>
</div>`,
click: () => {
openWorkspace(item.path);
}
}).element);
}); });
/// #endif /// #endif
window.siyuan.menus.menu.popup({x: rect.left, y: rect.bottom}); window.siyuan.menus.menu.popup({x: rect.left, y: rect.bottom});
@ -139,3 +126,38 @@ const openWorkspace = (workspace: string) => {
}); });
/// #endif /// #endif
}; };
const workspaceItem = (item: IWorkspace) => {
/// #if !BROWSER
window.siyuan.menus.menu.append(new MenuItem({
label: `<div class="b3-tooltips b3-tooltips__ne" aria-label="${item.path}">
<div class="fn__ellipsis" style="max-width: 256px">${originalPath().basename(item.path)}</div>
</div>`,
click() {
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.copy,
click() {
writeText(item.path);
showMessage(window.siyuan.languages.copied);
}
}, {
label: window.siyuan.languages.removeWorkspaceTip,
click() {
fetchPost("/api/system/removeWorkspaceDir", {path: item.path});
}
}]
}).element);
/// #endif
}

View file

@ -476,16 +476,14 @@ ${accountHTML}
break; break;
} else if (target.getAttribute("data-type") === "remove") { } else if (target.getAttribute("data-type") === "remove") {
const p = target.parentElement.getAttribute("data-path"); const p = target.parentElement.getAttribute("data-path");
confirmDialog("⚠️ " + window.siyuan.languages.remove + " " + pathPosix().basename(p), window.siyuan.languages.removeWorkspaceTip, () => { fetchPost("/api/system/removeWorkspaceDir", {path: p}, () => {
fetchPost("/api/system/removeWorkspaceDir", {path: p}, () => { genWorkspace(workspaceDirElement);
genWorkspace(workspaceDirElement);
});
}); });
event.preventDefault(); event.preventDefault();
event.stopPropagation(); event.stopPropagation();
break; break;
} else if (target.classList.contains("b3-list-item") && !target.classList.contains("b3-list-item--focus")) { } else if (target.classList.contains("b3-list-item") && !target.classList.contains("b3-list-item--focus")) {
confirmDialog(window.siyuan.languages.confirm,`${pathPosix().basename(window.siyuan.config.system.workspaceDir)} -> ${pathPosix().basename(target.getAttribute("data-path"))}?`, () => { confirmDialog(window.siyuan.languages.confirm, `${pathPosix().basename(window.siyuan.config.system.workspaceDir)} -> ${pathPosix().basename(target.getAttribute("data-path"))}?`, () => {
fetchPost("/api/system/setWorkspaceDir", { fetchPost("/api/system/setWorkspaceDir", {
path: target.getAttribute("data-path") path: target.getAttribute("data-path")
}, () => { }, () => {