From 32e9577d4ddabf14b6e548f8e944938482d9b926 Mon Sep 17 00:00:00 2001 From: Thorsten Bus Date: Mon, 2 Mar 2026 14:10:50 +0100 Subject: [PATCH] feat(ui): redesign slide grid with larger previews and add collapsible JSON log viewer - Slide grid now 1-2-3 columns (4x larger thumbnails) - Delete button left, fullscreen right, always visible (no hover) - Upload area appears inline as last grid item (no side-by-side layout) - SlideUploader supports inline mode for grid integration - Add recursive collapsible JsonTreeViewer component (no external deps) - Replace raw JSON pre tags in API logs with tree viewer --- .../js/Components/Blocks/InformationBlock.vue | 32 ++-- .../js/Components/Blocks/ModerationBlock.vue | 32 ++-- .../js/Components/Blocks/SermonBlock.vue | 32 ++-- resources/js/Components/JsonTreeViewer.vue | 157 ++++++++++++++++++ resources/js/Components/SlideGrid.vue | 60 +++++-- resources/js/Components/SlideUploader.vue | 104 +++++++++--- resources/js/Pages/ApiLogs/Index.vue | 16 +- 7 files changed, 341 insertions(+), 92 deletions(-) create mode 100644 resources/js/Components/JsonTreeViewer.vue diff --git a/resources/js/Components/Blocks/InformationBlock.vue b/resources/js/Components/Blocks/InformationBlock.vue index 3ac73db..0e02111 100644 --- a/resources/js/Components/Blocks/InformationBlock.vue +++ b/resources/js/Components/Blocks/InformationBlock.vue @@ -101,31 +101,27 @@ function handleSlideUpdated() { - -
- -
+ + + +
diff --git a/resources/js/Components/Blocks/ModerationBlock.vue b/resources/js/Components/Blocks/ModerationBlock.vue index d25e605..4bb387c 100644 --- a/resources/js/Components/Blocks/ModerationBlock.vue +++ b/resources/js/Components/Blocks/ModerationBlock.vue @@ -48,31 +48,27 @@ function handleSlideUpdated() {

- -
- -
+ + + +
diff --git a/resources/js/Components/Blocks/SermonBlock.vue b/resources/js/Components/Blocks/SermonBlock.vue index 71808e5..13fdc14 100644 --- a/resources/js/Components/Blocks/SermonBlock.vue +++ b/resources/js/Components/Blocks/SermonBlock.vue @@ -48,31 +48,27 @@ function handleSlideUpdated() {

- -
- -
+ + + +
diff --git a/resources/js/Components/JsonTreeViewer.vue b/resources/js/Components/JsonTreeViewer.vue new file mode 100644 index 0000000..0004703 --- /dev/null +++ b/resources/js/Components/JsonTreeViewer.vue @@ -0,0 +1,157 @@ + + + + + diff --git a/resources/js/Components/SlideGrid.vue b/resources/js/Components/SlideGrid.vue index 97c0ed2..10c7cbf 100644 --- a/resources/js/Components/SlideGrid.vue +++ b/resources/js/Components/SlideGrid.vue @@ -19,6 +19,10 @@ const props = defineProps({ type: Boolean, default: false, }, + showUploader: { + type: Boolean, + default: false, + }, }) const emit = defineEmits(['deleted', 'updated']) @@ -141,9 +145,9 @@ function isExpired(expireDate) {