diff --git a/packages/types/engines.d.ts b/packages/types/engines.d.ts index a1a864c99..4a848af9c 100644 --- a/packages/types/engines.d.ts +++ b/packages/types/engines.d.ts @@ -127,11 +127,21 @@ export interface SummaryColumn { header: string; dataType: 'string' | 'number' | 'bytes'; } -export interface ServerSummaryDatabase {} +export interface ServerSummaryDatabases { + rows: any[]; + columns: DatabaseColumn[]; +} + +export type DatabaseColumn = { + header: string; + fieldName: string; + type: 'data' | 'fileSize'; +}; + export interface ServerSummary { processes: DatabaseProcess[]; variables: DatabaseVariable[]; - databases: ServerSummaryDatabase[]; + databases: ServerSummaryDatabases; } export type CollectionAggregateFunction = 'count' | 'sum' | 'avg' | 'min' | 'max'; @@ -292,6 +302,8 @@ export interface EngineDriver extends FilterBeha listDatabases(dbhan: DatabaseHandle): Promise< { name: string; + sizeOnDisk?: number; + empty?: boolean; }[] >; loadKeys(dbhan: DatabaseHandle, root: string, filter?: string): Promise; diff --git a/packages/web/src/tabs/ServerSummaryTab.svelte b/packages/web/src/tabs/ServerSummaryTab.svelte index 3043ac358..6d828d7ad 100644 --- a/packages/web/src/tabs/ServerSummaryTab.svelte +++ b/packages/web/src/tabs/ServerSummaryTab.svelte @@ -101,7 +101,7 @@ { label: 'Databases', component: SummaryDatabases, - props: { databases: summary.databases || [] }, + props: { rows: summary.databases?.rows ?? [], columns: summary.databases?.columns ?? [] }, }, ]} /> diff --git a/packages/web/src/widgets/SummaryDatabases.svelte b/packages/web/src/widgets/SummaryDatabases.svelte index cd576fe1e..9fe06bcb8 100644 --- a/packages/web/src/widgets/SummaryDatabases.svelte +++ b/packages/web/src/widgets/SummaryDatabases.svelte @@ -1,77 +1,21 @@
- - - profileOff(row)}>Profile Off - | - profileFiltered(row)}>Profile Filtered - | - profileAll(row)}>Profile All - - - - {row.name} - - - - {formatFileSize(row.sizeOnDisk)} - - - - {formatFileSize(row.dataSize)} - - - - {formatFileSize(row.indexSize)} - - +
diff --git a/plugins/dbgate-plugin-mongo/src/backend/driver.js b/plugins/dbgate-plugin-mongo/src/backend/driver.js index c886d5c18..9be451ddf 100644 --- a/plugins/dbgate-plugin-mongo/src/backend/driver.js +++ b/plugins/dbgate-plugin-mongo/src/backend/driver.js @@ -643,7 +643,14 @@ const driver = { const data = { processes, variables, - databases, + databases: { + rows: databases, + columns: [ + { header: 'Name', fieldName: 'name' }, + { header: 'Size on disk', fieldName: 'sizeOnDisk' }, + { header: 'Empty', fieldName: 'empty' }, + ], + }, }; return data;