diff --git a/js/src/components/Event/DateTimePicker.vue b/js/src/components/Event/DateTimePicker.vue
index 514d0138..69052a9d 100644
--- a/js/src/components/Event/DateTimePicker.vue
+++ b/js/src/components/Event/DateTimePicker.vue
@@ -40,8 +40,12 @@ export default class DateTimePicker extends Vue {
date: Date = this.value;
time: string = '00:00';
- created() {
- let minutes = this.value.getHours() * 60 + this.value.getMinutes();
+ mounted() {
+ this.convertTime();
+ }
+
+ convertTime() {
+ let minutes = this.date.getHours() * 60 + this.date.getMinutes();
minutes = Math.ceil(minutes / this.step) * this.step;
this.time = [Math.floor(minutes / 60), minutes % 60].map((v) => { return v < 10 ? `0${v}` : v; }).join(':');
@@ -57,15 +61,22 @@ export default class DateTimePicker extends Vue {
@Watch('date')
updateDate() {
- this.updateDateTime();
+ this.updateTime(this.time);
+ }
+
+ @Watch('value')
+ updateValue() {
+ this.date = this.value;
+ this.convertTime();
}
updateDateTime() {
/**
* Returns the updated date
*
- * @type {DateTime}
+ * @type {Date}
*/
+ console.log('updated this.date with', this.date);
this.$emit('input', this.date);
}
}
diff --git a/js/src/views/Event/Edit.vue b/js/src/views/Event/Edit.vue
index ec9d9db1..3d5ffe52 100644
--- a/js/src/views/Event/Edit.vue
+++ b/js/src/views/Event/Edit.vue
@@ -67,13 +67,13 @@ import {ParticipantRole} from "@/types/event.model";
{{ $t('Only accessible through link and search (private)') }}
-
+
@@ -83,16 +83,17 @@ import {ParticipantRole} from "@/types/event.model";
+
- {{ $t('Limited places') }}
+ {{ $t('Limited number of places') }}
-
+
-
+
-
+
{{ $t('Status') }}
@@ -361,21 +362,22 @@ export default class EditEvent extends Vue {
}
async createEvent() {
- try {
- const { data } = await this.$apollo.mutate({
- mutation: CREATE_EVENT,
- variables: this.buildVariables(),
- update: (store, { data: { createEvent } }) => this.postCreateOrUpdate(store, createEvent),
- refetchQueries: ({ data: { createEvent } }) => this.postRefetchQueries(createEvent),
- });
+ console.log(this.buildVariables());
+ // try {
+ // const { data } = await this.$apollo.mutate({
+ // mutation: CREATE_EVENT,
+ // variables: this.buildVariables(),
+ // update: (store, { data: { createEvent } }) => this.postCreateOrUpdate(store, createEvent),
+ // refetchQueries: ({ data: { createEvent } }) => this.postRefetchQueries(createEvent),
+ // });
- await this.$router.push({
- name: 'Event',
- params: { uuid: data.createEvent.uuid },
- });
- } catch (err) {
- console.error(err);
- }
+ // await this.$router.push({
+ // name: 'Event',
+ // params: { uuid: data.createEvent.uuid },
+ // });
+ // } catch (err) {
+ // console.error(err);
+ // }
}
async updateEvent() {
@@ -526,24 +528,22 @@ export default class EditEvent extends Vue {
return JSON.stringify(this.event.toEditJSON()) !== JSON.stringify(this.unmodifiedEvent);
}
- // getAddressData(addressData) {
- // if (addressData !== null) {
- // this.event.address = {
- // geom: {
- // data: {
- // latitude: addressData.latitude,
- // longitude: addressData.longitude
- // },
- // type: "point"
- // },
- // addressCountry: addressData.country,
- // addressLocality: addressData.locality,
- // addressRegion: addressData.administrative_area_level_1,
- // postalCode: addressData.postal_code,
- // streetAddress: `${addressData.street_number} ${addressData.route}`
- // };
- // }
- // }
+ get beginsOn() { return this.event.beginsOn; }
+
+ @Watch('beginsOn')
+ onBeginsOnChanged(beginsOn) {
+ console.log('beginsOnWatcher', beginsOn);
+ if (!this.event.endsOn) return;
+ const dateBeginsOn = new Date(beginsOn);
+ const dateEndsOn = new Date(this.event.endsOn);
+ if (dateEndsOn < dateBeginsOn) {
+ this.event.endsOn = dateBeginsOn;
+ this.event.endsOn.setUTCHours(dateEndsOn.getUTCHours());
+ }
+ if (dateEndsOn === dateBeginsOn) {
+ this.event.endsOn.setUTCHours(dateEndsOn.getUTCHours() + 1);
+ }
+ }
}