var editorTemplate;
var nbOfPeriode;
var nbOfLevel;
var emptyPeriode;
function initScheduleEditor(id, eventType)
{
$.ajax({
type: 'GET',
url: '/api/schedule/editor/init/'+eventType+'?api_token='+api_token,
success: function (template) {
$("#"+id).html(template);
for (let pniveau = 1; pniveau <= nbOfLevel; pniveau++) {
for (let pperiode = 1; pperiode <= nbOfPeriode; pperiode++) {
loadCourse(pniveau,pperiode);
}
}
initAutoComplete("AutoCompleteUser");
initAutoCompleteOCOM('AutoCompleteOCOM');
},
error: function () {
showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center')
}
})
$('.datetimepicker').datetimepicker({
icons: {
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-chevron-up",
down: "fa fa-chevron-down",
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-screenshot',
clear: 'fa fa-trash',
close: 'fa fa-remove'
}
});
$('.richeditor').trumbowyg({
lang: 'fr',
btns: [
['viewHTML'],
['emoji'],
['undo', 'redo'], // Only supported in Blink browsers
['strong', 'em', 'del'],
['superscript', 'subscript'],
['fontfamily'],
['fontsize'],
['foreColor', 'backColor'],
['link'],
['insertImage'],
['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
['unorderedList', 'orderedList'],
['horizontalRule'],
['removeformat'],
['fullscreen']
]
});
$('select').selectpicker();
}
function switchUseWeeklyMsg()
{
if($('#use_weekly_msg').is(":checked"))
{
$('#collmessagedelasemaine').removeClass('d-none');
}
else
{
$('#collmessagedelasemaine').addClass('d-none');
}
}
function switchUseSchedule()
{
if($('#use_schedule').is(":checked"))
{
$('#collschedule').removeClass('d-none');
}
else
{
$('#collschedule').addClass('d-none');
}
}
function loadCourse(periode,niveau)
{
$.ajax({
type: 'GET',
url: '/api/schedule/editor/course/'+niveau+'/'+periode+'?api_token='+api_token,
success: function (course) {
$("#container-"+niveau+"-"+periode).html(course);
},
error: function () {
showNotification('error','Impossible de charger les cours ...','top', 'center')
}
})
}
function addPeriode()
{
var periodeToAdd = nbOfPeriode+1;
$.ajax({
type: 'GET',
url: '/api/schedule/editor/emptyperiode/'+periodeToAdd+'?api_token='+api_token+'&nblevel='+nbOfLevel,
success: function (template) {
$('#row-'+nbOfPeriode).after(template);
for (let i = 1; i <= nbOfLevel; i++) {
loadCourse(periodeToAdd,i);
}
nbOfPeriode = periodeToAdd;
initAutoComplete("AutoCompleteUser");
initAutoCompleteOCOM('AutoCompleteOCOM');
},
error: function () {
showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center')
}
})
}
function addLevel()
{
var levelToAdd = nbOfLevel+1;
var oldnbOfLevel = nbOfLevel;
nbOfLevel++;
$.ajax({
type: 'GET',
url: '/api/schedule/editor/levelHeader/'+levelToAdd+'?api_token='+api_token,
success: function (template) {
$('#levelHeader-'+oldnbOfLevel).after(template)
for (let i = 1; i <= nbOfPeriode; i++) {
$('#container-'+oldnbOfLevel+'-'+i).after('
@loaderDot
');
}
for (let i = 1; i <= nbOfPeriode; i++) {
loadCourse(i,levelToAdd);
}
},
error: function () {
showNotification('error','Impossible d\'ajouter une nouvelle entête de niveau ...','top', 'center')
}
})
setTimeout(function () {
initAutoComplete("AutoCompleteUser");
initAutoCompleteOCOM('AutoCompleteOCOM');
},1000)
}
function loadEventType(date)
{
var selectInput = $('#type');
var id = selectInput.val();
$.ajax({
type: 'GET',
url: '/api/schedule/editor/template/'+id+'?api_token='+api_token,
success: function (data) {
var result = JSON.parse(data);
editorTemplate = result;
nbOfLevel = editorTemplate.schedule_model.niveaux.length;
nbOfPeriode = editorTemplate.schedule_model.periodes.length;
initScheduleEditor("scheduleEditor",id)
$.each(result, function (i, val) {
if(i == "is_mandatory" || i == "use_schedule" || i == "use_weekly_msg")
{
if(val == 1)
{
$('#'+i).prop( "checked", true );
}
else
{
$('#'+i).prop( "checked", false );
}
switchUseSchedule();
switchUseWeeklyMsg();
}
else if(i == "begin_time" || i == "end_time")
{
var foo = $('#'+i);
var mdate = moment(date+" "+val);
foo.data("DateTimePicker").destroy();
foo.datetimepicker({
icons: {
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-chevron-up",
down: "fa fa-chevron-down",
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-screenshot',
clear: 'fa fa-trash',
close: 'fa fa-remove'
},
date: new Date(mdate)
});
}
else if(i == "weekly_msg_publication_time")
{
var foo = $('#'+i);
var mdate = moment(date+" "+result["begin_time"]);
mdate.subtract(5, 'days');
foo.data("DateTimePicker").destroy();
foo.datetimepicker({
icons: {
time: "fa fa-clock-o",
date: "fa fa-calendar",
up: "fa fa-chevron-up",
down: "fa fa-chevron-down",
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-screenshot',
clear: 'fa fa-trash',
close: 'fa fa-remove'
},
date: new Date(mdate)
});
}
else if(i == "location" || i == "name")
{
var foo = $('#'+i);
foo.val(val);
}
else if(i == "admin_desc")
{
var foo = $('#'+i);
foo.trumbowyg('html', val);
}
else if(i == "calendar_color")
{
var foo = $('#'+i);
foo.val(val);
pickr.setColor(val);
}
else if(i == "calendar_icon")
{
var foo = $('#'+i);
foo.val(val);
$('#calendar_icon_display').removeAttr('class');
$('#calendar_icon_display').addClass(val);
}
});
},
error: function () {
showNotification('error','Impossible de charger le type d\'évenement ...','top', 'center')
}
})
}
function updateCourseName(niveau, periode) {
setTimeout(function(){
let val = $('#ocom_n'+niveau+'_p'+periode).val();
if(val != "")
{
$.ajax({
type: 'GET',
url: '/api/ocom/'+val+'/name?api_token='+api_token,
success: function (data) {
if(data != null && data != "")
{
$('#name_n'+niveau+'_p'+periode).val(data);
}
},
error: function () {
showNotification('error','Erreur impossible de charger l\'objectif de rendement ...','top', 'center')
}
})
}
}, 100);
}
function selectCourseMode(mode, niveau, periode)
{
if(mode == "course")
{
$('#descContainer'+niveau+'-'+periode).addClass('d-none');
$('#isDoneContainer'+niveau+'-'+periode).removeClass('d-none');
$('#isDoneContainer'+niveau+'-'+periode).addClass('d-flex');
$('#OCOMContainer'+niveau+'-'+periode).removeClass('d-none');
$('#nameContainer'+niveau+'-'+periode).removeClass('d-none');
$('#modeSwitchC'+niveau+'-'+periode).addClass('active');
$('#modeSwitchO'+niveau+'-'+periode).removeClass('active');
$('#use_course_n'+niveau+'_p'+periode).prop("checked", true);
}
else
{
$('#descContainer'+niveau+'-'+periode).removeClass('d-none');
$('#isDoneContainer'+niveau+'-'+periode).addClass('d-none');
$('#isDoneContainer'+niveau+'-'+periode).removeClass('d-flex');
$('#OCOMContainer'+niveau+'-'+periode).addClass('d-none');
$('#nameContainer'+niveau+'-'+periode).addClass('d-none');
$('#modeSwitchC'+niveau+'-'+periode).removeClass('active');
$('#modeSwitchO'+niveau+'-'+periode).addClass('active');
$('#use_course_n'+niveau+'_p'+periode).prop("checked", false);
}
}
function selectCourseModePeriode(mode,periode)
{
for (let i = 0; i < nbOfLevel; i++) {
selectCourseMode(mode,i+1,periode);
}
}
function selectCourseModeNiveau(mode,niveau)
{
for (let i = 0; i < nbOfPeriode; i++) {
selectCourseMode(mode,niveau,i+1);
}
}
function updatePlantext(toggle,id)
{
if($('#'+toggle).is(":checked"))
{
$('#'+id).removeClass('text-warning');
$('#'+id).addClass('text-success');
$('#'+id).html('Plan de cours remis')
}
else
{
$('#'+id).addClass('text-warning');
$('#'+id).removeClass('text-success');
$('#'+id).html('Plan de cours non remis')
}
}