mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-10 16:55:00 +00:00
Compare commits
6 Commits
upgrade-ph
...
fix-calend
Author | SHA1 | Date | |
---|---|---|---|
b8341484d4 | |||
9dcee26901 | |||
5789d7feff | |||
fee0a5ce58 | |||
3ad5e592e7 | |||
ac42fdff25 |
@@ -70,7 +70,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<FullCalendar :options="calendarOptions" ref="calendarRef">
|
||||
<template v-slot:eventContent="arg: EventApi">
|
||||
<template v-slot:eventContent="arg">
|
||||
<span :class="eventClasses(arg.event)">
|
||||
<b v-if="arg.event.extendedProps.is === 'remote'">{{ arg.event.title}}</b>
|
||||
<b v-else-if="arg.event.extendedProps.is === 'range'">{{ arg.timeText }} - {{ arg.event.extendedProps.locationName }}</b>
|
||||
@@ -138,6 +138,7 @@ const store = useStore(key);
|
||||
|
||||
const {t} = useI18n();
|
||||
|
||||
const calendarRef = ref();
|
||||
const showWeekends = ref(false);
|
||||
const slotDuration = ref('00:05:00');
|
||||
const slotMinTime = ref('09:00:00');
|
||||
@@ -163,10 +164,41 @@ const baseOptions = ref<CalendarOptions>({
|
||||
eventDrop: onEventDropOrResize,
|
||||
// when an event si clicked
|
||||
eventClick: onEventClick,
|
||||
/* eventContent: function(arg) {
|
||||
let spanEvent = document.createElement('span')
|
||||
let rangeEvent = document.createElement('b')
|
||||
// spanEvent.classList.add(eventClasses(arg.event))
|
||||
|
||||
if (arg.event.extendedProps.is === 'remote') {
|
||||
spanEvent.innerHTML = `<b>${arg.event.title}</b>`
|
||||
} else if(arg.event.extendedProps.is === 'range') {
|
||||
spanEvent.innerHTML = `<b>${arg.timeText} - ${arg.event.extendedProps.locationName}</b>
|
||||
<a class="fa fa-fw fa-times delete"></a>`
|
||||
} else if(arg.event.extendedProps.is === 'local') {
|
||||
spanEvent.innerHTML = `<b>${arg.event.title}</b>`
|
||||
}
|
||||
|
||||
let arrayOfDomNodes = [ spanEvent ]
|
||||
return { domNodes: arrayOfDomNodes }
|
||||
},*/
|
||||
selectMirror: false,
|
||||
editable: true,
|
||||
customButtons: {
|
||||
prevWeek: {
|
||||
text: '<',
|
||||
click: function() {
|
||||
navigate('prev')
|
||||
}
|
||||
},
|
||||
nextWeek: {
|
||||
text: '>',
|
||||
click: function() {
|
||||
navigate('next')
|
||||
}
|
||||
}
|
||||
},
|
||||
headerToolbar: {
|
||||
left: 'prev,next today',
|
||||
left: 'prevWeek,nextWeek today',
|
||||
center: 'title',
|
||||
right: 'timeGridWeek,timeGridDay'
|
||||
},
|
||||
@@ -245,16 +277,43 @@ function onDateSelect(event: DateSelectArg): void {
|
||||
store.dispatch('calendarRanges/createRange', {start: event.start, end: event.end, location: pickedLocation.value});
|
||||
}
|
||||
|
||||
function navigate(direction: string) {
|
||||
const viewType = calendarRef.value.getApi().view.type;
|
||||
const currentStart = store.state.fullCalendar.currentView.start;
|
||||
const currentEnd = store.state.fullCalendar.currentView.end;
|
||||
let newDates = {};
|
||||
|
||||
if (currentStart != null && currentEnd != null) {
|
||||
let daysBetween = (currentEnd?.getTime() - currentStart?.getTime())/(1000 * 60 * 60 * 24);
|
||||
if (daysBetween === 5) {
|
||||
daysBetween = 7;
|
||||
}
|
||||
if (direction === 'prev') {
|
||||
newDates = {
|
||||
start: new Date(new Date(currentStart).setDate(currentStart.getDate() - daysBetween)),
|
||||
end: new Date(new Date(currentEnd).setDate(currentEnd.getDate() - daysBetween))
|
||||
}
|
||||
} else if (direction === 'next') {
|
||||
console.log(daysBetween);
|
||||
newDates = {
|
||||
start: new Date(new Date(currentStart).setDate(currentStart.getDate() + daysBetween)),
|
||||
end: new Date(new Date(currentEnd).setDate(currentEnd.getDate() + daysBetween))
|
||||
}
|
||||
console.log(newDates);
|
||||
}
|
||||
}
|
||||
|
||||
store.dispatch('fullCalendar/setCurrentDatesView', newDates);
|
||||
calendarRef.value.getApi().changeView('timeGrid', newDates);
|
||||
}
|
||||
|
||||
/**
|
||||
* When a calendar range is deleted
|
||||
*/
|
||||
function onClickDelete(event: EventApi): void {
|
||||
console.log('onClickDelete', event);
|
||||
|
||||
if (event.extendedProps.is !== 'range') {
|
||||
return;
|
||||
}
|
||||
|
||||
store.dispatch('calendarRanges/deleteRange', event.extendedProps.calendarRangeId);
|
||||
}
|
||||
|
||||
|
@@ -31,7 +31,6 @@ export default {
|
||||
},
|
||||
actions: {
|
||||
setCurrentDatesView(ctx: Context, {start, end}: {start: Date|null, end: Date|null}): Promise<null> {
|
||||
console.log('dispatch setCurrentDatesView', {start, end});
|
||||
|
||||
if (ctx.state.currentView.start !== start || ctx.state.currentView.end !== end) {
|
||||
ctx.commit('setCurrentDatesView', {start, end});
|
||||
|
Reference in New Issue
Block a user