From ff814be4a0a8f5e4a890433dabe1cd9d6e7f4ce2 Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Thu, 21 Sep 2023 09:44:07 +0100 Subject: [PATCH] Fixed: - Now the synchronisation will begin without our interaction. - No longer puts the configuration of the remote database into the log while checking configuration. - Some outdated description notes have been removed. - Options that are meaningless depending on other settings configured are now hidden. --- src/ObsidianLiveSyncSettingTab.ts | 61 ++++++++++++++++--------------- src/main.ts | 4 +- 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/src/ObsidianLiveSyncSettingTab.ts b/src/ObsidianLiveSyncSettingTab.ts index 53d5f9a..72f9ea7 100644 --- a/src/ObsidianLiveSyncSettingTab.ts +++ b/src/ObsidianLiveSyncSettingTab.ts @@ -1,5 +1,5 @@ import { App, PluginSettingTab, Setting, sanitizeHTMLToDom, TextAreaComponent, MarkdownRenderer, stringifyYaml } from "./deps"; -import { DEFAULT_SETTINGS, type ObsidianLiveSyncSettings, type ConfigPassphraseStore, type RemoteDBSettings, type FilePathWithPrefix, type HashAlgorithm, type DocumentID, LOG_LEVEL_NOTICE, LOG_LEVEL_VERBOSE } from "./lib/src/types"; +import { DEFAULT_SETTINGS, type ObsidianLiveSyncSettings, type ConfigPassphraseStore, type RemoteDBSettings, type FilePathWithPrefix, type HashAlgorithm, type DocumentID, LOG_LEVEL_NOTICE, LOG_LEVEL_VERBOSE, LOG_LEVEL_INFO } from "./lib/src/types"; import { delay } from "./lib/src/utils"; import { Semaphore } from "./lib/src/semaphore"; import { versionNumberString2Number } from "./lib/src/strbin"; @@ -303,6 +303,7 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { .setDisabled(false) .onClick(async () => { const checkConfig = async () => { + Logger(`Checking database configuration`, LOG_LEVEL_INFO); try { if (isCloudantURI(this.plugin.settings.couchDB_URI)) { Logger("This feature cannot be used with IBM Cloudant.", LOG_LEVEL_NOTICE); @@ -311,8 +312,6 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { const r = await requestToCouchDB(this.plugin.settings.couchDB_URI, this.plugin.settings.couchDB_USER, this.plugin.settings.couchDB_PASSWORD, window.origin); - Logger(JSON.stringify(r.json, null, 2)); - const responseConfig = r.json; const emptyDiv = createDiv(); @@ -333,16 +332,15 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { tmpDiv.innerHTML = ``; const x = checkResultDiv.appendChild(tmpDiv); x.querySelector("button").addEventListener("click", async () => { - console.dir({ key, value }); + Logger(`CouchDB Configuration: ${title} -> Set ${key} to ${value}`) const res = await requestToCouchDB(this.plugin.settings.couchDB_URI, this.plugin.settings.couchDB_USER, this.plugin.settings.couchDB_PASSWORD, undefined, key, value); - console.dir(res); if (res.status == 200) { - Logger(`${title} successfully updated`, LOG_LEVEL_NOTICE); + Logger(`CouchDB Configuration: ${title} successfully updated`, LOG_LEVEL_NOTICE); checkResultDiv.removeChild(x); checkConfig(); } else { - Logger(`${title} failed`, LOG_LEVEL_NOTICE); - Logger(res.text); + Logger(`CouchDB Configuration: ${title} failed`, LOG_LEVEL_NOTICE); + Logger(res.text, LOG_LEVEL_VERBOSE); } }); }; @@ -352,7 +350,6 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { ["ob-btn-config-info"] ); - addResult("Your configuration is dumped to Log", ["ob-btn-config-info"]); addResult("--Config check--", ["ob-btn-config-head"]); // Admin check @@ -453,6 +450,7 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { } addResult("--Done--", ["ob-btn-config-head"]); addResult("If you have some trouble with Connection-check even though all Config-check has been passed, Please check your reverse proxy's configuration.", ["ob-btn-config-info"]); + Logger(`Checking configuration done`, LOG_LEVEL_INFO); } catch (ex) { Logger(`Checking configuration failed`, LOG_LEVEL_NOTICE); Logger(ex); @@ -1183,19 +1181,20 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { }); } - new Setting(containerSyncSettingEl) - .setName("Scan for hidden files before replication") - .setDesc("This configuration will be ignored if monitoring changes is enabled.") - .setClass("wizardHidden") - .addToggle((toggle) => - toggle.setValue(this.plugin.settings.syncInternalFilesBeforeReplication).onChange(async (value) => { - this.plugin.settings.syncInternalFilesBeforeReplication = value; - await this.plugin.saveSettings(); - }) - ); + if (!this.plugin.settings.watchInternalFileChanges) { + new Setting(containerSyncSettingEl) + .setName("Scan for hidden files before replication") + .setClass("wizardHidden") + .addToggle((toggle) => + toggle.setValue(this.plugin.settings.syncInternalFilesBeforeReplication).onChange(async (value) => { + this.plugin.settings.syncInternalFilesBeforeReplication = value; + await this.plugin.saveSettings(); + }) + ); + } new Setting(containerSyncSettingEl) .setName("Scan hidden files periodically") - .setDesc("Seconds, 0 to disable. This configuration will be ignored if monitoring changes is enabled.") + .setDesc("Seconds, 0 to disable") .setClass("wizardHidden") .addText((text) => { text.setPlaceholder("") @@ -1861,16 +1860,18 @@ ${stringifyYaml(pluginConfig)}`; }) ); - new Setting(containerPluginSettings) - .setName("Scan customization periodically") - .setDesc("Scan customization every 1 minute. This configuration will be ignored if monitoring changes of hidden files has been enabled.") - .addToggle((toggle) => - toggle.setValue(this.plugin.settings.autoSweepPluginsPeriodic).onChange(async (value) => { - this.plugin.settings.autoSweepPluginsPeriodic = value; - updateDisabledOfDeviceAndVaultName(); - await this.plugin.saveSettings(); - }) - ); + if (!this.plugin.settings.watchInternalFileChanges) { + new Setting(containerPluginSettings) + .setName("Scan customization periodically") + .setDesc("Scan customization every 1 minute.") + .addToggle((toggle) => + toggle.setValue(this.plugin.settings.autoSweepPluginsPeriodic).onChange(async (value) => { + this.plugin.settings.autoSweepPluginsPeriodic = value; + updateDisabledOfDeviceAndVaultName(); + await this.plugin.saveSettings(); + }) + ); + } new Setting(containerPluginSettings) .setName("Notify customized") diff --git a/src/main.ts b/src/main.ts index 05a3067..137d181 100644 --- a/src/main.ts +++ b/src/main.ts @@ -64,7 +64,7 @@ export default class ObsidianLiveSyncPlugin extends Plugin replicator!: LiveSyncDBReplicator; statusBar?: HTMLElement; - suspended: boolean = true; + suspended: boolean = false; deviceAndVaultName: string = ""; isMobile = false; isReady = false; @@ -459,8 +459,8 @@ export default class ObsidianLiveSyncPlugin extends Plugin return false; } } - await this.realizeSettingSyncMode(); this.registerWatchEvents(); + await this.realizeSettingSyncMode(); this.swapSaveCommand(); if (this.settings.syncOnStart) { this.replicator.openReplication(this.settings, false, false);