diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/types.ts b/src/Bundle/ChillCalendarBundle/Resources/public/types.ts new file mode 100644 index 000000000..4291f2dd9 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/types.ts @@ -0,0 +1,54 @@ +import {EventInput} from '@fullcalendar/vue3'; + +export interface DateTime { + datetime: string; + datetime8601: string +} + +export interface Job { + id: number; + interface: "user_job"; + label: { + "fr": string; // could have other key. How to do that in ts ? + } +} + +export interface Center { + id: number; + interface: "center"; + name: string; +} + +export interface Scope { + id: number; + interface: "scope"; + name: { + "fr": string + } +} + +export interface User { + interface: "user"; + id: number; + username: string; + text: string; + email: string; + user_job: Job; + // todo: mainCenter; mainJob; etc.. +} + +export interface CalendarRange { + id: number; + endDate: DateTime; + startdate: DateTime; + user: User; + createdAt: DateTime; + createdBy: User; + updatedAt: DateTime; + updatedBy: User; +} + +export interface Calendar { + id: number; +} + diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/api.d.ts b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/api.d.ts new file mode 100644 index 000000000..4c0ea2626 --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/api.d.ts @@ -0,0 +1,5 @@ +export function whoami(): import('ChillCalendarAssets/types').User; + +export function fetchCalendarRangeForUser(user: import('ChillCalendarAssets/types').User, start: Date, end: Date): import('ChillCalendarAssets/types').CalendarRange[]; + +export function fetchCalendarRemoteForUser(user: import('ChillCalendarAssets/types').User, start: Date, end: Date): import('ChillCalendarAssets/types').Calendar[]; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.d.ts b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.d.ts new file mode 100644 index 000000000..e60b2167d --- /dev/null +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.d.ts @@ -0,0 +1,2 @@ + +export function calendarRangeToFullCalendarEvent(entity: import('ChillCalendarAssets/types').CalendarRange): import('@fullcalendar/vue3').EventInput; diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.js b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.js index 176b84a6b..af194f206 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.js +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/Calendar/store/utils.js @@ -50,6 +50,7 @@ const createUserData = (user, colorIndex) => { } } +// TODO move this function to a more global namespace, as it is in use in MyCalendarRange app const calendarRangeToFullCalendarEvent = (entity) => { return { id: `range_${entity.id}`, diff --git a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue index a1ea74560..e67152b58 100644 --- a/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue +++ b/src/Bundle/ChillCalendarBundle/Resources/public/vuejs/MyCalendarRange/App.vue @@ -11,7 +11,7 @@ - +