Compare commits
	
		
			No commits in common. "511014d04380fec911ce13f11f665e2fb7f8e5c3" and "a8953bbae610fc8f1650a74bc447c4d62e8a6cda" have entirely different histories.
		
	
	
		
			511014d043
			...
			a8953bbae6
		
	
		|  | @ -78,7 +78,7 @@ | |||
|       </q-card-section> | ||||
|       <q-card-section v-for="(job, index) in event.jobs" :key="index"> | ||||
|         <q-card class="q-my-auto"> | ||||
|           <edit-job-slot | ||||
|           <job | ||||
|             v-model="event.jobs[index]" | ||||
|             :job-can-delete="jobDeleteDisabled" | ||||
|             @remove-job="removeJob(index)" | ||||
|  | @ -105,12 +105,12 @@ import { date, ModifyDateOptions } from 'quasar'; | |||
| import { useScheduleStore } from '../../store'; | ||||
| import { notEmpty } from '@flaschengeist/api'; | ||||
| import { IsoDateInput } from '@flaschengeist/api/components'; | ||||
| import EditJobSlot from './EditJobSlot.vue'; | ||||
| import Job from './Job.vue'; | ||||
| import RecurrenceRule from './RecurrenceRule.vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'EditEvent', | ||||
|   components: { IsoDateInput, EditJobSlot, RecurrenceRule }, | ||||
|   components: { IsoDateInput, Job, RecurrenceRule }, | ||||
|   props: { | ||||
|     modelValue: { | ||||
|       required: false, | ||||
|  |  | |||
|  | @ -56,7 +56,7 @@ import { notEmpty } from '@flaschengeist/api'; | |||
| import { useScheduleStore } from '../../store'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'JobSlot', | ||||
|   name: 'Job', | ||||
|   components: { IsoDateInput }, | ||||
|   props: { | ||||
|     modelValue: { | ||||
|  | @ -95,8 +95,8 @@ export default defineComponent({ | |||
|       emit('remove-job'); | ||||
|     } | ||||
| 
 | ||||
|     function isAfterDate(val: Date) { | ||||
|       return props.modelValue.start < val || 'Ende muss hinter dem Start liegen'; | ||||
|     function isAfterDate(val: string) { | ||||
|       return props.modelValue.start < new Date(val) || 'Ende muss hinter dem Start liegen'; | ||||
|     } | ||||
| 
 | ||||
|     return { | ||||
|  | @ -49,7 +49,6 @@ | |||
|           </div> | ||||
|           <div class="col-xs-12 col-sm-3 text-center"> | ||||
|             <q-btn-toggle | ||||
|               v-if="$q.screen.gt.xs" | ||||
|               v-model="calendarView" | ||||
|               flat | ||||
|               stretch | ||||
|  | @ -81,7 +80,7 @@ | |||
|           </template> | ||||
|           <template #day="{ scope: { timestamp } }"> | ||||
|             <div itemref="" class="q-pb-sm" style="min-height: 200px"> | ||||
|               <event-slot | ||||
|               <eventslot | ||||
|                 v-for="(agenda, index) in events[timestamp.weekday]" | ||||
|                 :key="index" | ||||
|                 v-model="events[timestamp.weekday][index]" | ||||
|  | @ -99,27 +98,27 @@ | |||
| <script lang="ts"> | ||||
| import { ComponentPublicInstance, computed, defineComponent, onBeforeMount, ref } from 'vue'; | ||||
| import { useScheduleStore } from '../../store'; | ||||
| import EventSlot from './slots/EventSlot.vue'; | ||||
| import { date, useQuasar } from 'quasar'; | ||||
| import Eventslot from './slots/EventSlot.vue'; | ||||
| import { date } from 'quasar'; | ||||
| import { startOfWeek } from '@flaschengeist/api'; | ||||
| import EditEvent from '../management/EditEvent.vue'; | ||||
| import { QCalendarAgenda } from '@quasar/quasar-ui-qcalendar'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'AgendaView', | ||||
|   components: { EventSlot, EditEvent, QCalendarAgenda: <ComponentPublicInstance>QCalendarAgenda }, | ||||
|   components: { Eventslot, EditEvent, QCalendarAgenda: <ComponentPublicInstance>QCalendarAgenda }, | ||||
| 
 | ||||
|   setup() { | ||||
|     const store = useScheduleStore(); | ||||
|     const quasar = useQuasar(); | ||||
| 
 | ||||
|     const windowWidth = ref(window.innerWidth); | ||||
|     const selectedDate = ref(date.formatDate(new Date(), 'YYYY-MM-DD')); | ||||
|     const proxyDate = ref(''); | ||||
|     const calendarView = ref('week'); | ||||
| 
 | ||||
|     const calendarRealView = computed(() => (calendarDays.value != 7 ? 'day' : 'week')); | ||||
|     const calendarDays = computed(() => | ||||
|       (calendarView.value == 'day' || quasar.screen.xs) ? 1 : quasar.screen.sm ? 3 : 7 | ||||
|       // <= 1023 is the breakpoint for sm to md | ||||
|       calendarView.value == 'day' ? 1 : windowWidth.value <= 1023 ? 3 : 7 | ||||
|     ); | ||||
|     const events = ref<Agendas>({}); | ||||
|     const editor = ref<FG.Event | undefined>(undefined); | ||||
|  | @ -129,6 +128,10 @@ export default defineComponent({ | |||
|     } | ||||
| 
 | ||||
|     onBeforeMount(async () => { | ||||
|       window.addEventListener('resize', () => { | ||||
|         windowWidth.value = window.innerWidth; | ||||
|       }); | ||||
| 
 | ||||
|       await loadAgendas(); | ||||
|     }); | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,13 +4,13 @@ | |||
|     bordered | ||||
|   > | ||||
|     <q-card-section class="text-primary q-pa-xs"> | ||||
|       <div class="text-weight-bolder text-center"> | ||||
|       <div class="text-weight-bolder text-center" style="font-size: 1.5vw"> | ||||
|         {{ event.type.name }} | ||||
|         <template v-if="event.name" | ||||
|           >: <span>{{ event.name }}</span> | ||||
|           >: <span style="font-size: 1.2vw">{{ event.name }}</span> | ||||
|         </template> | ||||
|       </div> | ||||
|       <div v-if="event.description" class="text-weight-medium"> | ||||
|       <div v-if="event.description" class="text-weight-medium" style="font-size: 1vw"> | ||||
|         {{ event.description }} | ||||
|       </div> | ||||
|     </q-card-section> | ||||
|  | @ -53,7 +53,7 @@ import { PERMISSIONS } from '../../../permissions'; | |||
| import JobSlot from './JobSlot.vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'EventSlot', | ||||
|   name: 'Eventslot', | ||||
|   components: { JobSlot }, | ||||
|   props: { | ||||
|     modelValue: { | ||||
|  |  | |||
|  | @ -34,7 +34,7 @@ | |||
|         <q-tab-panel name="agendaView"> | ||||
|           <AgendaView /> | ||||
|         </q-tab-panel> | ||||
|         <q-tab-panel name="listView"> | ||||
|         <q-tab-panel name="eventtypes"> | ||||
|         </q-tab-panel> | ||||
|       </q-tab-panels> | ||||
|     </q-page> | ||||
|  | @ -44,23 +44,27 @@ | |||
| <script lang="ts"> | ||||
| import { computed, defineComponent, ref } from 'vue'; | ||||
| import AgendaView from '../components/overview/AgendaView.vue'; | ||||
| import { useQuasar } from 'quasar'; | ||||
| import { Screen } from 'quasar'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'EventOverview', | ||||
|   components: { AgendaView }, | ||||
|   setup() { | ||||
|     const quasar = useQuasar(); | ||||
|     interface Tab { | ||||
|       name: string; | ||||
|       label: string; | ||||
|     } | ||||
| 
 | ||||
|     const tabs = computed(() => ([ | ||||
|       { name: 'listView', label: 'Liste' }, | ||||
|     const tabs: Tab[] = [ | ||||
|       { name: 'agendaView', label: 'Kalendar' } | ||||
|     ])); | ||||
|     ]; | ||||
| 
 | ||||
|     const drawer = ref<boolean>(false); | ||||
| 
 | ||||
|     const showDrawer = computed({ | ||||
|       get: () => !quasar.screen.gt.sm && drawer.value, | ||||
|       get: () => { | ||||
|         return !Screen.gt.sm && drawer.value; | ||||
|       }, | ||||
|       set: (val: boolean) => { | ||||
|         drawer.value = val; | ||||
|       }, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue