diff --git a/pages/add/WhenInput.vue b/pages/add/WhenInput.vue new file mode 100644 index 00000000..856c59f5 --- /dev/null +++ b/pages/add/WhenInput.vue @@ -0,0 +1,187 @@ + + \ No newline at end of file diff --git a/pages/add/_edit.vue b/pages/add/_edit.vue index a4e5fe15..29705321 100644 --- a/pages/add/_edit.vue +++ b/pages/add/_edit.vue @@ -55,89 +55,62 @@ :disabled='disableAddress') //- When - .text-center - v-btn-toggle(v-model="event.type" color='primary') - v-btn(value='normal' label="normal") {{$t('event.normal')}} - v-btn(value='multidate' label="multidate") {{$t('event.multidate')}} - v-btn(v-if='settings.allow_recurrent_event' value='recurrent' label="recurrent") {{$t('event.recurrent')}} + WhenInput(v-model='date' + :rules="$validators.required('common.when')") - p {{$t(`event.${event.type}_description`)}} - v-select(v-if='event.type==="recurrent"' - :items="frequencies" - v-model='event.recurrent.frequency') - client-only - .datePicker - v-date-picker( - :mode='datePickerMode' - :attributes='attributes' - v-model='date' - :locale='$i18n.locale' - :from-page.sync='page' - :is-dark="settings['theme.is_dark']" - is-inline - is-expanded - :min-date='event.type !== "recurrent" && new Date()') - - div.text-center.mb-2(v-if='event.type === "recurrent"') - span(v-if='event.recurrent.frequency !== "1m" && event.recurrent.frequency !== "2m"') {{whenPatterns}} - v-btn-toggle.mt-1(v-else v-model='event.recurrent.type' color='primary') - v-btn(v-for='whenPattern in whenPatterns' :value='whenPattern.key' :key='whenPatterns.key' small) - span {{whenPattern.label}} v-row - v-col - v-menu(v-model='fromDateMenu' - :close-on-content-click="false" - transition="slide-x-transition" - ref='fromDateMenu' - :return-value.sync="time.start" - offset-y - absolute - top - max-width="290px" - min-width="290px") - template(v-slot:activator='{ on }') - v-text-field( + v-col + v-menu(v-model='fromDateMenu' + :close-on-content-click="false" + transition="slide-x-transition" + ref='fromDateMenu' + :return-value.sync="time.start" + offset-y + absolute + top + max-width="290px" + min-width="290px") + template(v-slot:activator='{ on }') + v-text-field( + :label="$t('event.from')" + :rules="[$validators.required('event.from')]" + :value='time.start' + v-on='on' + clearable) + v-time-picker( + v-if='fromDateMenu' :label="$t('event.from')" - :rules="[$validators.required('event.from')]" - :value='time.start' - v-on='on' - clearable) - v-time-picker( - v-if='fromDateMenu' - :label="$t('event.from')" - format="24hr" - ref='time_start' - :allowed-minutes="[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]" - v-model='time.start' - @click:minute="$refs.fromDateMenu.save(time.start)") + format="24hr" + ref='time_start' + :allowed-minutes="[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]" + v-model='time.start' + @click:minute="$refs.fromDateMenu.save(time.start)") - v-col - v-menu(v-model='dueDateMenu' - :close-on-content-click="false" - transition="slide-x-transition" - ref='dueDateMenu' - :return-value.sync="time.end" - offset-y - absolute - top - max-width="290px" - min-width="290px") - template(v-slot:activator='{ on }') - v-text-field( + v-col + v-menu(v-model='dueDateMenu' + :close-on-content-click="false" + transition="slide-x-transition" + ref='dueDateMenu' + :return-value.sync="time.end" + offset-y + absolute + top + max-width="290px" + min-width="290px") + template(v-slot:activator='{ on }') + v-text-field( + :label="$t('event.due')" + :value='time.end' + v-on='on' + clearable + readonly) + v-time-picker( + v-if='dueDateMenu' :label="$t('event.due')" - :value='time.end' - v-on='on' - clearable - readonly) - v-time-picker( - v-if='dueDateMenu' - :label="$t('event.due')" - format="24hr" - :allowed-minutes="[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]" - v-model='time.end' - @click:minute="$refs.dueDateMenu.save(time.end)") - - List(v-if='event.type==="normal" && todayEvents.length' :events='todayEvents' :title='$t("event.same_day")') + format="24hr" + :allowed-minutes="[0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]" + v-model='time.end' + @click:minute="$refs.dueDateMenu.save(time.end)") //- MEDIA / FLYER / POSTER @@ -165,14 +138,15 @@