mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-09-10 16:55:00 +00:00
Compare commits
6 Commits
testing
...
fix-calend
Author | SHA1 | Date | |
---|---|---|---|
b8341484d4 | |||
9dcee26901 | |||
5789d7feff | |||
fee0a5ce58 | |||
3ad5e592e7 | |||
ac42fdff25 |
@@ -70,7 +70,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<FullCalendar :options="calendarOptions" ref="calendarRef">
|
<FullCalendar :options="calendarOptions" ref="calendarRef">
|
||||||
<template v-slot:eventContent="arg: EventApi">
|
<template v-slot:eventContent="arg">
|
||||||
<span :class="eventClasses(arg.event)">
|
<span :class="eventClasses(arg.event)">
|
||||||
<b v-if="arg.event.extendedProps.is === 'remote'">{{ arg.event.title}}</b>
|
<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>
|
<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 {t} = useI18n();
|
||||||
|
|
||||||
|
const calendarRef = ref();
|
||||||
const showWeekends = ref(false);
|
const showWeekends = ref(false);
|
||||||
const slotDuration = ref('00:05:00');
|
const slotDuration = ref('00:05:00');
|
||||||
const slotMinTime = ref('09:00:00');
|
const slotMinTime = ref('09:00:00');
|
||||||
@@ -163,10 +164,41 @@ const baseOptions = ref<CalendarOptions>({
|
|||||||
eventDrop: onEventDropOrResize,
|
eventDrop: onEventDropOrResize,
|
||||||
// when an event si clicked
|
// when an event si clicked
|
||||||
eventClick: onEventClick,
|
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,
|
selectMirror: false,
|
||||||
editable: true,
|
editable: true,
|
||||||
|
customButtons: {
|
||||||
|
prevWeek: {
|
||||||
|
text: '<',
|
||||||
|
click: function() {
|
||||||
|
navigate('prev')
|
||||||
|
}
|
||||||
|
},
|
||||||
|
nextWeek: {
|
||||||
|
text: '>',
|
||||||
|
click: function() {
|
||||||
|
navigate('next')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
headerToolbar: {
|
headerToolbar: {
|
||||||
left: 'prev,next today',
|
left: 'prevWeek,nextWeek today',
|
||||||
center: 'title',
|
center: 'title',
|
||||||
right: 'timeGridWeek,timeGridDay'
|
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});
|
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
|
* When a calendar range is deleted
|
||||||
*/
|
*/
|
||||||
function onClickDelete(event: EventApi): void {
|
function onClickDelete(event: EventApi): void {
|
||||||
console.log('onClickDelete', event);
|
|
||||||
|
|
||||||
if (event.extendedProps.is !== 'range') {
|
if (event.extendedProps.is !== 'range') {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
store.dispatch('calendarRanges/deleteRange', event.extendedProps.calendarRangeId);
|
store.dispatch('calendarRanges/deleteRange', event.extendedProps.calendarRangeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -31,7 +31,6 @@ export default {
|
|||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
setCurrentDatesView(ctx: Context, {start, end}: {start: Date|null, end: Date|null}): Promise<null> {
|
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) {
|
if (ctx.state.currentView.start !== start || ctx.state.currentView.end !== end) {
|
||||||
ctx.commit('setCurrentDatesView', {start, end});
|
ctx.commit('setCurrentDatesView', {start, end});
|
||||||
|
Reference in New Issue
Block a user