fix(sidebar): remove duplicate Dameng schema filter entry
This commit is contained in:
3 files changed
+78
-16
No files matched your search
@@ -63,7 +63,9 @@ import { useDatabaseOptions } from "@/composables/useDatabaseOptions";
|
||||
import type { ColumnInfo, DatabaseType, TreeNode, TreeNodeType } from "@/types/database";
|
||||
import * as api from "@/lib/backend/api";
|
||||
import { resolveDefaultDatabase } from "@/lib/database/defaultDatabase";
|
||||
import { connectionUsesVisibleSchemaFilter } from "@/lib/database/visibleDatabases";
|
||||
import { canTreeNodePin, canTreeNodeShowExpander } from "@/lib/sidebar/sidebarTreeItemLayout";
|
||||
import { sidebarConnectionVisibleFilterMenu } from "@/lib/sidebar/sidebarVisibleFilterMenu";
|
||||
import { objectTypesForGroupNode } from "@/lib/table/tableTree";
|
||||
import { loadSidebarObjectGroup } from "@/lib/sidebar/sidebarObjectGroupRouting";
|
||||
import { mysqlObjectTemplateForGroup } from "@/lib/sidebar/mysqlObjectTemplates";
|
||||
@@ -3715,23 +3717,15 @@ function buildConnectionSidebarMenu(context: SidebarMenuFactoryContext): boolean
|
||||
icon: RefreshCw,
|
||||
shortcut: shortcutRefresh,
|
||||
});
|
||||
if (canConfigureVisibleDatabases.value) {
|
||||
const visibleFilterMenu = sidebarConnectionVisibleFilterMenu({
|
||||
canConfigureVisibleDatabases: canConfigureVisibleDatabases.value,
|
||||
canConfigureVisibleSchemas: canConfigureVisibleSchemas.value,
|
||||
databaseFilterUsesSchemas: connectionUsesVisibleSchemaFilter(node.connectionId ? connectionStore.getConfig(node.connectionId) : undefined),
|
||||
});
|
||||
for (const entry of visibleFilterMenu) {
|
||||
items.push({
|
||||
label: t("contextMenu.configureVisibleObjects"),
|
||||
action: openVisibleDatabasesDialog,
|
||||
icon: ListFilter,
|
||||
});
|
||||
} else if (canConfigureVisibleSchemas.value) {
|
||||
items.push({
|
||||
label: t("visibleSchemas.title"),
|
||||
action: openVisibleSchemasDialog,
|
||||
icon: ListFilter,
|
||||
});
|
||||
}
|
||||
if (canConfigureVisibleSchemas.value) {
|
||||
items.push({
|
||||
label: t("visibleSchemas.title"),
|
||||
action: openVisibleSchemasDialog,
|
||||
label: t(entry.label === "schemas" ? "visibleSchemas.title" : "contextMenu.configureVisibleObjects"),
|
||||
action: entry.target === "visible-schemas" ? openVisibleSchemasDialog : openVisibleDatabasesDialog,
|
||||
icon: ListFilter,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
export type SidebarVisibleFilterMenuEntry = {
|
||||
label: "objects" | "schemas";
|
||||
target: "visible-databases" | "visible-schemas";
|
||||
};
|
||||
|
||||
export function sidebarConnectionVisibleFilterMenu(options: { canConfigureVisibleDatabases: boolean; canConfigureVisibleSchemas: boolean; databaseFilterUsesSchemas: boolean }): SidebarVisibleFilterMenuEntry[] {
|
||||
if (!options.canConfigureVisibleDatabases) {
|
||||
return options.canConfigureVisibleSchemas ? [{ label: "schemas", target: "visible-schemas" }] : [];
|
||||
}
|
||||
|
||||
if (options.databaseFilterUsesSchemas) {
|
||||
return [{ label: "schemas", target: "visible-databases" }];
|
||||
}
|
||||
|
||||
const entries: SidebarVisibleFilterMenuEntry[] = [{ label: "objects", target: "visible-databases" }];
|
||||
if (options.canConfigureVisibleSchemas) entries.push({ label: "schemas", target: "visible-schemas" });
|
||||
return entries;
|
||||
}
|
||||
Reference in new issue
Block a user