diff --git a/components/Calendar.vue b/components/Calendar.vue
index 8426f0c0..899fd16b 100644
--- a/components/Calendar.vue
+++ b/components/Calendar.vue
@@ -9,6 +9,7 @@
@update:from-page='updatePage'
:locale='$i18n.locale'
:attributes='attributes'
+ :timezone='settings.instance_timezone'
transition='fade'
aria-label='Calendar'
is-expanded
@@ -26,8 +27,8 @@ export default {
events: { type: Array, default: () => [] }
},
data () {
- const month = dayjs().month() + 1
- const year = dayjs().year()
+ const month = dayjs.tz().month() + 1
+ const year = dayjs.tz().year()
return {
selectedDate: null,
page: { month, year }
@@ -42,9 +43,7 @@ export default {
methods: {
...mapActions(['updateEvents', 'showPastEvents']),
updatePage (page) {
- return new Promise((resolve, reject) => {
this.$emit('monthchange', page)
- })
},
click (day) {
this.$emit('dayclick', day)
diff --git a/pages/add/DateInput.vue b/pages/add/DateInput.vue
index b6d605ef..0cc27494 100644
--- a/pages/add/DateInput.vue
+++ b/pages/add/DateInput.vue
@@ -78,8 +78,7 @@ export default {
todayEvents () {
const start = dayjs(this.value.from).startOf('day').unix()
const end = dayjs(this.value.from).endOf('day').unix()
- const events = this.events.filter(e => e.start_datetime >= start && e.start_datetime <= end)
- return events
+ return this.events.filter(e => e.start_datetime >= start && e.start_datetime <= end)
},
attributes () {
return attributesFromEvents(this.events, this.tags)
@@ -92,10 +91,10 @@ export default {
},
fromHour () {
- return this.value.from && this.value.fromHour ? dayjs(this.value.from).format('HH:mm') : null
+ return this.value.from && this.value.fromHour ? dayjs.tz(this.value.from).format('HH:mm') : null
},
dueHour () {
- return this.value.due && this.value.dueHour ? dayjs(this.value.due).format('HH:mm') : null
+ return this.value.due && this.value.dueHour ? dayjs.tz(this.value.due).format('HH:mm') : null
},
hourList () {
const hourList = []
@@ -196,7 +195,7 @@ export default {
} else if (what === 'fromHour') {
if (value) {
const [hour, minute] = value.split(':')
- const from = dayjs(this.value.from).hour(hour).minute(minute).second(0)
+ const from = dayjs.tz(this.value.from).hour(hour).minute(minute).second(0)
this.$emit('input', { ...this.value, from, fromHour: true })
} else {
this.$emit('input', { ...this.value, fromHour: false })
@@ -204,7 +203,7 @@ export default {
} else if (what === 'dueHour') {
if (value) {
const [hour, minute] = value.split(':')
- const fromHour = dayjs(this.value.from).hour()
+ const fromHour = dayjs.tz(this.value.from).hour()
// add a day
let due = dayjs(this.value.from)
@@ -226,20 +225,20 @@ export default {
let from = value.start
let due = value.end
if (this.value.fromHour) {
- from = dayjs(value.start).hour(dayjs(this.value.from).hour())
+ from = dayjs.tz(value.start).hour(dayjs.tz(this.value.from).hour())
}
if (this.value.dueHour) {
- due = dayjs(value.end).hour(dayjs(this.value.due).hour())
+ due = dayjs.tz(value.end).hour(dayjs.tz(this.value.due).hour())
}
this.$emit('input', { ...this.value, from, due })
} else {
let from = value
let due = this.value.due
if (this.value.fromHour) {
- from = dayjs(value).hour(dayjs(this.value.from).hour())
+ from = dayjs.tz(value).hour(dayjs.tz(this.value.from).hour())
}
if (this.value.dueHour && this.value.due) {
- due = dayjs(value).hour(dayjs(this.value.due).hour())
+ due = dayjs.tz(value).hour(dayjs.tz(this.value.due).hour())
}
this.$emit('input', { ...this.value, from, due })
}
diff --git a/pages/add/_edit.vue b/pages/add/_edit.vue
index d2563df6..81a7bc65 100644
--- a/pages/add/_edit.vue
+++ b/pages/add/_edit.vue
@@ -84,7 +84,7 @@ export default {
validate ({ store }) {
return (store.state.auth.loggedIn || store.state.settings.allow_anon_event)
},
- async asyncData ({ params, $axios, error, store }) {
+ async asyncData ({ params, $axios, error }) {
if (params.edit) {
const data = { event: { place: {}, media: [] } }
data.id = params.edit
@@ -101,8 +101,8 @@ export default {
data.event.place.address = event.place.address || ''
data.date = {
recurrent: event.recurrent,
- from: new Date(dayjs.unix(event.start_datetime)),
- due: new Date(dayjs.unix(event.end_datetime)),
+ from: dayjs.unix(event.start_datetime).toDate(),
+ due: dayjs.unix(event.end_datetime).toDate(),
multidate: event.multidate,
fromHour: true,
dueHour: true
@@ -118,8 +118,8 @@ export default {
return {}
},
data () {
- const month = dayjs().month() + 1
- const year = dayjs().year()
+ const month = dayjs.tz().month() + 1
+ const year = dayjs.tz().year()
return {
mdiFileImport, mdiFormatTitle, mdiTagMultiple, mdiCloseCircle,
valid: false,
diff --git a/pages/index.vue b/pages/index.vue
index 94225393..aaeb53d1 100644
--- a/pages/index.vue
+++ b/pages/index.vue
@@ -1,26 +1,25 @@
- v-container#home(fluid)
+v-container#home(fluid)
- //- Announcements
- #announcements.mx-1.mt-1(v-if='announcements.length')
- Announcement(v-for='announcement in announcements' :key='`a_${announcement.id}`' :announcement='announcement')
+ //- Announcements
+ #announcements.mx-1.mt-1(v-if='announcements.length')
+ Announcement(v-for='announcement in announcements' :key='`a_${announcement.id}`' :announcement='announcement')
- //- Calendar and search bar
- v-row.pt-0.pt-sm-2.pl-0.pl-sm-2
- #calh.col-xl-5.col-lg-5.col-md-7.col-sm-12.col-xs-12.pa-4.pa-sm-3
- //- this is needed as v-calendar does not support SSR
- //- https://github.com/nathanreyes/v-calendar/issues/336
- client-only(placeholder='Calendar unavailable without js')
- Calendar(@dayclick='dayChange' @monthchange='monthChange' :events='filteredEvents')
+ //- Calendar and search bar
+ v-row.pt-0.pt-sm-2.pl-0.pl-sm-2
+ #calh.col-xl-5.col-lg-5.col-md-7.col-sm-12.col-xs-12.pa-4.pa-sm-3
+ //- this is needed as v-calendar does not support SSR
+ //- https://github.com/nathanreyes/v-calendar/issues/336
+ client-only(placeholder='Calendar unavailable without js')
+ Calendar(@dayclick='dayChange' @monthchange='monthChange' :events='filteredEvents')
- .col.pt-0.pt-md-2
- Search(:filters='filters' @update='updateFilters')
- v-chip(v-if='selectedDay' close :close-icon='mdiCloseCircle' @click:close='dayChange()') {{selectedDay}}
-
- //- Events
- #events.mb-2.mt-1.pl-1.pl-sm-2
- Event(:event='event' @destroy='destroy' v-for='(event, idx) in visibleEvents' :lazy='idx>2' :key='event.id' @tagclick='tagClick' @placeclick='placeClick')
+ .col.pt-0.pt-md-2
+ Search(:filters='filters' @update='updateFilters')
+ v-chip(v-if='selectedDay' close :close-icon='mdiCloseCircle' @click:close='dayChange()') {{selectedDay}}
+ //- Events
+ #events.mb-2.mt-1.pl-1.pl-sm-2
+ Event(:event='event' @destroy='destroy' v-for='(event, idx) in visibleEvents' :lazy='idx>2' :key='event.id' @tagclick='tagClick' @placeclick='placeClick')