From 24aa696ef59ac6d763b3b31eca92d8f16086cf86 Mon Sep 17 00:00:00 2001 From: Debanjum Singh Solanky Date: Mon, 13 Feb 2023 19:09:33 -0600 Subject: [PATCH] Indicate indexing active on Update button in Obsidian plugin settings Use moon rotating through phases to indicate notes indexing in progress Resolves #129 --- src/interface/obsidian/src/settings.ts | 27 ++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/interface/obsidian/src/settings.ts b/src/interface/obsidian/src/settings.ts index ce4f50f4..20bb7863 100644 --- a/src/interface/obsidian/src/settings.ts +++ b/src/interface/obsidian/src/settings.ts @@ -59,14 +59,37 @@ export class KhojSettingTab extends PluginSettingTab { .setCta() .onClick(async () => { // Disable button while updating index - button.setButtonText('Updating...'); + button.setButtonText('Updating 🌑'); button.removeCta(); indexVaultSetting = indexVaultSetting.setDisabled(true); + // Show indicator for indexing in progress + const progress_indicator = window.setInterval(() => { + if (button.buttonEl.innerText === 'Updating 🌑') { + button.setButtonText('Updating 🌘'); + } else if (button.buttonEl.innerText === 'Updating 🌘') { + button.setButtonText('Updating 🌗'); + } else if (button.buttonEl.innerText === 'Updating 🌗') { + button.setButtonText('Updating 🌖'); + } else if (button.buttonEl.innerText === 'Updating 🌖') { + button.setButtonText('Updating 🌕'); + } else if (button.buttonEl.innerText === 'Updating 🌕') { + button.setButtonText('Updating 🌔'); + } else if (button.buttonEl.innerText === 'Updating 🌔') { + button.setButtonText('Updating 🌓'); + } else if (button.buttonEl.innerText === 'Updating 🌓') { + button.setButtonText('Updating 🌒'); + } else if (button.buttonEl.innerText === 'Updating 🌒') { + button.setButtonText('Updating 🌑'); + } + }, 300); + this.plugin.registerInterval(progress_indicator); + await request(`${this.plugin.settings.khojUrl}/api/update?t=markdown&force=true`); new Notice('✅ Updated Khoj index.'); - // Re-enable button once index is updated + // Reset button once index is updated + window.clearInterval(progress_indicator); button.setButtonText('Update'); button.setCta(); indexVaultSetting = indexVaultSetting.setDisabled(false);