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(); + }); + }); +}