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: {