[style] Fix style on extra small devices
* Show only one day in the agenda view if devices has a very low width. * Fix very tiny font on small devices
This commit is contained in:
		
							parent
							
								
									a0192418e2
								
							
						
					
					
						commit
						511014d043
					
				|  | @ -49,6 +49,7 @@ | ||||||
|           </div> |           </div> | ||||||
|           <div class="col-xs-12 col-sm-3 text-center"> |           <div class="col-xs-12 col-sm-3 text-center"> | ||||||
|             <q-btn-toggle |             <q-btn-toggle | ||||||
|  |               v-if="$q.screen.gt.xs" | ||||||
|               v-model="calendarView" |               v-model="calendarView" | ||||||
|               flat |               flat | ||||||
|               stretch |               stretch | ||||||
|  | @ -80,7 +81,7 @@ | ||||||
|           </template> |           </template> | ||||||
|           <template #day="{ scope: { timestamp } }"> |           <template #day="{ scope: { timestamp } }"> | ||||||
|             <div itemref="" class="q-pb-sm" style="min-height: 200px"> |             <div itemref="" class="q-pb-sm" style="min-height: 200px"> | ||||||
|               <eventslot |               <event-slot | ||||||
|                 v-for="(agenda, index) in events[timestamp.weekday]" |                 v-for="(agenda, index) in events[timestamp.weekday]" | ||||||
|                 :key="index" |                 :key="index" | ||||||
|                 v-model="events[timestamp.weekday][index]" |                 v-model="events[timestamp.weekday][index]" | ||||||
|  | @ -98,27 +99,27 @@ | ||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
| import { ComponentPublicInstance, computed, defineComponent, onBeforeMount, ref } from 'vue'; | import { ComponentPublicInstance, computed, defineComponent, onBeforeMount, ref } from 'vue'; | ||||||
| import { useScheduleStore } from '../../store'; | import { useScheduleStore } from '../../store'; | ||||||
| import Eventslot from './slots/EventSlot.vue'; | import EventSlot from './slots/EventSlot.vue'; | ||||||
| import { date } from 'quasar'; | import { date, useQuasar } from 'quasar'; | ||||||
| import { startOfWeek } from '@flaschengeist/api'; | import { startOfWeek } from '@flaschengeist/api'; | ||||||
| import EditEvent from '../management/EditEvent.vue'; | import EditEvent from '../management/EditEvent.vue'; | ||||||
| import { QCalendarAgenda } from '@quasar/quasar-ui-qcalendar'; | import { QCalendarAgenda } from '@quasar/quasar-ui-qcalendar'; | ||||||
| 
 | 
 | ||||||
| export default defineComponent({ | export default defineComponent({ | ||||||
|   name: 'AgendaView', |   name: 'AgendaView', | ||||||
|   components: { Eventslot, EditEvent, QCalendarAgenda: <ComponentPublicInstance>QCalendarAgenda }, |   components: { EventSlot, EditEvent, QCalendarAgenda: <ComponentPublicInstance>QCalendarAgenda }, | ||||||
| 
 | 
 | ||||||
|   setup() { |   setup() { | ||||||
|     const store = useScheduleStore(); |     const store = useScheduleStore(); | ||||||
|     const windowWidth = ref(window.innerWidth); |     const quasar = useQuasar(); | ||||||
|  | 
 | ||||||
|     const selectedDate = ref(date.formatDate(new Date(), 'YYYY-MM-DD')); |     const selectedDate = ref(date.formatDate(new Date(), 'YYYY-MM-DD')); | ||||||
|     const proxyDate = ref(''); |     const proxyDate = ref(''); | ||||||
|     const calendarView = ref('week'); |     const calendarView = ref('week'); | ||||||
| 
 | 
 | ||||||
|     const calendarRealView = computed(() => (calendarDays.value != 7 ? 'day' : 'week')); |     const calendarRealView = computed(() => (calendarDays.value != 7 ? 'day' : 'week')); | ||||||
|     const calendarDays = computed(() => |     const calendarDays = computed(() => | ||||||
|       // <= 1023 is the breakpoint for sm to md |       (calendarView.value == 'day' || quasar.screen.xs) ? 1 : quasar.screen.sm ? 3 : 7 | ||||||
|       calendarView.value == 'day' ? 1 : windowWidth.value <= 1023 ? 3 : 7 |  | ||||||
|     ); |     ); | ||||||
|     const events = ref<Agendas>({}); |     const events = ref<Agendas>({}); | ||||||
|     const editor = ref<FG.Event | undefined>(undefined); |     const editor = ref<FG.Event | undefined>(undefined); | ||||||
|  | @ -128,10 +129,6 @@ export default defineComponent({ | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     onBeforeMount(async () => { |     onBeforeMount(async () => { | ||||||
|       window.addEventListener('resize', () => { |  | ||||||
|         windowWidth.value = window.innerWidth; |  | ||||||
|       }); |  | ||||||
| 
 |  | ||||||
|       await loadAgendas(); |       await loadAgendas(); | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -4,13 +4,13 @@ | ||||||
|     bordered |     bordered | ||||||
|   > |   > | ||||||
|     <q-card-section class="text-primary q-pa-xs"> |     <q-card-section class="text-primary q-pa-xs"> | ||||||
|       <div class="text-weight-bolder text-center" style="font-size: 1.5vw"> |       <div class="text-weight-bolder text-center"> | ||||||
|         {{ event.type.name }} |         {{ event.type.name }} | ||||||
|         <template v-if="event.name" |         <template v-if="event.name" | ||||||
|           >: <span style="font-size: 1.2vw">{{ event.name }}</span> |           >: <span>{{ event.name }}</span> | ||||||
|         </template> |         </template> | ||||||
|       </div> |       </div> | ||||||
|       <div v-if="event.description" class="text-weight-medium" style="font-size: 1vw"> |       <div v-if="event.description" class="text-weight-medium"> | ||||||
|         {{ event.description }} |         {{ event.description }} | ||||||
|       </div> |       </div> | ||||||
|     </q-card-section> |     </q-card-section> | ||||||
|  | @ -53,7 +53,7 @@ import { PERMISSIONS } from '../../../permissions'; | ||||||
| import JobSlot from './JobSlot.vue'; | import JobSlot from './JobSlot.vue'; | ||||||
| 
 | 
 | ||||||
| export default defineComponent({ | export default defineComponent({ | ||||||
|   name: 'Eventslot', |   name: 'EventSlot', | ||||||
|   components: { JobSlot }, |   components: { JobSlot }, | ||||||
|   props: { |   props: { | ||||||
|     modelValue: { |     modelValue: { | ||||||
|  |  | ||||||
|  | @ -34,7 +34,7 @@ | ||||||
|         <q-tab-panel name="agendaView"> |         <q-tab-panel name="agendaView"> | ||||||
|           <AgendaView /> |           <AgendaView /> | ||||||
|         </q-tab-panel> |         </q-tab-panel> | ||||||
|         <q-tab-panel name="eventtypes"> |         <q-tab-panel name="listView"> | ||||||
|         </q-tab-panel> |         </q-tab-panel> | ||||||
|       </q-tab-panels> |       </q-tab-panels> | ||||||
|     </q-page> |     </q-page> | ||||||
|  | @ -44,27 +44,23 @@ | ||||||
| <script lang="ts"> | <script lang="ts"> | ||||||
| import { computed, defineComponent, ref } from 'vue'; | import { computed, defineComponent, ref } from 'vue'; | ||||||
| import AgendaView from '../components/overview/AgendaView.vue'; | import AgendaView from '../components/overview/AgendaView.vue'; | ||||||
| import { Screen } from 'quasar'; | import { useQuasar } from 'quasar'; | ||||||
| 
 | 
 | ||||||
| export default defineComponent({ | export default defineComponent({ | ||||||
|   name: 'EventOverview', |   name: 'EventOverview', | ||||||
|   components: { AgendaView }, |   components: { AgendaView }, | ||||||
|   setup() { |   setup() { | ||||||
|     interface Tab { |     const quasar = useQuasar(); | ||||||
|       name: string; |  | ||||||
|       label: string; |  | ||||||
|     } |  | ||||||
| 
 | 
 | ||||||
|     const tabs: Tab[] = [ |     const tabs = computed(() => ([ | ||||||
|  |       { name: 'listView', label: 'Liste' }, | ||||||
|       { name: 'agendaView', label: 'Kalendar' } |       { name: 'agendaView', label: 'Kalendar' } | ||||||
|     ]; |     ])); | ||||||
| 
 | 
 | ||||||
|     const drawer = ref<boolean>(false); |     const drawer = ref<boolean>(false); | ||||||
| 
 | 
 | ||||||
|     const showDrawer = computed({ |     const showDrawer = computed({ | ||||||
|       get: () => { |       get: () => !quasar.screen.gt.sm && drawer.value, | ||||||
|         return !Screen.gt.sm && drawer.value; |  | ||||||
|       }, |  | ||||||
|       set: (val: boolean) => { |       set: (val: boolean) => { | ||||||
|         drawer.value = val; |         drawer.value = val; | ||||||
|       }, |       }, | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue