Merge branch 'feat/past-events' into 'master'

feat: Show if an event is in the past

See merge request les/gancio!51
This commit is contained in:
les 2024-11-02 15:43:25 +00:00
commit 0e4468a31d

View file

@ -1,10 +1,10 @@
<template> <template>
<article class='h-event' itemscope itemtype="https://schema.org/Event"> <article class='h-event' :class="{ 'is-past': isPast }" itemscope itemtype="https://schema.org/Event">
<nuxt-link :to='`/event/${event.slug || event.id}`' itemprop="url"> <nuxt-link :to='`/event/${event.slug || event.id}`' itemprop="url">
<MyPicture v-if='!hide_thumbs' :event='event' thumb :lazy='lazy' /> <MyPicture v-if='!hide_thumbs' :event='event' thumb :lazy='lazy' />
<v-icon class='float-right mr-1' v-if='event.parentId' color='success' v-text='mdiRepeat' /> <v-icon class='float-right mt-1 mr-1' v-if='event.parentId' color='success' v-text='mdiRepeat' />
<v-icon class='float-right mt-1 mr-1' v-if='isPast' color='warning' v-text='mdiTimerSandComplete'/>
<h1 class='title p-name' itemprop="name">{{ event.title }}</h1> <h1 class='title p-name' itemprop="name">{{ event.title }}</h1>
</nuxt-link> </nuxt-link>
@ -25,7 +25,6 @@
<span itemprop='name'>{{ event.place.name }}</span> <span itemprop='name'>{{ event.place.name }}</span>
</nuxt-link> </nuxt-link>
<div class='d-none' itemprop='address'>{{ event.place.address }}</div> <div class='d-none' itemprop='address'>{{ event.place.address }}</div>
</v-card-text> </v-card-text>
<v-card-actions class='flex-wrap'> <v-card-actions class='flex-wrap'>
@ -38,11 +37,11 @@
<script> <script>
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import MyPicture from '~/components/MyPicture' import MyPicture from '~/components/MyPicture'
import { mdiRepeat, mdiCalendar, mdiMapMarker } from '@mdi/js' import { mdiRepeat, mdiCalendar, mdiMapMarker, mdiTimerSandComplete } from '@mdi/js'
export default { export default {
data() { data() {
return { mdiRepeat, mdiMapMarker, mdiCalendar } return { mdiRepeat, mdiMapMarker, mdiCalendar, mdiTimerSandComplete }
}, },
components: { components: {
MyPicture MyPicture
@ -51,6 +50,16 @@ export default {
event: { type: Object, default: () => ({}) }, event: { type: Object, default: () => ({}) },
lazy: Boolean lazy: Boolean
}, },
computed: mapGetters(['hide_thumbs']) computed: {
...mapGetters(['hide_thumbs']),
isPast() {
const now = new Date()
if (this.event.end_datetime) {
return new Date(this.event.end_datetime*1000) < now
} else {
return new Date((3*60*60+this.event.start_datetime)*1000) < now
}
}
}
} }
</script> </script>