1
0
mirror of https://github.com/amir20/dozzle.git synced 2025-12-21 13:23:07 +01:00

fix: fixes z-index on some menu and improves scroll progress fading (#3989)

This commit is contained in:
Amir Raminfar
2025-06-17 16:06:08 -07:00
committed by GitHub
parent 8d38f36745
commit a87908d957
7 changed files with 19 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="dropdown dropdown-end dropdown-hover"> <div class="dropdown dropdown-end dropdown-hover z-20">
<label tabindex="0" class="btn btn-ghost btn-sm w-10 gap-0.5 px-2"> <label tabindex="0" class="btn btn-ghost btn-sm w-10 gap-0.5 px-2">
<carbon:circle-solid class="text-red w-2.5" v-if="streamConfig.stderr" /> <carbon:circle-solid class="text-red w-2.5" v-if="streamConfig.stderr" />
<carbon:circle-solid class="text-blue w-2.5" v-if="streamConfig.stdout" /> <carbon:circle-solid class="text-blue w-2.5" v-if="streamConfig.stdout" />
@@ -10,7 +10,7 @@
@click="hideMenu" @click="hideMenu"
> >
<li v-if="!historical"> <li v-if="!historical">
<a @click.prevent="clear()"> <a @click="clear()">
<octicon:trash-24 /> {{ $t("toolbar.clear") }} <octicon:trash-24 /> {{ $t("toolbar.clear") }}
<KeyShortcut char="k" :modifiers="['shift', 'meta']" /> <KeyShortcut char="k" :modifiers="['shift', 'meta']" />
</a> </a>
@@ -19,13 +19,13 @@
<a :href="downloadUrl" download> <octicon:download-24 /> {{ $t("toolbar.download") }} </a> <a :href="downloadUrl" download> <octicon:download-24 /> {{ $t("toolbar.download") }} </a>
</li> </li>
<li v-if="!historical"> <li v-if="!historical">
<a @click.prevent="showSearch = true"> <a @click="showSearch = true">
<mdi:magnify /> {{ $t("toolbar.search") }} <mdi:magnify /> {{ $t("toolbar.search") }}
<KeyShortcut char="f" /> <KeyShortcut char="f" />
</a> </a>
</li> </li>
<li v-if="hasComplexLogs"> <li v-if="hasComplexLogs">
<a @click.prevent="showDrawer(LogAnalytics, { container }, 'lg')"> <a @click="showDrawer(LogAnalytics, { container }, 'lg')">
<ph:file-sql /> SQL Analytics <ph:file-sql /> SQL Analytics
<KeyShortcut char="f" :modifiers="['shift', 'meta']" /> <KeyShortcut char="f" :modifiers="['shift', 'meta']" />
</a> </a>
@@ -142,14 +142,14 @@
<template v-if="enableShell && !historical"> <template v-if="enableShell && !historical">
<li class="line"></li> <li class="line"></li>
<li> <li>
<a @click.prevent="showDrawer(Terminal, { container, action: 'attach' }, 'lg')"> <a @click="showDrawer(Terminal, { container, action: 'attach' }, 'lg')">
<ri:terminal-window-fill /> <ri:terminal-window-fill />
{{ $t("toolbar.attach") }} {{ $t("toolbar.attach") }}
<KeyShortcut char="a" :modifiers="['shift', 'meta']" /> <KeyShortcut char="a" :modifiers="['shift', 'meta']" />
</a> </a>
</li> </li>
<li> <li>
<a @click.prevent="showDrawer(Terminal, { container, action: 'exec' }, 'lg')"> <a @click="showDrawer(Terminal, { container, action: 'exec' }, 'lg')">
<material-symbols:terminal /> <material-symbols:terminal />
{{ $t("toolbar.shell") }} {{ $t("toolbar.shell") }}
<KeyShortcut char="e" :modifiers="['shift', 'meta']" /> <KeyShortcut char="e" :modifiers="['shift', 'meta']" />

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="dropdown dropdown-start dropdown-hover absolute -left-2 font-sans" v-show="container"> <div class="dropdown dropdown-start dropdown-hover absolute -left-2 z-10 font-sans" v-show="container">
<router-link <router-link
v-if="isSearching" v-if="isSearching"
@click="resetSearch()" @click="resetSearch()"

View File

@@ -26,6 +26,7 @@ const { containers } = useLoggingContext();
const list = ref<HTMLElement[]>([]); const list = ref<HTMLElement[]>([]);
let previousDate = new Date();
useIntersectionObserver( useIntersectionObserver(
list, list,
(entries) => { (entries) => {
@@ -36,9 +37,12 @@ useIntersectionObserver(
const time = entry.target.getAttribute("data-time"); const time = entry.target.getAttribute("data-time");
if (time) { if (time) {
const date = new Date(parseInt(time)); const date = new Date(parseInt(time));
if (+date === +previousDate) break;
previousDate = date;
const diff = new Date().getTime() - container.created.getTime(); const diff = new Date().getTime() - container.created.getTime();
progress.value = (date.getTime() - container.created.getTime()) / diff; progress.value = (date.getTime() - container.created.getTime()) / diff;
currentDate.value = date; currentDate.value = date;
break;
} }
} }
} }

View File

@@ -1,5 +1,5 @@
<template> <template>
<div class="dropdown dropdown-end dropdown-hover"> <div class="dropdown dropdown-end dropdown-hover z-20">
<label tabindex="0" class="btn btn-ghost btn-sm gap-0.5 px-2"> <label tabindex="0" class="btn btn-ghost btn-sm gap-0.5 px-2">
<carbon:circle-solid class="text-red w-2.5" v-if="streamConfig.stderr" /> <carbon:circle-solid class="text-red w-2.5" v-if="streamConfig.stderr" />
<carbon:circle-solid class="text-blue w-2.5" v-if="streamConfig.stdout" /> <carbon:circle-solid class="text-blue w-2.5" v-if="streamConfig.stdout" />
@@ -10,7 +10,7 @@
@click="hideMenu" @click="hideMenu"
> >
<li> <li>
<a @click.prevent="clear()"> <a @click="clear()">
<octicon:trash-24 /> {{ $t("toolbar.clear") }} <octicon:trash-24 /> {{ $t("toolbar.clear") }}
<KeyShortcut char="k" :modifiers="['shift', 'meta']" /> <KeyShortcut char="k" :modifiers="['shift', 'meta']" />
</a> </a>
@@ -19,7 +19,7 @@
<a :href="downloadUrl" download> <octicon:download-24 /> {{ $t("toolbar.download") }} </a> <a :href="downloadUrl" download> <octicon:download-24 /> {{ $t("toolbar.download") }} </a>
</li> </li>
<li> <li>
<a @click.prevent="showSearch = true"> <a @click="showSearch = true">
<mdi:magnify /> {{ $t("toolbar.search") }} <mdi:magnify /> {{ $t("toolbar.search") }}
<KeyShortcut char="f" /> <KeyShortcut char="f" />
</a> </a>

View File

@@ -7,7 +7,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render dates
</li> </li>
<li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry"> <li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry">
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch"> <div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch">
<div class="dropdown dropdown-start dropdown-hover absolute -left-2 font-sans"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em"> <div class="dropdown dropdown-start dropdown-hover absolute -left-2 z-10 font-sans"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
<circle cx="256" cy="256" r="48" fill="currentColor"></circle> <circle cx="256" cy="256" r="48" fill="currentColor"></circle>
<circle cx="256" cy="416" r="48" fill="currentColor"></circle> <circle cx="256" cy="416" r="48" fill="currentColor"></circle>
<circle cx="256" cy="96" r="48" fill="currentColor"></circle> <circle cx="256" cy="96" r="48" fill="currentColor"></circle>
@@ -41,7 +41,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render dates
</li> </li>
<li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry"> <li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry">
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch"> <div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch">
<div class="dropdown dropdown-start dropdown-hover absolute -left-2 font-sans"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em"> <div class="dropdown dropdown-start dropdown-hover absolute -left-2 z-10 font-sans"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
<circle cx="256" cy="256" r="48" fill="currentColor"></circle> <circle cx="256" cy="256" r="48" fill="currentColor"></circle>
<circle cx="256" cy="416" r="48" fill="currentColor"></circle> <circle cx="256" cy="416" r="48" fill="currentColor"></circle>
<circle cx="256" cy="96" r="48" fill="currentColor"></circle> <circle cx="256" cy="96" r="48" fill="currentColor"></circle>
@@ -75,7 +75,7 @@ exports[`<ContainerEventSource /> > render html correctly > should render messag
</li> </li>
<li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry"> <li data-v-cf9ff940="" id="1" data-time="1560336942459" class="group/entry">
<div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch"> <div data-v-cf9ff940="" class="relative flex w-full items-start gap-x-2 group-[.compact]:items-stretch">
<div class="dropdown dropdown-start dropdown-hover absolute -left-2 font-sans"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em"> <div class="dropdown dropdown-start dropdown-hover absolute -left-2 z-10 font-sans"><button tabindex="0" class="btn btn-square btn-xs border-base-content/20 bg-base-100 border opacity-0 shadow-sm group-hover/entry:opacity-90"><svg viewBox="0 0 512 512" width="1.2em" height="1.2em">
<circle cx="256" cy="256" r="48" fill="currentColor"></circle> <circle cx="256" cy="256" r="48" fill="currentColor"></circle>
<circle cx="256" cy="416" r="48" fill="currentColor"></circle> <circle cx="256" cy="416" r="48" fill="currentColor"></circle>
<circle cx="256" cy="96" r="48" fill="currentColor"></circle> <circle cx="256" cy="96" r="48" fill="currentColor"></circle>

View File

@@ -93,7 +93,7 @@ svg {
} }
.fadeout-leave-active { .fadeout-leave-active {
@apply transition-opacity; @apply transition-opacity duration-400;
} }
.fadeout-leave-to { .fadeout-leave-to {

View File

@@ -1,5 +1,5 @@
<template> <template>
<time :datetime="date.toISOString()" data-ci-skip>{{ text }}</time> <time :datetime="date.toISOString()">{{ text }}</time>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>