var nbOfLevel = 0;
var nbOfPeriode = 0;
var eventType;
var editorMode = 'schedule';
function initEditor(event_id = 1, mode = 'schedule')
{
let isLoad = $.Deferred();
let editor = $('#editor');
editorMode = mode;
eventType = null;
let eventTypePromise = null;
if (mode == "schedule-edit") {
eventTypePromise = $.ajax({
type: 'GET',
url: '/api/event/'+event_id+'?api_token='+api_token,
success: function (template) {
eventType = template;
},
error: function () {
showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center')
}
});
} else {
eventTypePromise = $.ajax({
type: 'GET',
url: '/api/eventType/'+event_id+'?api_token='+api_token,
success: function (template) {
eventType = template;
},
error: function () {
showNotification('error','Impossible d\'initialiser l\'éditeur d\'horaire ...','top', 'center')
}
});
}
$.when(eventTypePromise).done(function () {
console.log(eventType);
nbOfLevel = eventType['schedule_model']['niveaux'].length;
nbOfPeriode = eventType['schedule_model']['periodes'].length;
updateWidth();
editor.html(getTemplate(eventType['schedule_model']));
$('.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']
]
});
if (mode == 'eventType' || mode == 'schedule-add' || mode == "schedule-edit")
{
let scheduleModel = eventType['schedule_model'];
if (scheduleModel['default_value'])
{
$.each(scheduleModel['niveaux'], function (level_id, level) {
$.each(scheduleModel['periodes'], function (periode_id, value) {
if (scheduleModel['default_value'][level_id,periode_id])
{
updateLevel(periode_id,level_id,scheduleModel['default_value'][periode_id][level_id]);
}
});
});
}
if (mode != 'schedule-add')
{
$('.scheduleInput').removeAttr('required')
}
}
if (mode == 'schedule-add')
{
$('.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'
}
});
}
initAutoComplete("AutoCompleteUser");
initAutoCompleteOCOM('AutoCompleteOCOM');
isLoad.resolve();
});
return isLoad.promise();
}
function updateWidth()
{
$('#editor').css('width',(23*(nbOfLevel+1))+'rem');
}
function getTemplate(scheduleModel)
{
let headerHTML = '';
$.each(scheduleModel['niveaux'], function (index, value) {
headerHTML = headerHTML+getHeader(index,value['name']);
});
let periodesHTML = '';
$.each(scheduleModel['periodes'], function (index, value) {
periodesHTML = periodesHTML+getPeriode(index,value,scheduleModel['niveaux']);
});
return '
\n' +
' \n' +
headerHTML +
'
\n' +
'
\n'+
periodesHTML +
'\n';
}
function getHeader(level_id,level_name)
{
return ''
}
function getPeriode(id,periode,niveaux) {
let temp = '';
$.each(niveaux, function (index, value) {
temp = temp+getCourse(index,id);
});
return '\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
' \n' +
' clear\n' +
' \n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
' clear\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
' clear\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
temp +
'
\n' +
'\n' +
'
\n' +
'
'
}
function getCourse(level_id,periode_id)
{
let isCourse = "";
if (eventType['schedule_model']['default_value'])
{
if(eventType['schedule_model']['default_value'][periode_id][level_id]['use_course'] != null)
{
isCourse = "required";
}
}
level_id++;
periode_id++;
return '\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
' \n' +
' clear\n' +
' \n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
' \n' +
' \n' +
' done\n' +
' \n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n' +
'
\n'+
'
';
}
function updateLevel(p,l,level)
{
p++;
l++;
$('#desc_n'+l+'_p'+p).val(level['desc']);
$('#ocom_n'+l+'_p'+p).val(level['ocom']);
$('#name_n'+l+'_p'+p).val(level['name']);
$('#location_n'+l+'_p'+p).val(level['location']);
$('#instruc_n'+l+'_p'+p).val(level['instructor']);
if (level['use_course'] != 'on')
{
selectCourseMode('autre',l,p);
}
}
function removePeriode()
{
$('#row-'+(nbOfPeriode-1)).remove();
eventType['schedule_model']['periodes'].pop();
nbOfPeriode--;
}
function removeLevel()
{
$('#levelHeader-'+(nbOfLevel-1)).remove();
for (let i = 0; i < nbOfPeriode; i++) {
$('#container-'+(nbOfLevel)+'-'+(i+1)).remove();
}
eventType['schedule_model']['niveaux'].pop();
updateWidth();
nbOfLevel--;
}
function addLevel()
{
$('#levelHeader-'+(nbOfLevel-1)).after(getHeader(nbOfLevel,'Niveau '+(nbOfLevel+1)));
let scheduleModel = eventType['schedule_model'];
$.each(scheduleModel['periodes'], function (periode_id, value) {
console.log($('#container-'+(nbOfLevel)+'-'+periode_id));
$('#container-'+(nbOfLevel)+'-'+(periode_id+1)).after(getCourse(nbOfLevel,periode_id));
});
eventType['schedule_model']['niveaux'].push({name:'Niveau '+(nbOfLevel+1)});
updateWidth();
nbOfLevel++;
initAutoComplete("AutoCompleteUser");
initAutoCompleteOCOM('AutoCompleteOCOM');
if (editorMode == 'eventType')
{
$('.scheduleInput').removeAttr('required')
}
}
function addPeriode()
{
$('#row-'+(nbOfPeriode-1)).after(getPeriode(nbOfPeriode,{
"name": "Periode "+nbOfPeriode,
"begin_time": "",
"end_time": ""
},eventType['schedule_model']['niveaux']));
eventType['schedule_model']['periodes'].push({
"name": "Periode "+nbOfPeriode,
"begin_time": "",
"end_time": ""
});
nbOfPeriode++;
initAutoComplete("AutoCompleteUser");
initAutoCompleteOCOM('AutoCompleteOCOM');
if (editorMode == 'eventType')
{
$('.scheduleInput').removeAttr('required')
}
}
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');
$('#ocom_n'+niveau+'_p'+periode).prop('required',true);
$('#name_n'+niveau+'_p'+periode).prop('required',true);
$('#instruc_n'+niveau+'_p'+periode).prop('required',true);
$('#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');
$('#ocom_n'+niveau+'_p'+periode).removeAttr('required');
$('#name_n'+niveau+'_p'+periode).removeAttr('required');
$('#instruc_n'+niveau+'_p'+periode).prop('required',true);
$('#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+1);
}
}
function selectCourseModeNiveau(mode,niveau)
{
for (let i = 0; i < nbOfPeriode; i++) {
selectCourseMode(mode,niveau+1,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')
}
}
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 loadEventType(date,id = 1)
{
if ($('#type'))
{
id = $('#type').val();
}
initEditor(id,'schedule-add').done(function () {
if (eventType['is_mandatory'] == 1)
{
$('#is_mandatory').prop('checked',true);
}
else
{
$('#is_mandatory').removeAttr('checked');
}
if (eventType['use_schedule'] == 1)
{
$('#use_schedule').prop('checked',true);
switchUseSchedule();
}
else
{
$('#use_schedule').removeAttr('checked');
switchUseSchedule();
}
if (eventType['hidden'] == 1)
{
$('#hidden').prop('checked',true);
}
else
{
$('#hidden').removeAttr('checked');
}
if (eventType['use_weekly_msg'] == 1)
{
$('#use_weekly_msg').prop('checked',true);
switchUseWeeklyMsg();
}
else
{
$('#use_weekly_msg').removeAttr('checked');
switchUseWeeklyMsg();
}
let begin_time = $('#begin_time');
begin_time.data("DateTimePicker").destroy();
begin_time.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(moment(date+" "+eventType['begin_time']))
});
let end_time = $('#end_time');
end_time.data("DateTimePicker").destroy();
end_time.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(moment(date+" "+eventType['end_time']))
});
let weekly_msg_publication_time = $('#weekly_msg_publication_time');
weekly_msg_publication_time.data("DateTimePicker").destroy();
if (eventType['weekly_msg_publication_time'].match(/\d+/) != null || eventType['weekly_msg_publication_time'].match(/\d+/) != null)
{
weekly_msg_publication_time.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(moment(date+" "+eventType['begin_time']).subtract(
eventType['weekly_msg_publication_time'].match(/\d+/)[0],
eventType['weekly_msg_publication_time'].match(/[a-z]+/)[0]
))
});
}
else
{
weekly_msg_publication_time.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(moment(date+" "+eventType['begin_time']).subtract(1,'days'))
});
}
$('#location').val(eventType['location']);
$('#name').val(eventType['name']);
$('#admin_desc').trumbowyg('html', eventType['admin_desc']);
$('#calendar_color').val(eventType['calendar_color']);
pickr.setColor(eventType['calendar_color']);
$('#calendar_icon').val(eventType['calendar_icon']);
$('#calendar_icon_display').removeAttr('class');
$('#calendar_icon_display').addClass(eventType['calendar_icon']);
})
}
function loadEvent(date,id)
{
initEditor(id,'schedule-edit').done(function () {
if (eventType['is_mandatory'] == 1)
{
$('#is_mandatory').prop('checked',true);
}
else
{
$('#is_mandatory').removeAttr('checked');
}
if (eventType['use_schedule'] == 1)
{
$('#use_schedule').prop('checked',true);
switchUseSchedule();
}
else
{
$('#use_schedule').removeAttr('checked');
switchUseSchedule();
}
if (eventType['hidden'] == 1)
{
$('#hidden').prop('checked',true);
}
else
{
$('#hidden').removeAttr('checked');
}
if (eventType['use_weekly_msg'] == 1)
{
$('#use_weekly_msg').prop('checked',true);
switchUseWeeklyMsg();
}
else
{
$('#use_weekly_msg').removeAttr('checked');
switchUseWeeklyMsg();
}
let begin_time = $('#begin_time');
begin_time.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(moment(eventType['date_begin'],"MM/DD/YYYY HH:mm A"))
});
let end_time = $('#end_time');
end_time.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(moment(eventType['date_end'],"MM/DD/YYYY HH:mm A"))
});
let weekly_msg_publication_time = $('#weekly_msg_publication_time');
if (eventType['use_schedule'])
{
weekly_msg_publication_time.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(moment(eventType['weekly_msg_publication_time'],"MM/DD/YYYY HH:mm A"))
});
}
else
{
weekly_msg_publication_time.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(moment(eventType['date_begin'],"MM/DD/YYYY HH:mm A").subtract(1,'days'))
});
}
$('#location').val(eventType['location']);
$('#name').val(eventType['name']);
$('#admin_desc').trumbowyg('html', eventType['desc']);
$('#calendar_color').val(eventType['calendar_color']);
pickr.setColor(eventType['calendar_color']);
$('#calendar_icon').val(eventType['calendar_icon']);
$('#calendar_icon_display').removeAttr('class');
$('#calendar_icon_display').addClass(eventType['calendar_icon']);
})
}
function switchUseSchedule()
{
if($('#use_schedule').is(":checked"))
{
$('#collschedule').removeClass('d-none');
$('.scheduleInput').removeAttr('disabled')
}
else
{
$('#collschedule').addClass('d-none');
$('.scheduleInput').prop('disabled',true)
}
}
function switchUseWeeklyMsg()
{
if($('#use_weekly_msg').is(":checked"))
{
$('#collmessagedelasemaine').removeClass('d-none');
}
else
{
$('#collmessagedelasemaine').addClass('d-none');
}
}
function removeFile(file) {
document.getElementById("removedfile").setAttribute("value",document.getElementById("removedfile").getAttribute("value")+"|"+file);
document.getElementById(file).remove();
console.log(file);
}