mirror of
https://github.com/amir20/dozzle.git
synced 2025-12-21 21:33:18 +01:00
* feat: moves to tailwindcss and better component library * update styles * creates toggle component * adds drop down component * cleans up components * removes unused components * uses tailwind for scroll view * removes table component * improves animation * cleans up more styles * uses more tailwind * cleans up more styles with flex * more styles * removes bulma * adds colors * updates modules * fixes bugs * stops importing styles.scss * more clean up * cleans up headers * cleans up title * fixes title * fixes mobile-hidden * fixes shadow * fixes colors * add tailwindcss/nesting * adds more colors * fixes more colors * updates colors * fixes colors * colors * fixes menu on left * menu and modal * menu and modal * fuzzy search * fixes menu on left * remove logs * cleans up search * adds host to search * remove outline from inputs * cleans up left search icon * removes unused styles * fixes docker * removes sass! * cleans up styles * Fixe smobile menu * fixes mobile menu * fixes typecheck * fixes seconday color * adds drop down for container * cleans header css * updates css * fixes other layouts * updates some tests * fixes border * fixes home screen font * fixes top header * fixes tests * fixes fieldlist * fixes complex * cleans up more * removes index * fixes tests * fixes tests * resolves conflicts
64 lines
1.9 KiB
Vue
64 lines
1.9 KiB
Vue
<template>
|
|
<div class="flex gap-x-2">
|
|
<div v-if="showStd">
|
|
<log-std :std="logEntry.std"></log-std>
|
|
</div>
|
|
<div v-if="showTimestamp">
|
|
<log-date :date="logEntry.date"></log-date>
|
|
</div>
|
|
<div class="flex">
|
|
<log-level :level="logEntry.level"></log-level>
|
|
</div>
|
|
<div>
|
|
<ul class="fields cursor-pointer space-x-4" :class="{ expanded }" @click="expandToggle()">
|
|
<li v-for="(value, name) in validValues" class="inline-block">
|
|
<span class="text-light">{{ name }}=</span><span class="font-bold" v-if="value === null"><null></span>
|
|
<template v-else-if="Array.isArray(value)">
|
|
<span class="font-bold" v-html="markSearch(JSON.stringify(value))"> </span>
|
|
</template>
|
|
<span class="font-bold" v-html="markSearch(value)" v-else></span>
|
|
</li>
|
|
<li class="text-light" v-if="Object.keys(validValues).length === 0">all values are hidden</li>
|
|
</ul>
|
|
<field-list :fields="logEntry.unfilteredMessage" :expanded="expanded" :visible-keys="visibleKeys"></field-list>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script lang="ts" setup>
|
|
import { type ComplexLogEntry } from "@/models/LogEntry";
|
|
|
|
const { markSearch } = useSearchFilter();
|
|
|
|
const { logEntry } = defineProps<{
|
|
logEntry: ComplexLogEntry;
|
|
visibleKeys: string[][];
|
|
}>();
|
|
|
|
const [expanded, expandToggle] = useToggle();
|
|
|
|
const validValues = computed(() => {
|
|
return Object.fromEntries(Object.entries(logEntry.message).filter(([_, value]) => value !== undefined));
|
|
});
|
|
</script>
|
|
|
|
<style lang="postcss" scoped>
|
|
.text-light {
|
|
@apply text-base-content/70;
|
|
}
|
|
.fields {
|
|
&:hover {
|
|
&::after {
|
|
content: "expand json";
|
|
@apply ml-2 inline-block text-secondary;
|
|
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
|
}
|
|
}
|
|
|
|
&.expanded:hover {
|
|
&::after {
|
|
content: "collapse json";
|
|
}
|
|
}
|
|
}
|
|
</style>
|