diff --git a/packages/frontend-v3/src/components/TimeBank/SectionedBar.vue b/packages/frontend-v3/src/components/TimeBank/SectionedBar.vue index b770d724..cc9398ed 100644 --- a/packages/frontend-v3/src/components/TimeBank/SectionedBar.vue +++ b/packages/frontend-v3/src/components/TimeBank/SectionedBar.vue @@ -1,34 +1,46 @@ \ No newline at end of file + +.bar-tooltip { + position: absolute; + top: calc(100% + 6px); + transform: translateX(-50%); + background-color: $primary-color; + color: $background-color; + border-radius: 8px; + padding: 8px 12px; + z-index: 10; + white-space: nowrap; + pointer-events: none; + font-size: 0.85rem; + line-height: 1.6; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); +} + diff --git a/packages/frontend-v3/src/components/TimeBank/VacationOverview.vue b/packages/frontend-v3/src/components/TimeBank/VacationOverview.vue index 1722ce2e..e03bd168 100644 --- a/packages/frontend-v3/src/components/TimeBank/VacationOverview.vue +++ b/packages/frontend-v3/src/components/TimeBank/VacationOverview.vue @@ -89,17 +89,29 @@ const vacationSections = computed(() => { const totalEarned = available + used + planned; const totalConsumed = used + planned; + const currentYear = new Date().getFullYear().toString(); + const usedDates = (vacation.value?.usedTransactions ?? []) + .filter(t => t.date.startsWith(currentYear)) + .map(t => t.date) + .sort(); + const plannedDates = (vacation.value?.plannedTransactions ?? []) + .filter(t => t.date.startsWith(currentYear)) + .map(t => t.date) + .sort(); + return [ { title: "Brukt", amount: used, color: "yellow", + dates: usedDates, + }, + { + title: "Planlagt", + amount: planned, + color: "blue", + dates: plannedDates, }, - { - title: "Planlagt", - amount: planned, - color: "blue", - }, { title: "Opptjente", amount: Math.max(0, available),