Skip to content

Commit e3e22ae

Browse files
committed
feat: replace log level chips with VSelect dropdown in LoggingView and adjust layout spacing
1 parent 0ca2f20 commit e3e22ae

1 file changed

Lines changed: 51 additions & 25 deletions

File tree

src/views/system/LoggingView.vue

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ const logColorMap: Record<string, string> = {
8484
const isDarkTheme = computed(() => theme.global.current.value.dark)
8585
const isTransparentTheme = computed(() => theme.name.value === 'transparent')
8686
const normalizedSearchQuery = computed(() => (searchQuery.value ?? '').trim().toLowerCase())
87-
const { availableHeight } = useAvailableHeight(136, 320)
87+
const { availableHeight } = useAvailableHeight(96, 320)
8888
8989
const loggingViewStyle = computed(() => ({
9090
blockSize: display.mdAndUp.value ? `${availableHeight.value}px` : '100%',
@@ -535,6 +535,37 @@ onUnmounted(() => {
535535
:style="loggingViewStyle"
536536
>
537537
<div class="logging-toolbar px-3">
538+
<VSelect
539+
v-model="selectedLevel"
540+
:items="levelOptions"
541+
density="compact"
542+
variant="plain"
543+
hide-details
544+
class="logging-level-select"
545+
:menu-props="{ width: 'auto' }"
546+
>
547+
<template #selection="{ item }">
548+
<span
549+
:class="item.value === 'ALL' ? 'text-primary' : `text-${logColorMap[item.value] || 'secondary'}`"
550+
class="font-weight-medium"
551+
>
552+
{{ item.value === 'ALL' ? t('logging.allLevels') : item.value }}
553+
</span>
554+
</template>
555+
<template #item="{ props, item }">
556+
<VListItem v-bind="props" density="compact">
557+
<template #title>
558+
<span
559+
:class="item.value === 'ALL' ? 'text-primary' : `text-${logColorMap[item.value] || 'secondary'}`"
560+
class="font-weight-medium"
561+
>
562+
{{ item.value === 'ALL' ? t('logging.allLevels') : item.value }}
563+
</span>
564+
</template>
565+
</VListItem>
566+
</template>
567+
</VSelect>
568+
538569
<VTextField
539570
v-model="searchQuery"
540571
class="logging-search"
@@ -559,20 +590,6 @@ onUnmounted(() => {
559590
</VBtn>
560591
</div>
561592

562-
<div class="logging-levels px-3">
563-
<VChip
564-
v-for="level in levelOptions"
565-
:key="level"
566-
size="small"
567-
variant="tonal"
568-
:color="selectedLevel === level ? (level === 'ALL' ? 'primary' : logColorMap[level] || 'secondary') : undefined"
569-
:class="{ 'logging-level-chip--active': selectedLevel === level }"
570-
@click="selectedLevel = level"
571-
>
572-
{{ level === 'ALL' ? t('logging.allLevels') : level }}
573-
</VChip>
574-
</div>
575-
576593
<div ref="logViewportRef" class="logging-shell is-wrap" @scroll.passive="handleScroll">
577594
<div v-if="!isMounted" class="logging-loading-overlay">
578595
<LoadingBanner :text="t('logging.initializing') + ' ...'" />
@@ -642,7 +659,6 @@ onUnmounted(() => {
642659
display: flex;
643660
flex-direction: column;
644661
block-size: 100%;
645-
gap: 0.75rem;
646662
min-block-size: 20rem;
647663
}
648664
@@ -666,12 +682,12 @@ onUnmounted(() => {
666682
display: flex;
667683
flex-wrap: wrap;
668684
align-items: center;
669-
gap: 0.75rem;
685+
gap: 0.5rem;
670686
}
671687
672688
.logging-search {
673-
flex: 1 1 18rem;
674-
min-inline-size: 14rem;
689+
flex: 1 1 9rem;
690+
min-inline-size: 5rem;
675691
}
676692
677693
.logging-stream-action {
@@ -697,14 +713,24 @@ onUnmounted(() => {
697713
padding-inline-start: 0;
698714
}
699715
700-
.logging-levels {
701-
display: flex;
702-
flex-wrap: wrap;
703-
gap: 0.5rem;
716+
.logging-level-select {
717+
flex: 0 0 7rem;
718+
min-inline-size: 7rem;
719+
}
720+
721+
.logging-level-select :deep(.v-field) {
722+
border-radius: 0;
723+
background: transparent !important;
724+
box-shadow: none !important;
725+
}
726+
727+
.logging-level-select :deep(.v-field__outline),
728+
.logging-level-select :deep(.v-field__overlay) {
729+
display: none;
704730
}
705731
706-
.logging-level-chip--active {
707-
box-shadow: inset 0 0 0 1px rgba(var(--v-theme-on-surface), 0.08);
732+
.logging-level-select :deep(.v-field__input) {
733+
padding-inline: 0;
708734
}
709735
710736
.logging-shell {

0 commit comments

Comments
 (0)