Compare commits
	
		
			2 Commits
		
	
	
		
			8f8eef1784
			...
			4d3654f08a
		
	
	| Author | SHA1 | Date | 
|---|---|---|
|  | 4d3654f08a | |
|  | 661685c57a | 
|  | @ -1,3 +1,4 @@ | |||
| node_modules | ||||
| node_modules/ | ||||
| yarn-error.log | ||||
| # No need, this is done by user | ||||
|  |  | |||
|  | @ -102,7 +102,7 @@ | |||
| <script lang="ts"> | ||||
| import { computed, defineComponent, PropType, ref, onBeforeMount } from 'vue'; | ||||
| import { date, ModifyDateOptions } from 'quasar'; | ||||
| import { useScheduleStore } from '../../store'; | ||||
| import { useEventStore } from '../../store'; | ||||
| import { notEmpty } from '@flaschengeist/api'; | ||||
| import { IsoDateInput } from '@flaschengeist/api/components'; | ||||
| import EditJobSlot from './EditJobSlot.vue'; | ||||
|  | @ -127,7 +127,7 @@ export default defineComponent({ | |||
|     done: (val: boolean) => typeof val === 'boolean', | ||||
|   }, | ||||
|   setup(props, { emit }) { | ||||
|     const store = useScheduleStore(); | ||||
|     const store = useEventStore(); | ||||
|     const startDate = computed(() => { | ||||
|       const d = date.buildDate({milliseconds: 0, seconds: 0, minutes: 0, hours: 0}) | ||||
|       if (!props.date || !date.isValid(props.date)) return d | ||||
|  | @ -180,9 +180,15 @@ export default defineComponent({ | |||
|     } | ||||
| 
 | ||||
|     async function save(template = false) { | ||||
|       if (!event.value.is_template && template) event.value.id = NaN; | ||||
| 
 | ||||
|       event.value.is_template = template; | ||||
|       try { | ||||
|         if (!isNaN(event.value.id)) { | ||||
|           //fix | ||||
|         } | ||||
|         await store.addEvent(event.value); | ||||
| 
 | ||||
|         if (props.modelValue === undefined && recurrent.value && !event.value.is_template) { | ||||
|           let count = 0; | ||||
|           const options: ModifyDateOptions = {}; | ||||
|  |  | |||
|  | @ -53,7 +53,7 @@ | |||
| import { defineComponent, computed, onBeforeMount, PropType } from 'vue'; | ||||
| import { IsoDateInput } from '@flaschengeist/api/components'; | ||||
| import { notEmpty } from '@flaschengeist/api'; | ||||
| import { useScheduleStore } from '../../store'; | ||||
| import { useEventStore } from '../../store'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'JobSlot', | ||||
|  | @ -73,7 +73,7 @@ export default defineComponent({ | |||
|     'update:modelValue': (job: FG.Job) => !!job, | ||||
|   }, | ||||
|   setup(props, { emit }) { | ||||
|     const store = useScheduleStore(); | ||||
|     const store = useEventStore(); | ||||
| 
 | ||||
|     onBeforeMount(() => store.getJobTypes()); | ||||
| 
 | ||||
|  |  | |||
|  | @ -50,8 +50,8 @@ | |||
| <script lang="ts"> | ||||
| import { isAxiosError } from '@flaschengeist/api'; | ||||
| import { defineComponent, ref, computed, PropType, onBeforeMount } from 'vue'; | ||||
| import { useScheduleStore } from '../../store'; | ||||
| import { Notify, QInput } from 'quasar'; | ||||
| import { useEventStore } from '../../store'; | ||||
| import { useQuasar, QInput } from 'quasar'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'ManageTypes', | ||||
|  | @ -61,7 +61,9 @@ export default defineComponent({ | |||
|     title: {type: String, required: true} | ||||
|   }, | ||||
|   setup(props) { | ||||
|     const store = useScheduleStore(); | ||||
|     const store = useEventStore(); | ||||
|     const quasar = useQuasar(); | ||||
| 
 | ||||
|     const dialogOpen = ref(false); | ||||
|     const emptyType = { id: -1, name: '' }; | ||||
|     const actualType = ref(emptyType); | ||||
|  | @ -105,12 +107,12 @@ export default defineComponent({ | |||
|           }) | ||||
|           .catch((e) => { | ||||
|             if (isAxiosError(e, 409)) | ||||
|               Notify.create({ | ||||
|               quasar.notify({ | ||||
|                 type: 'negative', | ||||
|                 message: 'Der Name wird bereits verwendet', | ||||
|               }); | ||||
|             else | ||||
|               Notify.create({ | ||||
|               quasar.notify({ | ||||
|                 type: 'negative', | ||||
|                 message: 'Unbekannter Fehler beim speichern.', | ||||
|               }); | ||||
|  |  | |||
|  | @ -8,7 +8,7 @@ | |||
|     <q-card> | ||||
|       <div class="column"> | ||||
|         <div class="col" align="right" style="position: sticky; top: 0; z-index: 999"> | ||||
|           <q-btn round color="negative" icon="close" dense rounded @click="editDone(false)" /> | ||||
|           <q-btn round color="negative" icon="mdi-close" dense rounded @click="editDone(false)" /> | ||||
|         </div> | ||||
|         <div class="col" style="margin: 0; padding: 0; margin-top: -2.4em"> | ||||
|           <edit-event v-model="editor" @done="editDone" /> | ||||
|  | @ -99,7 +99,7 @@ | |||
| 
 | ||||
| <script lang="ts"> | ||||
| import { ComponentPublicInstance, computed, defineComponent, onBeforeMount, ref } from 'vue'; | ||||
| import { useScheduleStore } from '../../store'; | ||||
| import { useEventStore } from '../../store'; | ||||
| import EventSlot from './slots/EventSlot.vue'; | ||||
| import { date, useQuasar } from 'quasar'; | ||||
| import { startOfWeek } from '@flaschengeist/api'; | ||||
|  | @ -111,7 +111,7 @@ export default defineComponent({ | |||
|   components: { EventSlot, EditEvent, QCalendarAgenda: <ComponentPublicInstance>QCalendarAgenda }, | ||||
| 
 | ||||
|   setup() { | ||||
|     const store = useScheduleStore(); | ||||
|     const store = useEventStore(); | ||||
|     const quasar = useQuasar(); | ||||
| 
 | ||||
|     const selectedDate = ref(date.formatDate(new Date(), 'YYYY-MM-DD')); | ||||
|  | @ -158,7 +158,7 @@ export default defineComponent({ | |||
|     } | ||||
| 
 | ||||
|     async function loadAgendas() { | ||||
|       const selected = date.adjustDate(new Date(selectedDate.value), {milliseconds: 0, seconds: 0, minutes: 0, hours: 0}); | ||||
|       const selected = date.adjustDate(selectedDate.value, {milliseconds: 0, seconds: 0, minutes: 0, hours: 0}); | ||||
|       const start = calendarRealView.value === 'day' ? selected : startOfWeek(selected); | ||||
|       const end = date.addToDate(start, { days: calendarDays.value }); | ||||
| 
 | ||||
|  |  | |||
|  | @ -51,6 +51,7 @@ | |||
| import { defineComponent, computed, PropType } from 'vue'; | ||||
| import { hasPermission } from '@flaschengeist/api'; | ||||
| import { PERMISSIONS } from '../../../permissions'; | ||||
| import { date } from 'quasar'; | ||||
| import JobSlot from './JobSlot.vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|  | @ -72,8 +73,10 @@ export default defineComponent({ | |||
|     const canEdit = computed( | ||||
|       () => | ||||
|         hasPermission(PERMISSIONS.EDIT) && | ||||
|         (props.modelValue?.end || props.modelValue.start) > new Date() | ||||
|         (props.modelValue?.end || props.modelValue.start) >= | ||||
|           date.buildDate({ hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }) | ||||
|     ); | ||||
| 
 | ||||
|     const event = computed({ | ||||
|       get: () => props.modelValue, | ||||
|       set: (v) => emit('update:modelValue', v), | ||||
|  |  | |||
|  | @ -36,9 +36,9 @@ | |||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent, onBeforeMount, computed, PropType } from 'vue'; | ||||
| import { Notify } from 'quasar'; | ||||
| import { useQuasar } from 'quasar'; | ||||
| import { asHour, useMainStore, useUserStore } from '@flaschengeist/api'; | ||||
| import { useScheduleStore } from '../../../store'; | ||||
| import { useEventStore } from '../../../store'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   name: 'JobSlot', | ||||
|  | @ -54,10 +54,10 @@ export default defineComponent({ | |||
|   }, | ||||
|   emits: { 'update:modelValue': (v: FG.Job) => !!v }, | ||||
|   setup(props, { emit }) { | ||||
|     const store = useScheduleStore(); | ||||
|     const store = useEventStore(); | ||||
|     const mainStore = useMainStore(); | ||||
|     const userStore = useUserStore(); | ||||
|     const availableUsers = null; | ||||
|     const quasar = useQuasar(); | ||||
| 
 | ||||
|     onBeforeMount(async () => userStore.getUsers()); | ||||
| 
 | ||||
|  | @ -90,7 +90,7 @@ export default defineComponent({ | |||
|         emit('update:modelValue', job); | ||||
|       } catch (error) { | ||||
|         console.warn(error); | ||||
|         Notify.create({ | ||||
|         quasar.notify({ | ||||
|           group: false, | ||||
|           type: 'negative', | ||||
|           message: 'Fehler beim Eintragen als Dienst', | ||||
|  | @ -113,7 +113,7 @@ export default defineComponent({ | |||
|         emit('update:modelValue', job); | ||||
|       } catch (error) { | ||||
|         console.warn(error); | ||||
|         Notify.create({ | ||||
|         quasar.notify({ | ||||
|           group: false, | ||||
|           type: 'negative', | ||||
|           message: 'Fehler beim Austragen als Dienst', | ||||
|  |  | |||
|  | @ -7,14 +7,14 @@ | |||
| <script lang="ts"> | ||||
| import { onBeforeMount, defineComponent, ref } from 'vue'; | ||||
| import EditEvent from '../components/management/EditEvent.vue'; | ||||
| import { useScheduleStore } from '../store'; | ||||
| import { useEventStore } from '../store'; | ||||
| import { useRoute } from 'vue-router'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
|   components: { EditEvent }, | ||||
|   setup() { | ||||
|     const route = useRoute(); | ||||
|     const store = useScheduleStore(); | ||||
|     const store = useEventStore(); | ||||
|     const event = ref<FG.Event | undefined>(undefined); | ||||
|     onBeforeMount(async () => { | ||||
|       if ('id' in route.params && typeof route.params.id === 'string') | ||||
|  |  | |||
							
								
								
									
										14
									
								
								src/store.ts
								
								
								
								
							
							
						
						
									
										14
									
								
								src/store.ts
								
								
								
								
							|  | @ -151,9 +151,17 @@ export const useScheduleStore = defineStore({ | |||
|     }, | ||||
| 
 | ||||
|     async addEvent(event: FG.Event) { | ||||
|       const { data } = await api.post<FG.Event>('/events', event); | ||||
|       if (data.is_template) this.templates.push(data); | ||||
|       return data; | ||||
|       if (isNaN(event.id)) { | ||||
|         const { data } = await api.post<FG.Event>('/events', event); | ||||
|         if (data.is_template) this.templates.push(data); | ||||
|         return data; | ||||
|       } else { | ||||
|         if (typeof event.type === 'object') event.type = event.type.id; | ||||
| 
 | ||||
|         const { data } = await api.put<FG.Event>(`/events/${event.id}`, Object.assign(event, {jobs: undefined})); | ||||
|         if (data.is_template) this.templates.push(data); | ||||
|         return data; | ||||
|       } | ||||
|     }, | ||||
|   }, | ||||
| }); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue