import {Constants} from "../constants"; /// #if !BROWSER import {shell} from "electron"; import {dialog} from "@electron/remote"; /// #endif import {isBrowser} from "../util/functions"; import {fetchPost} from "../util/fetch"; import {setAccessAuthCode} from "./util"; import {exportLayout} from "../layout/util"; import {exitSiYuan} from "../dialog/processSystem"; export const about = { element: undefined as Element, genHTML: () => { return `
${window.siyuan.languages.about11}
${window.siyuan.languages.about12}
${window.siyuan.languages.about2}
${window.siyuan.languages.about3}
${window.siyuan.config.localIPs.join(" ")}
${window.siyuan.languages.networkProxy}
${window.siyuan.languages.about17}
${window.siyuan.languages.about7} ${window.siyuan.config.system.workspaceDir}
${window.siyuan.languages.about8}
${window.siyuan.languages.about5}
${window.siyuan.languages.about6}
${window.siyuan.languages.currentVer} v${Constants.SIYUAN_VERSION}
${window.siyuan.languages.visitAnnouncements}
${window.siyuan.languages.about9}
${window.siyuan.languages.about10}
${window.siyuan.languages.about1}
`; }, bindEvent: () => { if (window.siyuan.config.system.isInsider) { about.element.querySelector("#isInsider").innerHTML = "Insider Preview"; } const tokenElement = about.element.querySelector("#token") as HTMLInputElement; tokenElement.addEventListener("click", () => { tokenElement.select(); }); const updateElement = about.element.querySelector("#checkUpdateBtn"); updateElement.addEventListener("click", () => { const svgElement = updateElement.firstElementChild; if (svgElement) { return; } updateElement.innerHTML = `${window.siyuan.languages.checkUpdate}`; fetchPost("/api/system/checkUpdate", {showMsg: true}, () => { updateElement.innerHTML = `${window.siyuan.languages.checkUpdate}`; }); }); /// #if !BROWSER about.element.querySelectorAll('[data-type="open"]').forEach(item => { item.addEventListener("click", () => { const url = item.getAttribute("data-url"); if (url.startsWith("http")) { shell.openExternal(url); } else { shell.openPath(url); } }); }); const workspaceDirElement = about.element.querySelector("#workspaceDir") as HTMLInputElement; workspaceDirElement.addEventListener("change", async () => { let workspace = workspaceDirElement.value; if (workspaceDirElement.value === "0") { const localPath = await dialog.showOpenDialog({ defaultPath: window.siyuan.config.system.homeDir, properties: ["openDirectory", "createDirectory"], }); if (localPath.filePaths.length === 0) { workspaceDirElement.value = window.siyuan.config.system.workspaceDir; return; } workspace = localPath.filePaths[0]; } fetchPost("/api/system/setWorkspaceDir", { path: workspace }, () => { const searchData = JSON.parse(localStorage.getItem(Constants.LOCAL_SEARCHEDATA) || "{}"); if (searchData.hPath) { searchData.hPath = ""; localStorage.setItem(Constants.LOCAL_SEARCHEDATA, JSON.stringify(searchData)); } exportLayout(false, () => { exitSiYuan(); }); }); }); fetchPost("/api/system/listWorkspaceDirs", {}, (response) => { let optionsHTML = ""; response.data.forEach((item: string) => { optionsHTML += ``; }); workspaceDirElement.innerHTML = optionsHTML + ``; workspaceDirElement.value = window.siyuan.config.system.workspaceDir; }); /// #endif const authCodeElement = about.element.querySelector("#authCode") as HTMLInputElement; authCodeElement.addEventListener("click", () => { setAccessAuthCode(); }); const networkServeElement = about.element.querySelector("#networkServe") as HTMLInputElement; networkServeElement.addEventListener("change", () => { fetchPost("/api/system/setNetworkServe", {networkServe: networkServeElement.checked}, () => { exportLayout(false, () => { exitSiYuan(); }); }); }); const uploadErrLogElement = about.element.querySelector("#uploadErrLog") as HTMLInputElement; uploadErrLogElement.addEventListener("change", () => { fetchPost("/api/system/setUploadErrLog", {uploadErrLog: uploadErrLogElement.checked}, () => { exportLayout(false, () => { exitSiYuan(); }); }); }); about.element.querySelector("#aboutConfim").addEventListener("click", () => { fetchPost("/api/system/setNetworkProxy", { scheme: (about.element.querySelector("#aboutScheme") as HTMLInputElement).value, host: (about.element.querySelector("#aboutHost") as HTMLInputElement).value, port: (about.element.querySelector("#aboutPort") as HTMLInputElement).value }, () => { exportLayout(false, () => { exitSiYuan(); }); }); }); } };