From 6ddad3b4fa975f05bedf735d56afda5c00350487 Mon Sep 17 00:00:00 2001 From: Vanessa Date: Fri, 11 Nov 2022 16:00:01 +0800 Subject: [PATCH] :art: https://github.com/siyuan-note/siyuan/issues/6426 --- app/src/config/repos.ts | 52 ++++++++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 11 deletions(-) diff --git a/app/src/config/repos.ts b/app/src/config/repos.ts index d6102e919..bd586993c 100644 --- a/app/src/config/repos.ts +++ b/app/src/config/repos.ts @@ -71,48 +71,79 @@ const renderProvider = (provider: number) => { return ` ` } else if (provider === 3) { return ` ` } return ""; } +const bindProviderEvent = () => { + if (window.siyuan.config.sync.provider === 0) { + return; + } + const providerPanelElement = repos.element.querySelector("#syncProviderPanel") + providerPanelElement.querySelectorAll(".b3-text-field").forEach(item => { + item.addEventListener("blur", () => { + const provider = window.siyuan.config.sync.provider; + if (window.siyuan.config.sync.provider === 2) { + fetchPost("/api/sync/setSyncProviderS3", { + s3: { + endpoint: (providerPanelElement.querySelector("#endpoint") as HTMLInputElement).value, + accessKey: (providerPanelElement.querySelector("#accessKey") as HTMLInputElement).value, + secretKey: (providerPanelElement.querySelector("#secretKey") as HTMLInputElement).value, + bucket: (providerPanelElement.querySelector("#bucket") as HTMLInputElement).value, + region: (providerPanelElement.querySelector("#region") as HTMLInputElement).value, + } + }) + } else if (window.siyuan.config.sync.provider === 3) { + fetchPost("/api/sync/setSyncProviderWebDAV", { + webdav: { + endpoint: (providerPanelElement.querySelector("#endpoint") as HTMLInputElement).value, + username: (providerPanelElement.querySelector("#username") as HTMLInputElement).value, + password: (providerPanelElement.querySelector("#password") as HTMLInputElement).value, + } + }) + } + }) + }) +} + export const repos = { element: undefined as Element, genHTML: () => { @@ -214,9 +245,7 @@ ${syncModeHTML} `; }, bindEvent: () => { - if (needSubscribe("")) { - return; - } + bindProviderEvent(); renderCloudBackup(); const switchElement = repos.element.querySelector("#reposCloudSyncSwitch") as HTMLInputElement; switchElement.addEventListener("change", () => { @@ -261,6 +290,7 @@ ${syncModeHTML} window.siyuan.config.sync.mode = parseInt(syncProviderElement.value, 10); } repos.element.querySelector("#syncProviderPanel").innerHTML = renderProvider(parseInt(syncProviderElement.value, 10)); + bindProviderEvent(); }); }); const loadingElement = repos.element.querySelector("#reposLoading") as HTMLElement;