diff --git a/app/src/config/repos.ts b/app/src/config/repos.ts index 2e19046f0..9161eba91 100644 --- a/app/src/config/repos.ts +++ b/app/src/config/repos.ts @@ -64,6 +64,48 @@ const renderProvider = (provider: number) => { ` } + } else if (provider === 2) { + return ` + + + +` + } else if (provider === 3) { + return ` + +` } return ""; } @@ -122,7 +164,7 @@ export const repos = { ${syncProviderHTML} -
+
${renderProvider(window.siyuan.config.sync.provider)}
@@ -206,6 +248,18 @@ ${syncModeHTML} } }); }); + const syncProviderElement = repos.element.querySelector("#syncProvider") as HTMLSelectElement; + syncProviderElement.addEventListener("change", () => { + fetchPost("/api/sync/setSyncProvider", {provider: parseInt(syncProviderElement.value, 10)}, (response) => { + if (response.code === 1) { + showMessage(response.msg); + syncProviderElement.value = "0"; + } else { + window.siyuan.config.sync.mode = parseInt(syncProviderElement.value, 10); + } + repos.element.querySelector("#syncProviderPanel").innerHTML = renderProvider(parseInt(syncProviderElement.value, 10)); + }); + }); const loadingElement = repos.element.querySelector("#reposLoading") as HTMLElement; loadingElement.style.width = repos.element.clientWidth + "px"; loadingElement.style.height = repos.element.clientHeight + "px"; diff --git a/app/src/types/index.d.ts b/app/src/types/index.d.ts index 3f8a42a3d..de8498900 100644 --- a/app/src/types/index.d.ts +++ b/app/src/types/index.d.ts @@ -333,6 +333,18 @@ declare interface IConfig { interval: number cloudName: string provider: number + s3: { + endpoint: string + accessKey: string + secretKey: string + bucket: string + region: string + } + webdav: { + endpoint: string + username: string + password: string + } }, lang: string api: {