diff --git a/app/src/mobile/util/menu.ts b/app/src/mobile/util/menu.ts
index bd0321246..ca709016e 100644
--- a/app/src/mobile/util/menu.ts
+++ b/app/src/mobile/util/menu.ts
@@ -194,324 +194,7 @@ ${accountHTML}
event.stopPropagation();
break;
} else if (target.id === "menuAbout") {
- closePanel();
- if (!window.siyuan.config.localIPs || window.siyuan.config.localIPs.length === 0 ||
- (window.siyuan.config.localIPs.length === 1 && window.siyuan.config.localIPs[0] === "")) {
- window.siyuan.config.localIPs = ["127.0.0.1"];
- }
- modelElement.style.top = "0";
- modelElement.querySelector(".toolbar__icon").innerHTML = '';
- modelElement.querySelector(".toolbar__text").textContent = window.siyuan.languages.about;
- modelMainElement.innerHTML = `
-
- ${window.siyuan.languages.about11}
-
${window.siyuan.languages.about12}
-
-
-
-
-
- ${window.siyuan.languages.about2}
-
-
-
${window.siyuan.languages.about3.replace("${port}", location.port)}
-
-
${window.siyuan.config.localIPs.join(" ")}
-
-
- ${window.siyuan.languages.about5}
-
-
-
${window.siyuan.languages.about6}
-
-
- ${window.siyuan.languages.dataRepoKey}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
${window.siyuan.languages.dataRepoKeyTip1}
-
${window.siyuan.languages.dataRepoKeyTip2}
-
-
- ${window.siyuan.languages.about13}
-
${window.siyuan.config.api.token}
-
-
-
${window.siyuan.languages.about14}
-
-
-
- ${window.siyuan.languages.export}
-
-
-
-
-
${window.siyuan.languages.exportDataTip}
-
-
-
-
${window.siyuan.languages.systemLogTip}
-
-
-
- ${window.siyuan.languages.import}
-
-
-
-
-
${window.siyuan.languages.importDataTip}
-
-
- ${window.siyuan.languages.workspaceList}
-
-
-
-
-
-
-
-
会泽百家 至公天下
- ${window.siyuan.languages.about1}
-
`;
- const workspaceDirElement = modelMainElement.querySelector("#workspaceDir");
- genWorkspace(workspaceDirElement);
- const importKeyElement = modelMainElement.querySelector("#importKey");
- 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({
- title: "🔑 " + window.siyuan.languages.key,
- content: `
-
-
-
-
-
-
`,
- width: "80vw",
- });
- const textAreaElement = passwordDialog.element.querySelector("textarea");
- textAreaElement.focus();
- const btnsElement = passwordDialog.element.querySelectorAll(".b3-button");
- btnsElement[0].addEventListener("click", () => {
- passwordDialog.destroy();
- });
- btnsElement[1].addEventListener("click", () => {
- fetchPost("/api/repo/importRepoKey", {key: textAreaElement.value}, () => {
- window.siyuan.config.repo.key = textAreaElement.value;
- importKeyElement.parentElement.classList.add("fn__none");
- importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
- passwordDialog.destroy();
- });
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "initKey") {
- confirmDialog("🔑 " + window.siyuan.languages.genKey, window.siyuan.languages.initRepoKeyTip, () => {
- fetchPost("/api/repo/initRepoKey", {}, (response) => {
- window.siyuan.config.repo.key = response.data.key;
- importKeyElement.parentElement.classList.add("fn__none");
- importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
- });
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "initKeyByPW") {
- const initDialog = new Dialog({
- title: "🔑 " + window.siyuan.languages.genKeyByPW,
- content: `
-
-
-
-
-
-
`,
- width: "80vw",
- });
- const inputElement = initDialog.element.querySelector(".b3-text-field") as HTMLInputElement;
- inputElement.focus();
- const btnsElement = initDialog.element.querySelectorAll(".b3-button");
- initDialog.bindInput(inputElement, () => {
- (btnsElement[1] as HTMLButtonElement).click();
- });
- btnsElement[0].addEventListener("click", () => {
- initDialog.destroy();
- });
- btnsElement[1].addEventListener("click", () => {
- if (!inputElement.value) {
- showMessage(window.siyuan.languages._kernel[142]);
- return;
- }
- confirmDialog("🔑 " + window.siyuan.languages.genKeyByPW, window.siyuan.languages.initRepoKeyTip, () => {
- initDialog.destroy();
- fetchPost("/api/repo/initRepoKeyFromPassphrase", {pass: inputElement.value}, (response) => {
- window.siyuan.config.repo.key = response.data.key;
- importKeyElement.parentElement.classList.add("fn__none");
- importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
- });
- });
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "copyKey") {
- showMessage(window.siyuan.languages.copied);
- writeText(window.siyuan.config.repo.key);
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "removeKey") {
- confirmDialog("⚠️ " + window.siyuan.languages.resetRepo, window.siyuan.languages.resetRepoTip, () => {
- fetchPost("/api/repo/resetRepo", {}, () => {
- window.siyuan.config.repo.key = "";
- window.siyuan.config.sync.enabled = false;
- processSync();
- importKeyElement.parentElement.classList.remove("fn__none");
- importKeyElement.parentElement.nextElementSibling.classList.add("fn__none");
- });
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "token") {
- showMessage(window.siyuan.languages.copied);
- writeText(window.siyuan.config.api.token);
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "exportData") {
- fetchPost("/api/export/exportData", {}, response => {
- openByMobile(response.data.zip);
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "exportLog") {
- fetchPost("/api/system/exportLog", {}, (response) => {
- openByMobile(response.data.zip);
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.id === "creatWorkspace") {
- const createWorkspaceDialog = new Dialog({
- title: window.siyuan.languages.new,
- content: `
-
-
-
-
-
-
`,
- 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);
- createWorkspaceDialog.destroy();
- });
- });
- event.preventDefault();
- event.stopPropagation();
- break;
- } else if (target.getAttribute("data-type") === "remove") {
- confirmDialog(window.siyuan.languages.remove, window.siyuan.languages.removeWorkspaceTip, () => {
- fetchPost("/api/system/removeWorkspaceDir", {path: target.parentElement.getAttribute("data-path")}, () => {
- genWorkspace(workspaceDirElement);
- });
- })
- event.preventDefault();
- event.stopPropagation();
- break;
- } 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"))}?`, () => {
- 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 }) => {
- const formData = new FormData();
- formData.append("file", event.target.files[0]);
- fetchPost("/api/import/importData", formData);
- });
- const networkServeElement = modelMainElement.querySelector("#networkServe") as HTMLInputElement;
- networkServeElement.addEventListener("change", () => {
- fetchPost("/api/system/setNetworkServe", {networkServe: networkServeElement.checked}, () => {
- exitSiYuan();
- });
- });
+ initAbout();
event.preventDefault();
event.stopPropagation();
break;
@@ -699,3 +382,364 @@ ${accountHTML}
menuElement.style.right = "0";
scrimElement.classList.remove("fn__none");
};
+
+const initAbout = () => {
+ closePanel();
+ if (!window.siyuan.config.localIPs || window.siyuan.config.localIPs.length === 0 ||
+ (window.siyuan.config.localIPs.length === 1 && window.siyuan.config.localIPs[0] === "")) {
+ window.siyuan.config.localIPs = ["127.0.0.1"];
+ }
+ const modelElement = document.getElementById("model");
+ const modelMainElement = document.getElementById("modelMain");
+
+ modelElement.style.top = "0";
+ modelElement.querySelector(".toolbar__icon").innerHTML = '';
+ modelElement.querySelector(".toolbar__text").textContent = window.siyuan.languages.about;
+ modelMainElement.innerHTML = `
+
+ ${window.siyuan.languages.about11}
+
${window.siyuan.languages.about12}
+
+
+
+
+
+ ${window.siyuan.languages.about2}
+
+
+
${window.siyuan.languages.about3.replace("${port}", location.port)}
+
+
${window.siyuan.config.localIPs.join(" ")}
+
+
+ ${window.siyuan.languages.about5}
+
+
+
${window.siyuan.languages.about6}
+
+
+ ${window.siyuan.languages.dataRepoKey}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
${window.siyuan.languages.dataRepoKeyTip1}
+
${window.siyuan.languages.dataRepoKeyTip2}
+
+
+ ${window.siyuan.languages.about13}
+
${window.siyuan.config.api.token}
+
+
+
${window.siyuan.languages.about14}
+
+
+
+ ${window.siyuan.languages.export}
+
+
+
+
+
${window.siyuan.languages.exportDataTip}
+
+
+
+
${window.siyuan.languages.systemLogTip}
+
+
+
+ ${window.siyuan.languages.import}
+
+
+
+
+
${window.siyuan.languages.importDataTip}
+
+
+ ${window.siyuan.languages.workspaceList}
+
+
+
+
+
+
+
+
+
+
会泽百家 至公天下
+ ${window.siyuan.languages.about1}
+
`;
+ const workspaceDirElement = modelMainElement.querySelector("#workspaceDir");
+ genWorkspace(workspaceDirElement);
+ const importKeyElement = modelMainElement.querySelector("#importKey");
+ 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({
+ title: "🔑 " + window.siyuan.languages.key,
+ content: `
+
+
+
+
+
+
`,
+ width: "80vw",
+ });
+ const textAreaElement = passwordDialog.element.querySelector("textarea");
+ textAreaElement.focus();
+ const btnsElement = passwordDialog.element.querySelectorAll(".b3-button");
+ btnsElement[0].addEventListener("click", () => {
+ passwordDialog.destroy();
+ });
+ btnsElement[1].addEventListener("click", () => {
+ fetchPost("/api/repo/importRepoKey", {key: textAreaElement.value}, () => {
+ window.siyuan.config.repo.key = textAreaElement.value;
+ importKeyElement.parentElement.classList.add("fn__none");
+ importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
+ passwordDialog.destroy();
+ });
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "initKey") {
+ confirmDialog("🔑 " + window.siyuan.languages.genKey, window.siyuan.languages.initRepoKeyTip, () => {
+ fetchPost("/api/repo/initRepoKey", {}, (response) => {
+ window.siyuan.config.repo.key = response.data.key;
+ importKeyElement.parentElement.classList.add("fn__none");
+ importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
+ });
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "initKeyByPW") {
+ const initDialog = new Dialog({
+ title: "🔑 " + window.siyuan.languages.genKeyByPW,
+ content: `
+
+
+
+
+
+
`,
+ width: "80vw",
+ });
+ const inputElement = initDialog.element.querySelector(".b3-text-field") as HTMLInputElement;
+ inputElement.focus();
+ const btnsElement = initDialog.element.querySelectorAll(".b3-button");
+ initDialog.bindInput(inputElement, () => {
+ (btnsElement[1] as HTMLButtonElement).click();
+ });
+ btnsElement[0].addEventListener("click", () => {
+ initDialog.destroy();
+ });
+ btnsElement[1].addEventListener("click", () => {
+ if (!inputElement.value) {
+ showMessage(window.siyuan.languages._kernel[142]);
+ return;
+ }
+ confirmDialog("🔑 " + window.siyuan.languages.genKeyByPW, window.siyuan.languages.initRepoKeyTip, () => {
+ initDialog.destroy();
+ fetchPost("/api/repo/initRepoKeyFromPassphrase", {pass: inputElement.value}, (response) => {
+ window.siyuan.config.repo.key = response.data.key;
+ importKeyElement.parentElement.classList.add("fn__none");
+ importKeyElement.parentElement.nextElementSibling.classList.remove("fn__none");
+ });
+ });
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "copyKey") {
+ showMessage(window.siyuan.languages.copied);
+ writeText(window.siyuan.config.repo.key);
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "removeKey") {
+ confirmDialog("⚠️ " + window.siyuan.languages.resetRepo, window.siyuan.languages.resetRepoTip, () => {
+ fetchPost("/api/repo/resetRepo", {}, () => {
+ window.siyuan.config.repo.key = "";
+ window.siyuan.config.sync.enabled = false;
+ processSync();
+ importKeyElement.parentElement.classList.remove("fn__none");
+ importKeyElement.parentElement.nextElementSibling.classList.add("fn__none");
+ });
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "token") {
+ showMessage(window.siyuan.languages.copied);
+ writeText(window.siyuan.config.api.token);
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "exportData") {
+ fetchPost("/api/export/exportData", {}, response => {
+ openByMobile(response.data.zip);
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "exportLog") {
+ fetchPost("/api/system/exportLog", {}, (response) => {
+ openByMobile(response.data.zip);
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "openWorkspace") {
+ fetchPost("/api/system/getMobileWorkspaces", {}, (response) => {
+ let selectHTML = ""
+ response.data.forEach((item: string, index:number) => {
+ selectHTML += ``
+ })
+ const openWorkspaceDialog = new Dialog({
+ title: window.siyuan.languages.openBy,
+ content: `
+
+
+
+
+
+
`,
+ width: "80vw",
+ });
+ const btnsElement = openWorkspaceDialog.element.querySelectorAll(".b3-button");
+ btnsElement[0].addEventListener("click", () => {
+ openWorkspaceDialog.destroy();
+ });
+ btnsElement[1].addEventListener("click", () => {
+ const openName = openWorkspaceDialog.element.querySelector("select").value;
+ confirmDialog(window.siyuan.languages.confirm, `${pathPosix().basename(window.siyuan.config.system.workspaceDir)} -> ${openName}?`, () => {
+ fetchPost("/api/system/setWorkspaceDir", {
+ path: target.getAttribute("data-path")
+ }, () => {
+ exitSiYuan();
+ });
+ });
+ });
+ })
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.id === "creatWorkspace") {
+ const createWorkspaceDialog = new Dialog({
+ title: window.siyuan.languages.new,
+ content: `
+
+
+
+
+
+
`,
+ 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);
+ createWorkspaceDialog.destroy();
+ });
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } else if (target.getAttribute("data-type") === "remove") {
+ fetchPost("/api/system/removeWorkspaceDir", {path: target.parentElement.getAttribute("data-path")}, () => {
+ genWorkspace(workspaceDirElement);
+ });
+ event.preventDefault();
+ event.stopPropagation();
+ break;
+ } 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"))}?`, () => {
+ 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
+ }) => {
+ const formData = new FormData();
+ formData.append("file", event.target.files[0]);
+ fetchPost("/api/import/importData", formData);
+ });
+ const networkServeElement = modelMainElement.querySelector("#networkServe") as HTMLInputElement;
+ networkServeElement.addEventListener("change", () => {
+ fetchPost("/api/system/setNetworkServe", {networkServe: networkServeElement.checked}, () => {
+ exitSiYuan();
+ });
+ });
+}