Files
c-cms-legacy/public/js/calendar.js
2020-07-30 17:46:11 -04:00

152 lines
5.7 KiB
JavaScript
Vendored

function initFullCalendar(authToken) {
document.addEventListener('DOMContentLoaded', function () {
let urlParam = new URLSearchParams(window.location.search);
let initDate = urlParam.get("d");
if (initDate == null) {
initDate = moment().format("YYYY-MM-DD");
urlParam.set("d",initDate.toString());
}
history.pushState({id: 'schedule'},'Horaire - C-CMS', '/admin/schedule?'+urlParam.toString());
var calendarEl = document.getElementById('fullCalendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: ['dayGrid','interaction','list'],
locale: 'fr-ca',
header: {
left: 'title',
center: 'dayGridMonth,listWeek',
right: 'prev,next'
},
defaultDate: initDate,
events: '/api/schedule/events',
eventRender: function(event, element) {
if (event.event.extendedProps.icon && event.view.type == 'dayGridMonth')
{
let i = document.createElement('i');
i.className = event.event.extendedProps.icon+' mx-1';
event.el.querySelector('.fc-content').prepend(i);
}
else if(event.event.extendedProps.icon && event.view.type == 'listWeek')
{
let i = document.createElement('i');
i.className = event.event.extendedProps.icon+' mr-1';
event.el.querySelector('.fc-list-item-title').prepend(i);
}
},
eventClick: function (info) {
$.get("/api/schedule/events/modal/full/" + info.event.id + "/"+ info.event.extendedProps.extraParams.db_type + "?api_token="+authToken, function (data) {
$("#modal-content").html(data);
let urlParams = new URLSearchParams(window.location.search);
urlParams.set("e",info.event.id);
history.pushState({id: 'schedule'},'Horaire - C-CMS', '/admin/schedule?'+urlParams.toString());
});
$('#schedulemodal').modal('toggle')
},
datesRender(arg) {
urlParam.set("d",moment(arg.view.currentStart).format("YYYY-MM-DD"));
history.pushState({id: 'schedule'},'Horaire - C-CMS', '/admin/schedule?'+urlParam.toString());
},
dateClick: function (info) {
var date = moment(info.date).format("YYYY-MM-DD");
Swal.fire({
title: 'Ajouter un événement?',
text: "Voulez vous ajouter un événement le "+date,
type: 'warning',
showCancelButton: true,
confirmButtonText: 'Oui',
cancelButtonText: 'Non',
}).then((result) => {
if (result.value) {
window.location.href = '/admin/schedule/add/'+date;
}
})
}
});
calendar.render();
if (urlParam.get('e') != null) {
$.get("/api/schedule/events/modal/full/" + urlParam.get('e')+ "/event?api_token="+authToken, function (data) {
$("#modal-content").html(data);
$('#schedulemodal').modal('toggle')
});
}
});
}
function closeScheduleModal() {
let urlParams = new URLSearchParams(window.location.search);
urlParams.delete("e");
if (urlParams.entries().next().done) {
history.pushState({id: 'schedule'},'Horaire - C-CMS', '/admin/schedule');
} else {
history.pushState({id: 'schedule'},'Horaire - C-CMS', '/admin/schedule?'+urlParams.toString());
}
$('#schedulemodal').modal('toggle');
}
function switchType(date) {
var selectInput = $('#type')
$.get( "/api/schedule/events/add/modal/"+selectInput.val()+"/"+date+"?api_token="+api_token, function( data ) {
$( "#container" ).html( data );
console.log( "Loading defaut value for activity type ("+selectInput.val()+")" );
$('select').selectpicker();
});
}
function switchTypeEDIT(date) {
var selectInput = $('#type')
Swal.fire({
title: 'êtes vous sur de vouloir changer le type d\'évenement ?',
text: "Voulez vous ajouter un événement le "+date,
type: 'warning',
showCancelButton: true,
confirmButtonText: 'Oui',
cancelButtonText: 'Non',
}).then((result) => {
if (result.value) {
$.get( "/api/schedule/events/add/modal/"+selectInput.val()+"/"+date+"?api_token="+api_token, function( data ) {
$( "#container" ).html( data );
console.log( "Loading defaut value for activity type ("+selectInput.val()+")" );
});
}
})
}
function deleteEvent(pid){
swal({
title: 'Êtes vous certain de vouloir supprimer l\'évenement?',
text: "Vous ne pourrez pas annuler cette action",
type: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Oui',
cancelButtonText: 'Non'
}).then((result) => {
if (result.value) {
(function($) {
$.post('/api/schedule/event/delete/'+pid+'?api_token='+api_token, function(data) {
console.log('Delete');
});
})(jQuery);
swal(
'Supprimé!',
"L'évenement a été supprimé",
'success'
).then((result) => {
if (result.value) {
location.reload();
}
})
}
})
}