mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-23 01:50:12 +01:00
This commit is contained in:
parent
bbe426f90f
commit
1888b6ef39
2 changed files with 188 additions and 91 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
{
|
{
|
||||||
|
"new": "新建",
|
||||||
"share2LiandiConfirmTip": "确定将该文档分享到链滴吗?",
|
"share2LiandiConfirmTip": "确定将该文档分享到链滴吗?",
|
||||||
"share2Liandi": "分享到链滴",
|
"share2Liandi": "分享到链滴",
|
||||||
"noDueCard": "\uD83D\uDD2E 干得漂亮!目前已经没有更多复习任务,过一会再来看看吧!",
|
"noDueCard": "\uD83D\uDD2E 干得漂亮!目前已经没有更多复习任务,过一会再来看看吧!",
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ import {openHistory} from "../../history/history";
|
||||||
import {Dialog} from "../../dialog";
|
import {Dialog} from "../../dialog";
|
||||||
import {syncGuide} from "../../sync/syncGuide";
|
import {syncGuide} from "../../sync/syncGuide";
|
||||||
import {openCard} from "../../card/openCard";
|
import {openCard} from "../../card/openCard";
|
||||||
|
import {pathPosix} from "../../util/pathName";
|
||||||
|
|
||||||
const showAccountInfo = (modelElement: HTMLElement, modelMainElement: Element) => {
|
const showAccountInfo = (modelElement: HTMLElement, modelMainElement: Element) => {
|
||||||
closePanel();
|
closePanel();
|
||||||
|
|
@ -95,6 +96,20 @@ const showAccountInfo = (modelElement: HTMLElement, modelMainElement: Element) =
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const genWorkspace = (workspaceDirElement: Element) => {
|
||||||
|
fetchPost("/api/system/listWorkspaceDirs", {}, (response) => {
|
||||||
|
let html = "";
|
||||||
|
response.data.forEach((item: string) => {
|
||||||
|
html += `<li data-path="${item}" class="b3-list-item${window.siyuan.config.system.workspaceDir === item ? " b3-list-item--focus" : ""}">
|
||||||
|
<span class="b3-list-item__text">${pathPosix().basename(item)}</span>
|
||||||
|
<span data-type="remove" class="b3-list-item__action">
|
||||||
|
<svg><use xlink:href="#iconTrashcan"></use></svg>
|
||||||
|
</span>
|
||||||
|
</li>`;
|
||||||
|
});
|
||||||
|
workspaceDirElement.innerHTML = html;
|
||||||
|
});
|
||||||
|
}
|
||||||
export const popMenu = () => {
|
export const popMenu = () => {
|
||||||
const modelElement = document.getElementById("model");
|
const modelElement = document.getElementById("model");
|
||||||
const modelMainElement = document.getElementById("modelMain");
|
const modelMainElement = document.getElementById("modelMain");
|
||||||
|
|
@ -275,6 +290,15 @@ ${accountHTML}
|
||||||
<div class="fn__hr"></div>
|
<div class="fn__hr"></div>
|
||||||
<div class="b3-label__text">${window.siyuan.languages.importDataTip}</div>
|
<div class="b3-label__text">${window.siyuan.languages.importDataTip}</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="b3-label">
|
||||||
|
${window.siyuan.languages.about7}
|
||||||
|
<div class="fn__hr"></div>
|
||||||
|
<ul id="workspaceDir" class="b3-list b3-list--background"></ul>
|
||||||
|
<div class="fn__hr"></div>
|
||||||
|
<button id="creatWorkspace" class="b3-button fn__block">${window.siyuan.languages.new}</button>
|
||||||
|
<div class="fn__hr"></div>
|
||||||
|
<div class="b3-label__text">${window.siyuan.languages.about8}</div>
|
||||||
|
</div>
|
||||||
<div class="b3-label">
|
<div class="b3-label">
|
||||||
<div class="config-about__logo">
|
<div class="config-about__logo">
|
||||||
<img src="/stage/icon.png">
|
<img src="/stage/icon.png">
|
||||||
|
|
@ -296,12 +320,18 @@ ${accountHTML}
|
||||||
<div style="color:var(--b3-theme-surface);font-family: cursive;">会泽百家 至公天下</div>
|
<div style="color:var(--b3-theme-surface);font-family: cursive;">会泽百家 至公天下</div>
|
||||||
${window.siyuan.languages.about1}
|
${window.siyuan.languages.about1}
|
||||||
</div>`;
|
</div>`;
|
||||||
const authCodeElement = modelMainElement.querySelector("#authCode") as HTMLInputElement;
|
const workspaceDirElement = modelMainElement.querySelector("#workspaceDir");
|
||||||
authCodeElement.addEventListener("click", () => {
|
genWorkspace(workspaceDirElement);
|
||||||
setAccessAuthCode();
|
|
||||||
});
|
|
||||||
const importKeyElement = modelMainElement.querySelector("#importKey");
|
const importKeyElement = modelMainElement.querySelector("#importKey");
|
||||||
importKeyElement.addEventListener("click", () => {
|
modelMainElement.addEventListener("click", (event) => {
|
||||||
|
let target = event.target as HTMLElement;
|
||||||
|
while (target && !target.isSameNode(modelMainElement)) {
|
||||||
|
if (target.id === "authCode") {
|
||||||
|
setAccessAuthCode();
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "importKey") {
|
||||||
const passwordDialog = new Dialog({
|
const passwordDialog = new Dialog({
|
||||||
title: "🔑 " + window.siyuan.languages.key,
|
title: "🔑 " + window.siyuan.languages.key,
|
||||||
content: `<div class="b3-dialog__content">
|
content: `<div class="b3-dialog__content">
|
||||||
|
|
@ -327,8 +357,10 @@ ${accountHTML}
|
||||||
passwordDialog.destroy();
|
passwordDialog.destroy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#initKey").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "initKey") {
|
||||||
confirmDialog("🔑 " + window.siyuan.languages.genKey, window.siyuan.languages.initRepoKeyTip, () => {
|
confirmDialog("🔑 " + window.siyuan.languages.genKey, window.siyuan.languages.initRepoKeyTip, () => {
|
||||||
fetchPost("/api/repo/initRepoKey", {}, (response) => {
|
fetchPost("/api/repo/initRepoKey", {}, (response) => {
|
||||||
window.siyuan.config.repo.key = response.data.key;
|
window.siyuan.config.repo.key = response.data.key;
|
||||||
|
|
@ -336,8 +368,10 @@ ${accountHTML}
|
||||||
importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
|
importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#initKeyByPW").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "initKeyByPW") {
|
||||||
const initDialog = new Dialog({
|
const initDialog = new Dialog({
|
||||||
title: "🔑 " + window.siyuan.languages.genKeyByPW,
|
title: "🔑 " + window.siyuan.languages.genKeyByPW,
|
||||||
content: `<div class="b3-dialog__content">
|
content: `<div class="b3-dialog__content">
|
||||||
|
|
@ -347,7 +381,7 @@ ${accountHTML}
|
||||||
<button class="b3-button b3-button--cancel">${window.siyuan.languages.cancel}</button><div class="fn__space"></div>
|
<button class="b3-button b3-button--cancel">${window.siyuan.languages.cancel}</button><div class="fn__space"></div>
|
||||||
<button class="b3-button b3-button--text">${window.siyuan.languages.confirm}</button>
|
<button class="b3-button b3-button--text">${window.siyuan.languages.confirm}</button>
|
||||||
</div>`,
|
</div>`,
|
||||||
width: "520px",
|
width: "80vw",
|
||||||
});
|
});
|
||||||
const inputElement = initDialog.element.querySelector(".b3-text-field") as HTMLInputElement;
|
const inputElement = initDialog.element.querySelector(".b3-text-field") as HTMLInputElement;
|
||||||
inputElement.focus();
|
inputElement.focus();
|
||||||
|
|
@ -372,12 +406,16 @@ ${accountHTML}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#copyKey").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "copyKey") {
|
||||||
showMessage(window.siyuan.languages.copied);
|
showMessage(window.siyuan.languages.copied);
|
||||||
writeText(window.siyuan.config.repo.key);
|
writeText(window.siyuan.config.repo.key);
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#removeKey").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "removeKey") {
|
||||||
confirmDialog("⚠️ " + window.siyuan.languages.resetRepo, window.siyuan.languages.resetRepoTip, () => {
|
confirmDialog("⚠️ " + window.siyuan.languages.resetRepo, window.siyuan.languages.resetRepoTip, () => {
|
||||||
fetchPost("/api/repo/resetRepo", {}, () => {
|
fetchPost("/api/repo/resetRepo", {}, () => {
|
||||||
window.siyuan.config.repo.key = "";
|
window.siyuan.config.repo.key = "";
|
||||||
|
|
@ -386,21 +424,79 @@ ${accountHTML}
|
||||||
importKeyElement.parentElement.nextElementSibling.classList.add("fn__none");
|
importKeyElement.parentElement.nextElementSibling.classList.add("fn__none");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#token").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "token") {
|
||||||
showMessage(window.siyuan.languages.copied);
|
showMessage(window.siyuan.languages.copied);
|
||||||
writeText(window.siyuan.config.api.token);
|
writeText(window.siyuan.config.api.token);
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#exportData").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "exportData") {
|
||||||
fetchPost("/api/export/exportData", {}, response => {
|
fetchPost("/api/export/exportData", {}, response => {
|
||||||
openByMobile(response.data.zip);
|
openByMobile(response.data.zip);
|
||||||
});
|
});
|
||||||
});
|
event.preventDefault();
|
||||||
modelMainElement.querySelector("#exportLog").addEventListener("click", () => {
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "exportLog") {
|
||||||
fetchPost("/api/system/exportLog", {}, (response) => {
|
fetchPost("/api/system/exportLog", {}, (response) => {
|
||||||
openByMobile(response.data.zip);
|
openByMobile(response.data.zip);
|
||||||
});
|
});
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.id === "creatWorkspace") {
|
||||||
|
const createWorkspaceDialog = new Dialog({
|
||||||
|
title: window.siyuan.languages.new,
|
||||||
|
content: `<div class="b3-dialog__content">
|
||||||
|
<input class="b3-text-field fn__block">
|
||||||
|
</div>
|
||||||
|
<div class="b3-dialog__action">
|
||||||
|
<button class="b3-button b3-button--cancel">${window.siyuan.languages.cancel}</button><div class="fn__space"></div>
|
||||||
|
<button class="b3-button b3-button--text">${window.siyuan.languages.confirm}</button>
|
||||||
|
</div>`,
|
||||||
|
width: "80vw",
|
||||||
});
|
});
|
||||||
|
const inputElement = createWorkspaceDialog.element.querySelector("input");
|
||||||
|
inputElement.focus();
|
||||||
|
const btnsElement = createWorkspaceDialog.element.querySelectorAll(".b3-button");
|
||||||
|
btnsElement[0].addEventListener("click", () => {
|
||||||
|
createWorkspaceDialog.destroy();
|
||||||
|
});
|
||||||
|
btnsElement[1].addEventListener("click", () => {
|
||||||
|
fetchPost("/api/system/createWorkspaceDir", {
|
||||||
|
path: pathPosix().join(pathPosix().dirname(window.siyuan.config.system.workspaceDir), inputElement.value)
|
||||||
|
}, () => {
|
||||||
|
genWorkspace(workspaceDirElement);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.getAttribute("data-type") === "remove") {
|
||||||
|
confirmDialog("⚠️ " + window.siyuan.languages.remove, window.siyuan.languages.about8, () => {
|
||||||
|
fetchPost("/api/system/removeWorkspaceDir", {path: target.parentElement.getAttribute("data-path")});
|
||||||
|
});
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
} else if (target.classList.contains("b3-list-item") && !target.classList.contains("b3-list-item--focus")) {
|
||||||
|
confirmDialog(`${pathPosix().basename(window.siyuan.config.system.workspaceDir)} -> ${pathPosix().basename(target.getAttribute("data-path"))}?`, window.siyuan.languages.about8, () => {
|
||||||
|
fetchPost("/api/system/setWorkspaceDir", {
|
||||||
|
path: target.getAttribute("data-path")
|
||||||
|
}, () => {
|
||||||
|
exitSiYuan();
|
||||||
|
});
|
||||||
|
})
|
||||||
|
event.preventDefault();
|
||||||
|
event.stopPropagation();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
target = target.parentElement;
|
||||||
|
}
|
||||||
|
})
|
||||||
modelMainElement.querySelector("#importData").addEventListener("change", (event: InputEvent & { target: HTMLInputElement }) => {
|
modelMainElement.querySelector("#importData").addEventListener("change", (event: InputEvent & { target: HTMLInputElement }) => {
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("file", event.target.files[0]);
|
formData.append("file", event.target.files[0]);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue