mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-21 02:39:10 -04:00
152 lines
5.7 KiB
JavaScript
Vendored
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();
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|