diff --git a/components/Event.vue b/components/Event.vue index ee2a8af4..68a27fef 100644 --- a/components/Event.vue +++ b/components/Event.vue @@ -8,7 +8,7 @@ v-card-text.body.pt-0.pb-0 time.dt-start.subtitle-1(:datetime='event.start_datetime|unixFormat("YYYY-MM-DD HH:mm")' itemprop="startDate" :content="event.start_datetime|unixFormat('YYYY-MM-DDTHH:mm')") {{ event|when }} .d-none.dt-end(itemprop="endDate" :content="event.end_datetime|unixFormat('YYYY-MM-DDTHH:mm')") {{event.end_datetime|unixFormat('YYYY-MM-DD HH:mm')}} - a.place.d-block.p-location.pl-0(text color='primary' @click="$emit('placeclick', event.place.id)" itemprop="location" :content="event.place.name") {{event.place.name}} + nuxt-link.place.d-block.p-location.pl-0(text color='primary' :to='`/p/${event.place.name}`' itemprop="location" :content="event.place.name") {{event.place.name}} .d-none(itemprop='location.address') {{event.place.address}} v-card-actions.pt-0.actions.justify-space-between diff --git a/pages/p/_place.vue b/pages/p/_place.vue new file mode 100644 index 00000000..e53aa3fe --- /dev/null +++ b/pages/p/_place.vue @@ -0,0 +1,37 @@ + + \ No newline at end of file diff --git a/server/api/controller/place.js b/server/api/controller/place.js new file mode 100644 index 00000000..7476455b --- /dev/null +++ b/server/api/controller/place.js @@ -0,0 +1,19 @@ +const dayjs = require('dayjs') +const Place = require('../models/place') +const eventController = require('./event') + + +module.exports = { + async getEvents (req, res) { + const name = req.params.placeName + const place = await Place.findOne({ where: { name }}) + if (!place) { + log.warn(`Place ${name} not found`) + return res.sendStatus(404) + } + const start = dayjs().unix() + const events = await eventController._select({ start, places: `${place.id}`, show_recurrent: true}) + + return res.json({ events, place }) + } +} \ No newline at end of file