Skip to content

Commit 3af95c8

Browse files
authored
Merge pull request #1668 from jumpserver/pr@dev@fix_chen_query_grid_overflow
fix(chen): constrain query result grid overflow
2 parents 587e43c + 482549d commit 3af95c8

5 files changed

Lines changed: 24 additions & 19 deletions

File tree

‎ui/chen/components/DataGrid.client.vue‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ onBeforeUnmount(() => {
539539
<template>
540540
<div
541541
ref="container"
542-
class="ag-theme-balham chen-grid h-full w-full"
542+
class="ag-theme-balham chen-grid h-full min-h-0 min-w-0 w-full overflow-hidden"
543543
:class="{
544544
'chen-grid-striped': gridPreferences.stripedRows,
545545
'chen-grid-cell-borders': gridPreferences.showCellBorders
@@ -548,7 +548,7 @@ onBeforeUnmount(() => {
548548
@keydown.capture="handleKeyDown"
549549
>
550550
<AgGridVue
551-
class="h-full w-full"
551+
class="h-full min-h-0 min-w-0 w-full"
552552
theme="legacy"
553553
:column-defs="columnDefs"
554554
:row-data="rowData"

‎ui/chen/components/DataViewPanel.vue‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ function importCsvRows(rows: Array<Record<string, string | null>>) {
278278
</script>
279279

280280
<template>
281-
<div class="flex h-full min-h-0 flex-col">
281+
<div class="flex h-full min-h-0 min-w-0 flex-col">
282282
<div class="flex flex-wrap items-center gap-1 border-b border-default px-2 py-1">
283283
<div class="flex flex-wrap items-center gap-1">
284284
<button
@@ -302,7 +302,7 @@ function importCsvRows(rows: Array<Record<string, string | null>>) {
302302
</div>
303303
</div>
304304

305-
<div v-if="tab.activePanel === 'data'" class="flex min-h-0 flex-1 flex-col">
305+
<div v-if="tab.activePanel === 'data'" class="flex min-h-0 min-w-0 flex-1 flex-col">
306306
<div v-if="missingPrimaryKey" class="border-b border-warning/20 bg-warning/10 px-3 py-1.5 text-xs text-warning">
307307
{{ t("Chen.TableWithoutPrimaryKeyNotEditable") }}
308308
</div>
@@ -413,7 +413,7 @@ function importCsvRows(rows: Array<Record<string, string | null>>) {
413413
/>
414414
</div>
415415

416-
<div class="min-h-0 flex-1 overflow-auto">
416+
<div class="min-h-0 min-w-0 flex-1 overflow-hidden">
417417
<ChenDataGrid
418418
ref="dataGrid"
419419
:key="`${tab.id}:${tab.data?.fields?.map((field) => field.name).join(',') || ''}:${tab.data?.data?.length || 0}`"

‎ui/chen/components/QueryConsolePanel.vue‎

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,8 @@ defineExpose({ editorSnapshot });
355355
</script>
356356

357357
<template>
358-
<div ref="queryPanel" class="grid h-full min-h-0" :style="queryPanelRows">
359-
<div class="relative flex min-h-0 flex-col overflow-hidden px-3 pt-3 pb-[3px]">
358+
<div ref="queryPanel" class="grid h-full min-h-0 min-w-0 grid-cols-1" :style="queryPanelRows">
359+
<div class="relative flex min-h-0 min-w-0 flex-col overflow-hidden px-3 pt-3 pb-[3px]">
360360
<div class="mb-2 flex shrink-0 items-center gap-2">
361361
<UButton
362362
v-if="tab.state.inQuery || tab.state.canCancel || tab.executionPlanLoading"
@@ -430,11 +430,11 @@ defineExpose({ editorSnapshot });
430430
</UButton>
431431
</UDropdownMenu>
432432
</div>
433-
<div class="relative flex min-h-0 flex-1">
433+
<div class="relative flex min-h-0 min-w-0 flex-1">
434434
<ChenSqlEditor
435435
ref="sqlEditor"
436436
v-model="statementValue"
437-
class="min-h-0 flex-1"
437+
class="min-h-0 min-w-0 flex-1"
438438
:db-type="dbType"
439439
:completion-source="completionSource"
440440
:sql-keyword-case="sqlKeywordCase"
@@ -481,7 +481,7 @@ defineExpose({ editorSnapshot });
481481
<div class="absolute -inset-y-1.5 inset-x-0" />
482482
</div>
483483

484-
<div class="flex min-h-0 flex-col">
484+
<div class="flex min-h-0 min-w-0 flex-col">
485485
<div class="flex shrink-0 items-center gap-1 border-b border-default px-2 py-1">
486486
<button
487487
class="rounded-md px-2 py-1 text-xs"
@@ -500,7 +500,7 @@ defineExpose({ editorSnapshot });
500500
</div>
501501
<QueryResultTabs
502502
v-if="tab.activeBottomPane !== 'plan'"
503-
class="min-h-0 flex-1"
503+
class="min-h-0 min-w-0 flex-1"
504504
:result-tabs="tab.resultTabs"
505505
:active-result-tab-id="tab.activeResultTabId"
506506
closable
@@ -513,7 +513,12 @@ defineExpose({ editorSnapshot });
513513
@close="emit('closeResult', tab, $event)"
514514
@data-view-action="(result, action, data) => emit('dataViewAction', tab, result, action, data)"
515515
/>
516-
<ExecutionPlanTree v-else class="min-h-0 flex-1" :plan="tab.executionPlan" :loading="tab.executionPlanLoading" />
516+
<ExecutionPlanTree
517+
v-else
518+
class="min-h-0 min-w-0 flex-1"
519+
:plan="tab.executionPlan"
520+
:loading="tab.executionPlanLoading"
521+
/>
517522
</div>
518523

519524
<SqlSnippetSaveDialog

‎ui/chen/components/QueryResultTabs.vue‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ function cancelActiveResultChanges() {
132132
</script>
133133

134134
<template>
135-
<div class="flex min-h-0 flex-col">
135+
<div class="flex min-h-0 min-w-0 flex-col">
136136
<div class="shrink-0 border-b border-default px-2 py-1">
137137
<div class="flex items-center gap-1">
138138
<div
@@ -163,14 +163,14 @@ function cancelActiveResultChanges() {
163163
</div>
164164
</div>
165165

166-
<div v-if="!activeResult" class="grid min-h-0 flex-1 place-items-center px-6 text-sm text-muted">
166+
<div v-if="!activeResult" class="grid min-h-0 min-w-0 flex-1 place-items-center px-6 text-sm text-muted">
167167
<div class="text-center">
168168
<UIcon name="i-lucide-table-properties" class="mx-auto mb-2 size-5" />
169169
<p>{{ emptyMessage }}</p>
170170
</div>
171171
</div>
172172

173-
<div v-else-if="activeResult" :key="activeResult.id" class="flex min-h-0 flex-1 flex-col">
173+
<div v-else-if="activeResult" :key="activeResult.id" class="flex min-h-0 min-w-0 flex-1 flex-col">
174174
<div
175175
v-if="activeResultMissingPrimaryKey"
176176
class="border-b border-warning/20 bg-warning/10 px-3 py-1.5 text-xs text-warning"
@@ -220,14 +220,14 @@ function cancelActiveResultChanges() {
220220
</div>
221221
<div
222222
v-if="activeResult.affectedRows !== undefined"
223-
class="grid min-h-0 flex-1 place-items-center px-6 text-sm text-muted"
223+
class="grid min-h-0 min-w-0 flex-1 place-items-center px-6 text-sm text-muted"
224224
>
225225
<div class="text-center">
226226
<UIcon name="i-lucide-circle-check" class="mx-auto mb-2 size-6 text-success" />
227227
<p class="font-medium text-default">{{ t("Chen.StatementExecutedSuccessfully") }}</p>
228228
</div>
229229
</div>
230-
<div v-else class="min-h-0 flex-1 overflow-auto">
230+
<div v-else class="min-h-0 min-w-0 flex-1 overflow-hidden">
231231
<ChenDataGrid
232232
ref="dataGrid"
233233
:key="`${activeResult.id}:${activeResult.data?.fields?.map((field) => field.name).join(',') || ''}:${activeResult.data?.data?.length || 0}`"

‎ui/chen/workspaces/DatabaseSessionSurface.vue‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1992,7 +1992,7 @@ defineExpose({ focus });
19921992

19931993
<template>
19941994
<div class="relative isolate h-full min-h-0 overflow-hidden bg-[var(--workspace-surface-main)] text-[var(--app-fg)]">
1995-
<div v-if="session.ready.value" class="relative flex h-full min-h-0">
1995+
<div v-if="session.ready.value" class="relative flex h-full min-h-0 min-w-0">
19961996
<ResourceTreePanel
19971997
v-show="!isNarrowScreen || resourceTreeOpen"
19981998
class="z-40 max-md:absolute max-md:inset-y-0 max-md:left-0 max-md:shadow-xl"
@@ -2072,7 +2072,7 @@ defineExpose({ focus });
20722072
<span>{{ activeConnectionError }}</span>
20732073
</div>
20742074

2075-
<div v-if="workspace.activeWorkspaceTab.value" class="min-h-0 flex-1">
2075+
<div v-if="workspace.activeWorkspaceTab.value" class="min-h-0 min-w-0 flex-1 overflow-hidden">
20762076
<QueryConsolePanel
20772077
v-if="activeQueryTab"
20782078
ref="queryConsolePanel"

0 commit comments

Comments
 (0)