From c89ecb73e3de74f472214c38715b2202857e2a42 Mon Sep 17 00:00:00 2001 From: Filip Gutica Date: Mon, 10 Feb 2025 21:02:31 -0800 Subject: [PATCH 01/22] fix: handle added event --- .../components/layout/DraggableGridLayout.vue | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue b/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue index ace7b54fa7..bf845fc2c9 100644 --- a/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue +++ b/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue @@ -25,7 +25,7 @@ diff --git a/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue b/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue index 873f2b10cb..53e493afe9 100644 --- a/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue +++ b/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue @@ -68,7 +68,7 @@ @@ -134,10 +134,10 @@ const props = withDefaults(defineProps<{ queryReady: boolean, refreshCounter: number, tileId: string | number, - canRemoveTile?: boolean, + editable?: boolean, }>(), { height: DEFAULT_TILE_HEIGHT, - canRemoveTile: false, + editable: false, }) const emit = defineEmits<{ @@ -265,13 +265,17 @@ const exportCsv = () => { height: v-bind('`${height}px`'); overflow: hidden; + &:hover { + .tile-header { + background: $kui-color-background-neutral-weakest; + } + } + .tile-header { align-items: center; display: flex; justify-content: space-between; - margin-bottom: var(--kui-space-30, $kui-space-30); - // So any "handlers" for the tile header includes the padding - padding-top: var(--kui-space-70, $kui-space-70); + padding: var(--kui-space-70, $kui-space-70) var(--kui-space-30, $kui-space-30) var(--kui-space-70, $kui-space-70) var(--kui-space-70, $kui-space-70); right: 0; width: 100%; @@ -334,6 +338,7 @@ const exportCsv = () => { .tile-content { flex-grow: 1; + margin: var(--kui-space-60, $kui-space-60); overflow: hidden; } } diff --git a/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue b/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue index 470afe1beb..6cba4dd4e8 100644 --- a/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue +++ b/packages/analytics/dashboard-renderer/src/components/layout/DraggableGridLayout.vue @@ -69,7 +69,7 @@ onMounted(() => { grid = GridStack.init({ column: props.gridSize.cols, cellHeight: props.tileHeight, - resizable: { handles: 'se' }, + resizable: { handles: 'se, sw' }, lazyLoad: true, handle: '.tile-header', @@ -120,7 +120,7 @@ watch(() => props.tiles, async (tiles) => { } } } -}) +}, { deep: true }) @@ -128,4 +128,18 @@ watch(() => props.tiles, async (tiles) => { :deep(.tile-header) { cursor: move; } +$rotate-values: ( + 'se': 0deg, + 'sw': 90deg, +); + +@each $direction, $rotate in $rotate-values { + :deep(.ui-resizable-#{$direction}) { + background-image: url('../../icons/arrows_more_down.svg'); + cursor: se-resize; + margin: 5px; + transform: rotate($rotate); + } +} + diff --git a/packages/analytics/dashboard-renderer/src/icons/arrows_more_down.svg b/packages/analytics/dashboard-renderer/src/icons/arrows_more_down.svg new file mode 100644 index 0000000000..68f24888d1 --- /dev/null +++ b/packages/analytics/dashboard-renderer/src/icons/arrows_more_down.svg @@ -0,0 +1,8 @@ + + + + + + + + From 1d3ffc57fcc90b5ca07a96718e4722780011a2f0 Mon Sep 17 00:00:00 2001 From: Filip Gutica Date: Wed, 12 Feb 2025 11:26:18 -0800 Subject: [PATCH 13/22] fix: styles --- .../dashboard-renderer/src/components/DashboardTile.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue b/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue index 53e493afe9..9d425b5590 100644 --- a/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue +++ b/packages/analytics/dashboard-renderer/src/components/DashboardTile.vue @@ -275,7 +275,7 @@ const exportCsv = () => { align-items: center; display: flex; justify-content: space-between; - padding: var(--kui-space-70, $kui-space-70) var(--kui-space-30, $kui-space-30) var(--kui-space-70, $kui-space-70) var(--kui-space-70, $kui-space-70); + padding: var(--kui-space-60, $kui-space-60) var(--kui-space-60, $kui-space-60) var(--kui-space-20, $kui-space-20) var(--kui-space-60, $kui-space-60); right: 0; width: 100%; @@ -338,7 +338,7 @@ const exportCsv = () => { .tile-content { flex-grow: 1; - margin: var(--kui-space-60, $kui-space-60); + margin: var(--kui-space-20, $kui-space-20) var(--kui-space-60, $kui-space-60) var(--kui-space-60, $kui-space-60) var(--kui-space-60, $kui-space-60); overflow: hidden; } } From 8ebfceba532dcb23232d3ad5155e15182273b311 Mon Sep 17 00:00:00 2001 From: Filip Gutica Date: Wed, 12 Feb 2025 12:51:39 -0800 Subject: [PATCH 14/22] fix: gridstack should drive removing widgets/tiles --- .../sandbox/pages/RendererDemo.vue | 6 ----- .../src/components/DashboardRenderer.vue | 9 ++++++-- .../components/layout/DraggableGridLayout.vue | 22 ++++++++++++++++--- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/packages/analytics/dashboard-renderer/sandbox/pages/RendererDemo.vue b/packages/analytics/dashboard-renderer/sandbox/pages/RendererDemo.vue index 0fa0ebf493..951f092a01 100644 --- a/packages/analytics/dashboard-renderer/sandbox/pages/RendererDemo.vue +++ b/packages/analytics/dashboard-renderer/sandbox/pages/RendererDemo.vue @@ -30,7 +30,6 @@ :config="dashboardConfig" :context="context" @edit-tile="onEditTile" - @remove-tile="onRemoveTile" @update-tiles="onUpdateTiles" >