From 6c50856a5fa135565b1e4e26c8fcb0c77007aed1 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 11 Nov 2022 15:39:41 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/6426 --- app/src/config/repos.ts | 56 +++++++++++++++++++++++++++++++++++++++- app/src/types/index.d.ts | 12 +++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) 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: {