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 = $("" + "
ProgramObor" + "SpecializaceForma 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)); }); }); }); }); } }); } }); }