import {needSubscribe} from "../util/needSubscribe"; import {fetchPost} from "../util/fetch"; import {isMobile} from "../util/functions"; import {showMessage} from "../dialog/message"; import {bindSyncCloudListEvent, getSyncCloudList} from "../sync/syncGuide"; const renderCloudBackup = () => { fetchPost("/api/cloud/getCloudSpace", {}, (response) => { repos.element.querySelector("#reposLoading").classList.add("fn__none"); if (response.code === 1) { repos.element.querySelector("#reposData").innerHTML = response.msg; return; } else { repos.element.querySelector("#reposData").innerHTML = `
${window.siyuan.languages.cloudStorage}
${window.siyuan.languages.trafficStat}
`; } }); }; export const repos = { element: undefined as Element, genHTML: () => { if (needSubscribe("")) { return `
${window.siyuan.config.system.container === "ios" ? window.siyuan.languages._kernel[122] : window.siyuan.languages._kernel[29]}
${window.siyuan.languages.cloudIntro1}
${window.siyuan.languages.cloudIntro9}
`; } let syncModeHTML = ``; if (isMobile()) { syncModeHTML = `
${window.siyuan.languages.syncMode}
${window.siyuan.languages.syncModeTip}
`; } return `
${window.siyuan.languages.cloudStorage}
${window.siyuan.languages.trafficStat}
${syncModeHTML}
${window.siyuan.languages.cloudBackup}
${window.siyuan.languages.cloudBackupTip}
`; }, bindEvent: () => { if (needSubscribe("")) { return; } renderCloudBackup(); const switchElement = repos.element.querySelector("#reposCloudSyncSwitch") as HTMLInputElement; switchElement.addEventListener("change", () => { if (switchElement.checked && window.siyuan.config.sync.cloudName === "") { switchElement.checked = false; showMessage(window.siyuan.languages._kernel[123]); return; } fetchPost("/api/sync/setSyncEnable", {enabled: switchElement.checked}, (response) => { if (response.code === 1) { showMessage(response.msg); switchElement.checked = false; } else { window.siyuan.config.sync.enabled = switchElement.checked; } }); }); const switchConflictElement = repos.element.querySelector("#generateConflictDoc") as HTMLInputElement; switchConflictElement.addEventListener("change", () => { fetchPost("/api/sync/setSyncGenerateConflictDoc", {enabled: switchConflictElement.checked}, () => { window.siyuan.config.sync.generateConflictDoc = switchConflictElement.checked; }); }); const syncModeElement = repos.element.querySelector("#syncMode") as HTMLSelectElement; syncModeElement.addEventListener("change", () => { fetchPost("/api/sync/setSyncMode", {mode: parseInt(syncModeElement.value, 10)}, (response) => { if (response.code === 1) { showMessage(response.msg); syncModeElement.value = "1"; } else { window.siyuan.config.sync.mode = parseInt(syncModeElement.value, 10); } }); }); const loadingElement = repos.element.querySelector("#reposLoading") as HTMLElement; loadingElement.style.width = repos.element.clientWidth + "px"; loadingElement.style.height = repos.element.clientHeight + "px"; const syncConfigElement = repos.element.querySelector("#reposCloudSyncList"); bindSyncCloudListEvent(syncConfigElement); repos.element.querySelector('[data-type="config"]').addEventListener("click", () => { if (syncConfigElement.classList.contains("fn__none")) { getSyncCloudList(syncConfigElement); syncConfigElement.classList.remove("fn__none"); } else { syncConfigElement.classList.add("fn__none"); } }); }, };