mirror of
https://github.com/ckaczor/HomeMonitor.git
synced 2026-01-13 17:22:54 -05:00
Add excerpt display for national days
This commit is contained in:
@@ -4,6 +4,9 @@
|
|||||||
import { setNextDayTimer } from '@/nextDayTimer';
|
import { setNextDayTimer } from '@/nextDayTimer';
|
||||||
import NationalDayEntry from '@/models/calendar/national-day';
|
import NationalDayEntry from '@/models/calendar/national-day';
|
||||||
|
|
||||||
|
const dialog = ref(false);
|
||||||
|
const selectedNationalDay = ref({} as NationalDayEntry);
|
||||||
|
|
||||||
const calendarStore = useCalendarStore();
|
const calendarStore = useCalendarStore();
|
||||||
|
|
||||||
const nationalDays = ref([] as NationalDayEntry[]);
|
const nationalDays = ref([] as NationalDayEntry[]);
|
||||||
@@ -11,7 +14,7 @@
|
|||||||
|
|
||||||
function loadNationalDays() {
|
function loadNationalDays() {
|
||||||
calendarStore.getNationalDays().then((data) => {
|
calendarStore.getNationalDays().then((data) => {
|
||||||
nationalDays.value = data.sort((a, b) => a.name.localeCompare(b.name));
|
nationalDays.value = data;
|
||||||
|
|
||||||
nationalDaysReady.value = true;
|
nationalDaysReady.value = true;
|
||||||
|
|
||||||
@@ -19,21 +22,50 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function onNationalDayClick(nationalDay: NationalDayEntry) {
|
||||||
|
selectedNationalDay.value = nationalDay;
|
||||||
|
dialog.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
loadNationalDays();
|
loadNationalDays();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
<span>
|
||||||
<div
|
<div
|
||||||
class="national-days"
|
class="national-days"
|
||||||
v-if="nationalDaysReady">
|
v-if="nationalDaysReady">
|
||||||
<ul>
|
<ul>
|
||||||
<li
|
<li
|
||||||
class="national-day"
|
class="national-day"
|
||||||
v-for="nationalDay in nationalDays">
|
v-for="nationalDay in nationalDays"
|
||||||
{{ nationalDay.name }}
|
@click="onNationalDayClick(nationalDay)">
|
||||||
|
<span>{{ nationalDay.name }}</span>
|
||||||
|
<v-icon
|
||||||
|
class="national-day-arrow"
|
||||||
|
icon="mdi-menu-right" />
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<v-dialog
|
||||||
|
v-model="dialog"
|
||||||
|
width="50%"
|
||||||
|
theme="dark"
|
||||||
|
opacity="0.85"
|
||||||
|
scrim="black">
|
||||||
|
<v-card
|
||||||
|
:text="selectedNationalDay.excerpt"
|
||||||
|
:title="selectedNationalDay.name + ' - Excerpt'">
|
||||||
|
<template v-slot:actions>
|
||||||
|
<v-btn
|
||||||
|
class="ms-auto"
|
||||||
|
text="Close"
|
||||||
|
@click="dialog = false"></v-btn>
|
||||||
|
</template>
|
||||||
|
</v-card>
|
||||||
|
</v-dialog>
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@@ -43,7 +75,12 @@
|
|||||||
padding: 10px;
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.national-day:not(:last-child) {
|
.national-day {
|
||||||
padding-bottom: 2px;
|
list-style-type: none;
|
||||||
|
line-height: 1.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.national-day-arrow {
|
||||||
|
float: right;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
export default interface NationalDayEntry {
|
export default interface NationalDayEntry {
|
||||||
name: string;
|
name: string;
|
||||||
url: string;
|
url: string;
|
||||||
except: string;
|
excerpt: string;
|
||||||
type: string;
|
type: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
<div
|
<div
|
||||||
class="kiosk-temperature text-center pb-3"
|
class="kiosk-temperature text-center pb-3"
|
||||||
v-if="weatherStore.current">
|
v-if="weatherStore.current">
|
||||||
{{ weatherStore.current?.Temperature?.toFixed(0) + '°F' }}
|
{{ weatherStore.current?.Temperature?.toFixed(0) + '°' }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="kiosk-humidity text-center pb-3"
|
class="kiosk-humidity text-center pb-3"
|
||||||
@@ -201,16 +201,17 @@
|
|||||||
|
|
||||||
.kiosk-content {
|
.kiosk-content {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
max-height: 100vh;
|
max-height: calc(100vh - 30px);
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
gap: 10px;
|
gap: 10px;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 1fr);
|
grid-template-columns: repeat(3, 1fr);
|
||||||
grid-template-rows: repeat(3, auto);
|
grid-template-rows: repeat(4, 25%);
|
||||||
grid-auto-flow: row;
|
grid-auto-flow: row;
|
||||||
grid-template-areas:
|
grid-template-areas:
|
||||||
'kiosk-calendar kiosk-national-days kiosk-national-days'
|
'kiosk-calendar kiosk-national-days kiosk-national-days'
|
||||||
'kiosk-calendar . .'
|
'kiosk-calendar . .'
|
||||||
|
'kiosk-calendar . .'
|
||||||
'kiosk-calendar . .';
|
'kiosk-calendar . .';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,12 +226,12 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.kiosk-temperature {
|
.kiosk-temperature {
|
||||||
font-size: 2.8rem;
|
font-size: 2.9rem;
|
||||||
grid-area: kiosk-temperature;
|
grid-area: kiosk-temperature;
|
||||||
}
|
}
|
||||||
|
|
||||||
.kiosk-humidity {
|
.kiosk-humidity {
|
||||||
font-size: 2.8rem;
|
font-size: 2.9rem;
|
||||||
grid-area: kiosk-humidity;
|
grid-area: kiosk-humidity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user