diff --git a/apps/desktop/src/components/meilisearch/MeilisearchOverviewPage.vue b/apps/desktop/src/components/meilisearch/MeilisearchOverviewPage.vue
index 6bc11de807..ca50a4c885 100644
--- a/apps/desktop/src/components/meilisearch/MeilisearchOverviewPage.vue
+++ b/apps/desktop/src/components/meilisearch/MeilisearchOverviewPage.vue
@@ -1,19 +1,32 @@
@@ -52,7 +101,10 @@ onMounted(() => void load());
{{ t("meilisearch.overview") }}
{{ t("meilisearch.overviewDescription") }}
-
+
+
+
+
@@ -120,5 +172,27 @@ onMounted(() => void load());
{{ sectionLabel(overview.topIndexes) }}
+
diff --git a/apps/desktop/src/components/meilisearch/MeilisearchSettingsPage.vue b/apps/desktop/src/components/meilisearch/MeilisearchSettingsPage.vue
index 9f74b99732..35ff72d654 100644
--- a/apps/desktop/src/components/meilisearch/MeilisearchSettingsPage.vue
+++ b/apps/desktop/src/components/meilisearch/MeilisearchSettingsPage.vue
@@ -10,6 +10,7 @@ import JsonTree from "@/components/common/JsonTree.vue";
import RedisJsonEditor from "@/components/redis/RedisJsonEditor.vue";
import * as api from "@/lib/backend/api";
import { useToast } from "@/composables/useToast";
+import { useConnectionStore } from "@/stores/connectionStore";
import { useQueryStore } from "@/stores/queryStore";
const props = defineProps<{
@@ -23,6 +24,7 @@ const emit = defineEmits<{
const { t } = useI18n();
const { toast } = useToast();
+const connectionStore = useConnectionStore();
const queryStore = useQueryStore();
const settingsText = ref("");
@@ -116,6 +118,11 @@ async function confirmDeleteIndex() {
await api.meilisearchDeleteIndex(props.connectionId, props.index);
toast(t("meilisearch.indexDeleted"));
deleteIndexConfirmOpen.value = false;
+ try {
+ await connectionStore.loadElasticsearchIndices(props.connectionId);
+ } catch (refreshError) {
+ console.warn("[DBX][meilisearch-index-refresh:error]", refreshError);
+ }
// The tab may have been closed while the delete was in flight.
if (ownerTabId && queryStore.tabs.some((tab) => tab.id === ownerTabId)) queryStore.closeTab(ownerTabId);
} catch (e: any) {
diff --git a/apps/desktop/src/components/meilisearch/__tests__/MeilisearchSettingsPage.spec.ts b/apps/desktop/src/components/meilisearch/__tests__/MeilisearchSettingsPage.spec.ts
index efc07d3a1e..1cba6523fc 100644
--- a/apps/desktop/src/components/meilisearch/__tests__/MeilisearchSettingsPage.spec.ts
+++ b/apps/desktop/src/components/meilisearch/__tests__/MeilisearchSettingsPage.spec.ts
@@ -7,6 +7,7 @@ const mocks = vi.hoisted(() => ({
deleteIndex: vi.fn(),
getIndexSettings: vi.fn(),
closeTab: vi.fn(),
+ refreshTree: vi.fn(),
toast: vi.fn(),
}));
@@ -51,6 +52,7 @@ vi.mock("@/components/common/QueryLoadingState.vue", () => ({ default: passthrou
vi.mock("@/components/common/JsonTree.vue", () => ({ default: passthrough("div") }));
vi.mock("@/components/redis/RedisJsonEditor.vue", () => ({ default: passthrough("div") }));
vi.mock("@/composables/useToast", () => ({ useToast: () => ({ toast: mocks.toast }) }));
+vi.mock("@/stores/connectionStore", () => ({ useConnectionStore: () => ({ loadElasticsearchIndices: mocks.refreshTree }) }));
vi.mock("@/lib/backend/api", () => ({
meilisearchGetIndexSettings: mocks.getIndexSettings,
meilisearchDeleteIndex: mocks.deleteIndex,
diff --git a/apps/desktop/src/components/sidebar/SidebarTreeItemDialogs.vue b/apps/desktop/src/components/sidebar/SidebarTreeItemDialogs.vue
index 9837f64694..b72f27a467 100644
--- a/apps/desktop/src/components/sidebar/SidebarTreeItemDialogs.vue
+++ b/apps/desktop/src/components/sidebar/SidebarTreeItemDialogs.vue
@@ -113,6 +113,12 @@ const {
cloneMongoCollectionLoading,
confirmCloneMongoCollection,
showCreateMongoIndexDialog,
+ showCreateMeilisearchIndexDialog,
+ meilisearchCreateIndexUid,
+ meilisearchCreateIndexPrimaryKey,
+ meilisearchCreateIndexError,
+ meilisearchCreateIndexLoading,
+ confirmCreateMeilisearchIndex,
mongoCreateIndexForm,
mongoCreateIndexFieldOptions,
mongoCreateIndexError,
@@ -208,6 +214,7 @@ watch(
showRenameMongoCollectionDialog,
showCloneMongoCollectionDialog,
showCreateMongoIndexDialog,
+ showCreateMeilisearchIndexDialog,
showMongoIndexManagerDialog,
showRedisDatabaseAliasDialog,
showCreateSchemaDialog,
@@ -401,6 +408,33 @@ watch(
+
+