mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-09 21:29:11 +00:00
Use rich text error to better guide when exceed data sync limits in Obsidian
When user exceeds data sync limits. Show error notice with - Link to web app settings page to upgrade subscription - Link to Khoj plugin settings in Obsidian to configure file types to sync from vault to Khoj
This commit is contained in:
@@ -120,7 +120,37 @@ export async function updateContentIndex(vault: Vault, setting: KhojSetting, las
|
|||||||
|
|
||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
if (response.status === 429) {
|
if (response.status === 429) {
|
||||||
|
let response_text = await response.text();
|
||||||
|
if (response_text.includes("Too much data")) {
|
||||||
|
const errorFragment = document.createDocumentFragment();
|
||||||
|
errorFragment.appendChild(document.createTextNode("❗️Exceeded data sync limits. To resolve this either:"));
|
||||||
|
const bulletList = document.createElement('ul');
|
||||||
|
|
||||||
|
const limitFilesItem = document.createElement('li');
|
||||||
|
const settingsPrefixText = document.createTextNode("Limit files to sync from ");
|
||||||
|
const settingsLink = document.createElement('a');
|
||||||
|
settingsLink.textContent = "Khoj settings";
|
||||||
|
settingsLink.href = "#";
|
||||||
|
settingsLink.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
openKhojPluginSettings();
|
||||||
|
});
|
||||||
|
limitFilesItem.appendChild(settingsPrefixText);
|
||||||
|
limitFilesItem.appendChild(settingsLink);
|
||||||
|
bulletList.appendChild(limitFilesItem);
|
||||||
|
|
||||||
|
const upgradeItem = document.createElement('li');
|
||||||
|
const upgradeLink = document.createElement('a');
|
||||||
|
upgradeLink.href = `${setting.khojUrl}/settings#subscription`;
|
||||||
|
upgradeLink.textContent = 'Upgrade your subscription';
|
||||||
|
upgradeLink.target = '_blank';
|
||||||
|
upgradeItem.appendChild(upgradeLink);
|
||||||
|
bulletList.appendChild(upgradeItem);
|
||||||
|
errorFragment.appendChild(bulletList);
|
||||||
|
error_message = errorFragment;
|
||||||
|
} else {
|
||||||
error_message = `❗️Failed to sync your content with Khoj server. Requests were throttled. Upgrade your subscription or try again later.`;
|
error_message = `❗️Failed to sync your content with Khoj server. Requests were throttled. Upgrade your subscription or try again later.`;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
} else if (response.status === 404) {
|
} else if (response.status === 404) {
|
||||||
error_message = `❗️Could not connect to Khoj server. Ensure you can connect to it.`;
|
error_message = `❗️Could not connect to Khoj server. Ensure you can connect to it.`;
|
||||||
@@ -155,6 +185,13 @@ export async function updateContentIndex(vault: Vault, setting: KhojSetting, las
|
|||||||
return lastSync;
|
return lastSync;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function openKhojPluginSettings(): Promise<void>
|
||||||
|
{
|
||||||
|
const setting = this.app.setting;
|
||||||
|
await setting.open();
|
||||||
|
setting.openTabById('khoj');
|
||||||
|
}
|
||||||
|
|
||||||
export async function createNote(name: string, newLeaf = false): Promise<void> {
|
export async function createNote(name: string, newLeaf = false): Promise<void> {
|
||||||
try {
|
try {
|
||||||
let pathPrefix: string
|
let pathPrefix: string
|
||||||
|
|||||||
Reference in New Issue
Block a user