fix(mongodb): move sidebar index actions to indexes group

This commit is contained in:
onenewcode authored and GitHub committed 2026-08-05 01:02:21 +08:00
1 parent e82c1aedf0
commit a2e1128670
5 files changed
+93 -47

No files matched your search

@@ -3577,7 +3577,7 @@ routeDangerDialog(showDropMongoIndexConfirm, () =>
routeDangerDialog(showDropAllMongoIndexesConfirm, () =>
dangerRequest({
title: t("contextMenu.dropAllIndexes"),
message: t("contextMenu.confirmDropMongoAllIndexesMessage", { name: activeNode.value.label }),
message: t("contextMenu.confirmDropMongoAllIndexesMessage", { name: activeNode.value.tableName || activeNode.value.label }),
detailsText: t("contextMenu.confirmDropMongoAllIndexesDetails"),
sql: mongoDropAllIndexesPreview(activeNode.value),
confirmLabel: t("contextMenu.dropAllIndexes"),
@@ -4248,17 +4248,13 @@ function buildSpecialSidebarMenu(context: SidebarMenuFactoryContext): boolean {
}
if (canDropMongoDatabase.value) {
items.push({ label: "", separator: true });
items.push(
moreActionsSubmenu([
{
label: t("contextMenu.dropDatabase"),
action: dropDatabase,
icon: Trash2,
shortcut: shortcutDelete,
variant: "destructive" as const,
},
]),
);
items.push({
label: t("contextMenu.dropDatabase"),
action: dropDatabase,
icon: Trash2,
shortcut: shortcutDelete,
variant: "destructive" as const,
});
}
return true;
}
@@ -4292,17 +4288,9 @@ function buildSpecialSidebarMenu(context: SidebarMenuFactoryContext): boolean {
shortcut: shortcutRename,
});
}
if (canCreateMongoIndex.value || canDropAllMongoIndexes.value || canDropMongoCollection.value) {
if (canDropMongoCollection.value) {
items.push({ label: "", separator: true });
if (canCreateMongoIndex.value) {
items.push({ label: t("contextMenu.createMongoIndex"), action: openCreateMongoIndexDialog, icon: Plus });
}
if (canDropAllMongoIndexes.value) {
items.push({ label: t("contextMenu.dropAllIndexes"), action: dropAllMongoIndexes, icon: Trash2, variant: "destructive" as const });
}
if (canDropMongoCollection.value) {
items.push({ label: t("contextMenu.dropCollection"), action: dropMongoCollection, icon: Trash2, shortcut: shortcutDelete, variant: "destructive" as const });
}
items.push({ label: t("contextMenu.dropCollection"), action: dropMongoCollection, icon: Trash2, shortcut: shortcutDelete, variant: "destructive" as const });
}
return true;
}
@@ -4569,7 +4557,8 @@ function buildObjectGroupSidebarMenu(context: SidebarMenuFactoryContext): boolea
if (isGroupLabel(node)) {
const mysqlObjectTemplate = node.connectionId ? mysqlObjectTemplateForGroup(connectionStore.getConfig(node.connectionId), node) : null;
const hasMongoCreateIndexAction = node.type === "group-indexes" && canCreateMongoIndex.value;
const hasGroupCreateAction = (node.type === "group-tables" && canCreateTable.value) || (node.type === "group-views" && !!node.connectionId && !!node.database) || !!mysqlObjectTemplate || hasMongoCreateIndexAction;
const hasMongoDropAllIndexesAction = node.type === "group-indexes" && canDropAllMongoIndexes.value;
const hasGroupAction = (node.type === "group-tables" && canCreateTable.value) || (node.type === "group-views" && !!node.connectionId && !!node.database) || !!mysqlObjectTemplate || hasMongoCreateIndexAction || hasMongoDropAllIndexesAction;
const canLoadAllObjectGroup = node.type === "group-tables" || node.type === "group-views" || node.type === "group-materialized-views";
if (node.type === "group-tables" && canCreateTable.value) {
items.push({ label: t("contextMenu.createTable"), action: createTable, icon: Plus });
@@ -4589,7 +4578,11 @@ function buildObjectGroupSidebarMenu(context: SidebarMenuFactoryContext): boolea
if (hasMongoCreateIndexAction) {
items.push({ label: t("contextMenu.createMongoIndex"), action: openCreateMongoIndexDialog, icon: Plus });
}
if (hasGroupCreateAction) {
if (hasMongoDropAllIndexesAction) {
if (hasMongoCreateIndexAction) items.push({ label: "", separator: true });
items.push({ label: t("contextMenu.dropAllIndexes"), action: dropAllMongoIndexes, icon: Trash2, variant: "destructive" as const });
}
if (hasGroupAction) {
items.push({ label: "", separator: true });
}
if (node.type === "group-extensions") {