var backParams = "";
$(document).ready(function() {
$(".tree-table tr td a.link-detail").click(function(e) {
e.stopPropagation();
});
$("#clear-button").click(function() {
var checkboxes = document.querySelectorAll("#pbsfilter input[name=faculty], #pbsfilter input[name=studyType], #pbsfilter input[name=studyForm], #pbsfilter input[name=language], #pbsfilter input[name=tutorialCentre]");
var checkboxes = Array.prototype.slice.call(checkboxes, 0); // Array.from for Internet Explorer
checkboxes.forEach(function (checkbox) {
checkbox.checked = false;
});
});
$(".submit-button").click(function() {
$("#result-data").empty();
var academicYear = $("#academic-year").val();
var faculties=[];
if($("#faculty-hgf").is(":checked"))
faculties.push($("#faculty-hgf").val());
if($("#faculty-fmt").is(":checked"))
faculties.push($("#faculty-fmt").val());
if($("#faculty-fs").is(":checked"))
faculties.push($("#faculty-fs").val());
if($("#faculty-ekf").is(":checked"))
faculties.push($("#faculty-ekf").val());
if($("#faculty-fei").is(":checked"))
faculties.push($("#faculty-fei").val());
if($("#faculty-fast").is(":checked"))
faculties.push($("#faculty-fast").val());
if($("#faculty-fbi").is(":checked"))
faculties.push($("#faculty-fbi").val());
var studyTypes = [];
if($("#study-type-B").is(":checked"))
studyTypes.push($("#study-type-B").val());
if($("#study-type-N").is(":checked"))
studyTypes.push($("#study-type-N").val());
if($("#study-type-M").is(":checked"))
studyTypes.push($("#study-type-M").val());
if($("#study-type-D").is(":checked"))
studyTypes.push($("#study-type-D").val());
if($("#study-type-U").is(":checked"))
studyTypes.push($("#study-type-U").val());
var studyForms = [];
if($("#study-form-P").is(":checked"))
studyForms.push($("#study-form-P").val());
if($("#study-form-K").is(":checked"))
studyForms.push($("#study-form-K").val());
var studyLanguages = [];
if($("#language-cs").is(":checked"))
studyLanguages.push($("#language-cs").val());
if($("#language-en").is(":checked"))
studyLanguages.push($("#language-en").val());
var tutorials = [];
if($("#tutorial-1").is(":checked"))
tutorials.push($("#tutorial-1").val());
if($("#tutorial-4").is(":checked"))
tutorials.push($("#tutorial-4").val());
if($("#tutorial-5").is(":checked"))
tutorials.push($("#tutorial-5").val());
if($("#tutorial-7").is(":checked"))
tutorials.push($("#tutorial-7").val());
if($("#tutorial-9").is(":checked"))
tutorials.push($("#tutorial-9").val());
if($("#tutorial-11").is(":checked"))
tutorials.push($("#tutorial-11").val());
if($("#tutorial-17").is(":checked"))
tutorials.push($("#tutorial-17").val());
backParams = "";
var data = {};
data["academicYearId"]=academicYear;
backParams += "&academicYear=" +academicYear;
data["facultyIds"]=faculties.toString();
backParams += "&facultyIds=" + faculties.toString();
data["studyTypeIds"]=studyTypes.toString();
backParams += "&studyTypeIds=" + studyTypes.toString();
data["studyFormIds"]=studyForms.toString();
backParams += "&studyFormIds=" + studyForms.toString();
data["studyLanguageIds"]=studyLanguages.toString();
backParams += "&studyLanguageIds=" + studyLanguages.toString();
data["tutorialCentreIds"]=tutorials.toString();
backParams += "&tutorialCentreIds=" + tutorials.toString();
data["lang"]="cs";
$.ajax({
url : '/edudocs/study-plans-filter.json',
type : "POST",
data : data,
dataType : 'json',
beforeSend: function() {
var list = document.querySelector("#result-data");
list.innerHTML = '
';
},
success : function(data) {
var target = $("#result-data");
console.log(data);
createFaculties(data.faculties, academicYear, backParams, target);
$(".tree-table tr td a.link-detail").click(function(e) {
e.stopPropagation();
});
},
error : function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
},
complete: function() {
var el = document.querySelector("#result-data .spinner");
el.parentNode.removeChild(el);
}
});
});
});
function showHideRows(elem) {
var ds =elem.dataset;
console.log("FACULTY=" + ds.faculty + ", TUTORIAL=" + ds.tutorial + ", STUDY_TYPE=" + ds.type + ", PROGRAMME=" + ds.programme + ", BRANCH=" + ds.branch + ", SPECIALIZATION=" + ds.specialization);
var faculty = ds.faculty;
var tutorial = ds.tutorial;
var type = ds.type;
var programme=ds.programme;
var branch = ds.branch
if(programme && !branch) {
var elems = document.querySelectorAll("tr[data-faculty='" + faculty + "'][data-tutorial='" + tutorial + "'][data-type='" + type + "'][data-programme='" + elem.dataset.programme + "'][data-branch]");
for (i=0; i < elems.length; i++) {
var e = elems[i];
var info = e.dataset;
if (e.style && e.style.display === "none") {
if(!info.specialization)
e.style = "";
} else {
e.style = "display: none";
}
}
} else if(programme && branch) {
var elems = document.querySelectorAll("tr[data-faculty='" + faculty + "'][data-tutorial='" + tutorial + "'][data-type='" + type + "'][data-programme='" + elem.dataset.programme + "'][data-branch='" + branch + "'][data-specialization]");
for (i=0; i < elems.length; i++) {
var e = elems[i];
var info = e.dataset;
if (e.style && e.style.display === "none") {
e.style = "";
} else {
e.style = "display: none";
}
}
}
var arrow = elem.querySelector("td i");
arrow.classList.toggle("fa-chevron-right");
arrow.classList.toggle("fa-chevron-down");
}
function createFaculties(faculties, academicYear, backParams, target) {
$.each(faculties, function(i, item) {
var facultyDiv = $("" + item.title + "
");
if(target)
target.append(facultyDiv);
createTutorials(academicYear, item.tutorialCentre, item.id, backParams, facultyDiv);
});
}
function createTutorials(academicYear, centres, facultyId, backParams, target) {
$.each(centres, function(i, item) {
var centreDiv = $("Místo výuky: " + item.title + "
");
var table = $("" +
"Program | Obor | " +
"Specializace | Forma prezenční | Forma kombinovaná | " +
"Forma distanční | Forma celoživotní |
---|
");
if(target) {
target.append(centreDiv);
target.append(table);
var tbodyTarget = $("#faculty-" + facultyId + "-tutorial-" + item.id + "-tbody");
createTable(academicYear, item.studyTypes, facultyId, item.id, backParams, tbodyTarget);
}
});
}
function generateProgrammeRowHtml(hasSubRows, academicYear, faculty, tutorial, type, programme, title, backParams) {
var html = "" +
"" + (hasSubRows ? "" : "") + "" + title +
" | " +
" | | | | | |
";
return html;
}
function generateBranchRowHtml(hasSubRows, academicYear, faculty, tutorial, type, programme, branch, title, backParams) {
var html = "" +
" | " + (hasSubRows ? "" : "") + "" + title +
" | " +
" | | | | |
";
return html;
}
function generateSpecializationRowHtml(academicYear, faculty, tutorial, type, programme, branch, specialization, title, backParams) {
var html = "" +
" | | " + title + " | " + " | | | |
";
return html;
}
function generateStudyPlanHtml(academicYear, id, programmeId, branchId, title, backParams) {
if(programmeId !== null & branchId !== null) {
return '';
} else if(programmeId !== null) {
return '';
} else {
return '';
}
}
function langTitle(id) {
if(id == 1) {
return "výuka v češtině";
} else if(id == 2) {
return "výuka v angličtině";
} else if(id == 3) {
return "výuka v němčině";
}
return "";
}
function createTable(academicYear, studyTypes, facultyId, tutorialId, backParams, target) {
$.each(studyTypes, function(i, type) {
if(target) {
target.append($("Studium " + type.title + " |
"));
$.each(type.programmes, function(i, programme) {
if(target) {
var hasBranches = (programme.branches && programme.branches.length > 0)? true : false;
var programmeHtml = generateProgrammeRowHtml(hasBranches, academicYear, facultyId, tutorialId, type.id, programme.id, programme.title, backParams);
target.append($(programmeHtml));
$.each(programme.forms, function(i, form) {
var programmePattern = "tr[data-faculty='" + facultyId + "'][data-tutorial='" + tutorialId + "'][data-type='" + type.id + "'][data-programme='" + programme.id + "'] td[data-form='" + form.id + "']";
var programmeStudyFormTarget = $(programmePattern);
$.each(form.studyLangs, function(i, language) {
var programmeStudyPlanHtml = generateStudyPlanHtml(academicYear, language.studyPlanId, language.programmeStudyPlanId, language.branchStudyPlanId, langTitle(language.id), backParams);
programmeStudyFormTarget.append($(programmeStudyPlanHtml));
});
});
$.each(programme.branches, function(i, branch) {
var hasSpecializations = (branch.specializations && branch.specializations.length > 0)? true : false;
var branchHtml = generateBranchRowHtml(hasSpecializations, academicYear, facultyId, tutorialId, type.id, programme.id, branch.id, branch.title, backParams);
target.append($(branchHtml));
$.each(branch.forms, function(i, form) {
var branchPattern = "tr[data-faculty='" + facultyId + "'][data-tutorial='" + tutorialId + "'][data-type='" + type.id + "'][data-programme='" + programme.id + "'][data-branch='" + branch.id + "'] td[data-form='" + form.id + "']";
var branchStudyFormTarget = $(branchPattern);
$.each(form.studyLangs, function(i, language) {
var branchStudyPlanHtml = generateStudyPlanHtml(academicYear, language.studyPlanId, language.programmeStudyPlanId, language.branchStudyPlanId, langTitle(language.id), backParams);
branchStudyFormTarget.append($(branchStudyPlanHtml));
});
});
$.each(branch.specializations, function(i, specialization) {
var branchHtml = generateSpecializationRowHtml(academicYear, facultyId, tutorialId, type.id, programme.id, branch.id, specialization.id, specialization.title, backParams);
target.append($(branchHtml));
$.each(specialization.forms, function(i, form) {
var specializationPattern = "tr[data-faculty='" + facultyId + "'][data-tutorial='" + tutorialId + "'][data-type='" + type.id + "'][data-programme='" + programme.id + "'][data-branch='" + branch.id + "'][data-specialization='" + specialization.id + "'] td[data-form='" + form.id + "']";
var specializationStudyFormTarget = $(specializationPattern);
$.each(form.studyLangs, function(i, language) {
var specializationStudyPlanHtml = generateStudyPlanHtml(academicYear, language.studyPlanId, language.programmeStudyPlanId, language.branchStudyPlanId, langTitle(language.id), backParams);
specializationStudyFormTarget.append($(specializationStudyPlanHtml));
});
});
});
});
}
});
}
});
}