mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-02 21:19:12 +00:00
Update plugin notifications for errors and success
- Only show notification on plugin load and failure. - In settings page, set current backend status at top of pane instead of showing notification Notices bubbles cluttered the UI while typing updates to settings - Show notification once index updated via settings pane button click There was no notification on index updated, which usually takes time on the backend
This commit is contained in:
@@ -45,7 +45,7 @@ export default class Khoj extends Plugin {
|
||||
}
|
||||
|
||||
async saveSettings() {
|
||||
await configureKhojBackend(this.settings)
|
||||
await configureKhojBackend(this.settings, false)
|
||||
.then(() => this.saveData(this.settings));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { App, PluginSettingTab, request, Setting } from 'obsidian';
|
||||
import { App, Notice, PluginSettingTab, request, Setting } from 'obsidian';
|
||||
import Khoj from 'src/main';
|
||||
import { getVaultAbsolutePath } from 'src/utils';
|
||||
|
||||
@@ -28,10 +28,8 @@ export class KhojSettingTab extends PluginSettingTab {
|
||||
const { containerEl } = this;
|
||||
containerEl.empty();
|
||||
|
||||
// Add notice if unable to connect to khoj backend
|
||||
if (!this.plugin.settings.connectedToBackend) {
|
||||
containerEl.createEl('small', { text: '❗Ensure Khoj backend is running and Khoj URL is correctly set below' });
|
||||
}
|
||||
// Add notice whether able to connect to khoj backend or not
|
||||
containerEl.createEl('small', { text: this.getBackendStatusMessage() });
|
||||
|
||||
// Add khoj settings configurable from the plugin settings tab
|
||||
new Setting(containerEl)
|
||||
@@ -49,8 +47,9 @@ export class KhojSettingTab extends PluginSettingTab {
|
||||
.addText(text => text
|
||||
.setValue(`${this.plugin.settings.khojUrl}`)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings.khojUrl = value;
|
||||
await this.plugin.saveSettings();
|
||||
this.plugin.settings.khojUrl = value.trim();
|
||||
await this.plugin.saveSettings()
|
||||
.finally(() => containerEl.firstElementChild?.setText(this.getBackendStatusMessage()));
|
||||
}));
|
||||
new Setting(containerEl)
|
||||
.setName('Results Count')
|
||||
@@ -69,8 +68,15 @@ export class KhojSettingTab extends PluginSettingTab {
|
||||
.setButtonText('Update')
|
||||
.setCta()
|
||||
.onClick(async () => {
|
||||
await request(`${this.plugin.settings.khojUrl}/api/update?t=markdown&force=true`);
|
||||
}
|
||||
));
|
||||
await request(`${this.plugin.settings.khojUrl}/api/update?t=markdown&force=true`)
|
||||
.then(() => new Notice('✅ Updated Khoj index.'))
|
||||
})
|
||||
);
|
||||
}
|
||||
|
||||
getBackendStatusMessage() {
|
||||
return !this.plugin.settings.connectedToBackend
|
||||
? '❗Disconnected from Khoj backend. Ensure Khoj backend is running and Khoj URL is correctly set below.'
|
||||
: '✅ Connected to Khoj backend.';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ export function getVaultAbsolutePath(): string {
|
||||
return '';
|
||||
}
|
||||
|
||||
export async function configureKhojBackend(setting: KhojSetting) {
|
||||
export async function configureKhojBackend(setting: KhojSetting, notify: boolean = true) {
|
||||
let mdInVault = `${setting.obsidianVaultPath}/**/*.md`;
|
||||
let khojConfigUrl = `${setting.khojUrl}/api/config/data`;
|
||||
|
||||
@@ -21,7 +21,8 @@ export async function configureKhojBackend(setting: KhojSetting) {
|
||||
})
|
||||
.catch(error => {
|
||||
setting.connectedToBackend = false;
|
||||
new Notice(`❗️Ensure Khoj backend is running and Khoj URL is pointing to it in the plugin settings.\n\n${error}`);
|
||||
if (notify)
|
||||
new Notice(`❗️Ensure Khoj backend is running and Khoj URL is pointing to it in the plugin settings.\n\n${error}`);
|
||||
})
|
||||
// Short-circuit configuring khoj if unable to connect to khoj backend
|
||||
if (!setting.connectedToBackend) return;
|
||||
@@ -79,10 +80,10 @@ export async function configureKhojBackend(setting: KhojSetting) {
|
||||
updateKhojBackend(setting.khojUrl, data);
|
||||
console.log(`Khoj: Updated markdown config in khoj backend config:\n${JSON.stringify(data["content-type"]["markdown"])}`)
|
||||
}
|
||||
new Notice(`✅ Successfully Setup Khoj`);
|
||||
})
|
||||
.catch(error => {
|
||||
new Notice(`❗️Failed to configure Khoj backend. Contact developer on Github.\n\nError: ${error}`);
|
||||
if (notify)
|
||||
new Notice(`❗️Failed to configure Khoj backend. Contact developer on Github.\n\nError: ${error}`);
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user