From 3773e57429ae18bde81efa437ab395ff81a53b4e Mon Sep 17 00:00:00 2001 From: vorotamoroz Date: Fri, 22 Sep 2023 17:59:32 +0900 Subject: [PATCH] Improved: - We can open the log pane also from the command palette now. - Now, the hidden file scanning interval could be configured to 0. - `Check database configuration` now points out that we do not have administrator permission. --- src/ObsidianLiveSyncSettingTab.ts | 40 ++++++++++++++++++------------- src/main.ts | 8 ++++++- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/src/ObsidianLiveSyncSettingTab.ts b/src/ObsidianLiveSyncSettingTab.ts index 72f9ea7..65c2afc 100644 --- a/src/ObsidianLiveSyncSettingTab.ts +++ b/src/ObsidianLiveSyncSettingTab.ts @@ -304,28 +304,28 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { .onClick(async () => { const checkConfig = async () => { Logger(`Checking database configuration`, LOG_LEVEL_INFO); + + const emptyDiv = createDiv(); + emptyDiv.innerHTML = ""; + checkResultDiv.replaceChildren(...[emptyDiv]); + const addResult = (msg: string, classes?: string[]) => { + const tmpDiv = createDiv(); + tmpDiv.addClass("ob-btn-config-fix"); + if (classes) { + tmpDiv.addClasses(classes); + } + tmpDiv.innerHTML = `${msg}`; + checkResultDiv.appendChild(tmpDiv); + }; try { + if (isCloudantURI(this.plugin.settings.couchDB_URI)) { Logger("This feature cannot be used with IBM Cloudant.", LOG_LEVEL_NOTICE); return; } - const r = await requestToCouchDB(this.plugin.settings.couchDB_URI, this.plugin.settings.couchDB_USER, this.plugin.settings.couchDB_PASSWORD, window.origin); - const responseConfig = r.json; - const emptyDiv = createDiv(); - emptyDiv.innerHTML = ""; - checkResultDiv.replaceChildren(...[emptyDiv]); - const addResult = (msg: string, classes?: string[]) => { - const tmpDiv = createDiv(); - tmpDiv.addClass("ob-btn-config-fix"); - if (classes) { - tmpDiv.addClasses(classes); - } - tmpDiv.innerHTML = `${msg}`; - checkResultDiv.appendChild(tmpDiv); - }; const addConfigFixButton = (title: string, key: string, value: string) => { const tmpDiv = createDiv(); tmpDiv.addClass("ob-btn-config-fix"); @@ -452,8 +452,14 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { 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); + if (ex?.status == 401) { + addResult(`❗ Access forbidden.`); + addResult(`We could not continue the test.`); + Logger(`Checking configuration done`, LOG_LEVEL_INFO); + } else { + Logger(`Checking configuration failed`, LOG_LEVEL_NOTICE); + Logger(ex); + } } }; await checkConfig(); @@ -1201,7 +1207,7 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab { .setValue(this.plugin.settings.syncInternalFilesInterval + "") .onChange(async (value) => { let v = Number(value); - if (isNaN(v) || v < 10) { + if (v !== 0 && (isNaN(v) || v < 10)) { v = 10; } this.plugin.settings.syncInternalFilesInterval = v; diff --git a/src/main.ts b/src/main.ts index 137d181..3af7829 100644 --- a/src/main.ts +++ b/src/main.ts @@ -576,7 +576,13 @@ export default class ObsidianLiveSyncPlugin extends Plugin this.addRibbonIcon("view-log", "Show log", () => { this.showView(VIEW_TYPE_LOG); }); - + this.addCommand({ + id: "view-log", + name: "Show log", + callback: () => { + this.showView(VIEW_TYPE_LOG); + } + }); this.addSettingTab(new ObsidianLiveSyncSettingTab(this.app, this)); this.app.workspace.onLayoutReady(this.onLayoutReady.bind(this));