//alumnosObj.push({id: , nombre:"", plan:"", matArr:[{id, desc, clave, plan, sem, grupo_id, grupo, califArr{calif, fecha, calif_tipo, revalidada}}]}); var _min_calif = 8;//para select //carga las materias en el objeto alumnosObj function loadMaterias(){ if(idArr.length > 0){ $.ajax({ url: './action/asignamaterias_select.php', type: 'POST', dataType: 'json', data: { idArr: idArr, plan: _plan}, success: function(result) { if(result["error"]!= "" && result["error"] !== undefined){ $("#errorBox").collapse('show'); $("#errorBox_text").html(result["error"]); $('#messageBox')[0].scrollIntoView({ block: "end" }); }else{ //cargar datos de materias if(result["alumnos"].length > 0){//hay materias alumnosObj = result["alumnos"]; }//hay materias printAlumnosDataHTML();//imprime datos de alumnos printMateriasHTML();//imprime listado } }, error: function(jqXHR, textStatus, errorThrown ){ $("#errorBox").collapse('show'); $("#errorBox_text").html(errorThrown); $('#messageBox')[0].scrollIntoView({ block: "end" }); } });// }//fin hay semestre } function buscaAlumno(clave){ var i; for(i = 0; i= 0){//si está alumnosObj[index].matArr.splice(pos, 1); return true; } return false; } function printAlumnosDataHTML(){ for(var index=0; index < alumnosObj.length; index++){ var alumno = alumnosObj[index].id; $("#tab"+alumno+" .nombre").text(alumnosObj[index].nombre); $("#tab"+alumno+" .plan").text(alumnosObj[index].plan); } } function datosMateriaHTML(desc, clave, plan){ return ''+desc+'
['+clave+'] '+plan+''; } //alumnosObj.push({id: , nombre:"", plan:"", matArr:[{id, desc, clave, plan, sem, grupo_id, grupo, califArr{calif, fecha, calif_tipo, revalidada}}]}); //Para materias cargdas. Ya pueden tener Calificación function printMateriasHTML(){ for(var index=0; index < alumnosObj.length; index++){ var alumno = alumnosObj[index].id; var nuevaMateria =""; for(var m = 0; m < alumnosObj[index].matArr.length; m++){ //{id, desc, clave, plan, calif, fecha, extra, revalidada} var id_mat = alumnosObj[index].matArr[m].id; var desc = alumnosObj[index].matArr[m].desc; var clave = alumnosObj[index].matArr[m].clave; var plan = alumnosObj[index].matArr[m].plan; //var sem = alumnosObj[index].matArr[m].sem; //var califArr = alumnosObj[index].matArr[m].califArr; //var extra = (alumnosObj[index].matArr[m].extra) ? 'checked="true"' : ''; nuevaMateria =""; //Sólo muestra revalidadas if(alumnosObj[index].matArr[m].califArr.length > 0 && alumnosObj[index].matArr[m].califArr[0].revalidada){ nuevaMateria = ''; nuevaMateria += '\ '; nuevaMateria += datosMateriaHTML(desc, clave, plan); nuevaMateria += '\ '; nuevaMateria += ''; }else{ nuevaMateria = ''; nuevaMateria += ' '; nuevaMateria += datosMateriaHTML(desc, clave, plan); nuevaMateria += ''; nuevaMateria += ''; } $(nuevaMateria).appendTo("#tab"+alumno+" .table-asignadas tbody"); } } } //Para materias nuevas. No necesita Calificación y se puede borrar function creaMateriaHTML(index, id_mat, desc, clave, plan){ var alumno = alumnosObj[index].id; var nuevaMateria =""; nuevaMateria = ''; nuevaMateria += '\ '; nuevaMateria += datosMateriaHTML(desc, clave, plan); nuevaMateria += '\ '; nuevaMateria += ''; $(nuevaMateria).appendTo("#tab"+alumno+" .table-asignadas tbody"); } function changeAllChecks(activo){ $("#selectAll").prop("checked", activo);//deselecciona general $(".select_materia").prop("checked", activo);//deselecciona cada uno $("#btn_lote").prop("disabled", !activo);//bloquea boton } function preguntarAntesDeSalir(){ if (_modificado) return "¿Deseas abandonar la página? Los últimos cambios que realizaste no se guardarán"; } window.onbeforeunload = preguntarAntesDeSalir; $(document).on("change", ".check-modificada", function(e){ _modificado = true; }); $(document).ready(function(){ loadMaterias(); _selected = $(".nav-pills .active").data("id"); $("#btn_lote").prop("disabled", true); $("#selectAll").change(function(){//selecciona materias para asignar var check = $(this).prop("checked"); $(".select_materia").prop("checked", check); $("#btn_lote").prop("disabled", !check); }); $(".select_materia").change(function(event){ event.stopPropagation(); //var check = $(this).prop("checked"); var numberOfChecked = $('.select_materia:checked').length; var totalCheckboxes = $('.select_materia').length; if(numberOfChecked == totalCheckboxes){ $("#selectAll").prop("checked", true); }else{ $("#selectAll").prop("checked", false); } if(numberOfChecked > 0){ $("#btn_lote").prop("disabled", false); }else{ $("#btn_lote").prop("disabled", true); } }); $("#btn_lote").click(function(){//asigna materias seleccionadas thisIndex = buscaAlumno(_selected);//devuelve indice var asignadas = 0; $(".select_materia:checked").each(function(index) { if(insertaMateriaAlumno(thisIndex, $(this).data("id"), $(this).data("desc"), $(this).data("clave"), $(this).data("plan"))){ creaMateriaHTML(thisIndex, $(this).data("id"), $(this).data("desc"), $(this).data("clave"), $(this).data("plan"), $(this).data("plan")); _modificado = true; }else{ asignadas++; } }); if(asignadas > 0){ $("#errorBox").collapse('show'); $("#errorBox_text").html(asignadas+" materias ya está asignadas al alumno y fueron omitidas. Si no se muestra en esta pantalla, se asignó como materia regular."); } changeAllChecks(false);//deselecciona checks de busqueda de materias $("#tab"+_selected).find(".calif:enabled:visible:first").focus(); $('#messageBox')[0].scrollIntoView({ block: "end" }); }); //cambia tab, cambia variable de activo $(".nav-pills .nav-link").click(function(){ _selected = $(this).data("id"); }); $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { var clave = $(e.target).data("id"); $("#tab"+clave).find(".calif:enabled:visible:first").focus(); }) $("#filter_sem").change(function(){ if($("#filter_sem").val() == ""){ $("#result_block").addClass("d-none"); }else{ $.ajax({ url: './action/materiaasignar_all.php', type: 'POST', dataType: 'json', data: { sem: $("#filter_sem").val(), plan:_plan}, success: function(result) { if(result["error"]!= "" && result["error"] !== undefined){ $("#errorBox").collapse('show'); $("#errorBox_text").html(result["error"]); $('#messageBox')[0].scrollIntoView({ block: "end" }); }else{ //cargar datos de materia var rows = $("#mat_asignar > tr").length;//cuenta accesos actuales if(result["materias"].length == 0){//no hay materias $("#result_block").addClass("d-none"); $("#result_sin").removeClass("d-none"); }else{ $("#result_sin").addClass("d-none"); //console.log(result["materias"]); $("#result_block").removeClass("d-none"); if(rows > result["materias"].length){//sobran //borrar renglones extra (rows - result.length) pero dejar al menos 1 while(rows > result["materias"].length && rows > 1){ $("#mat_asignar tr:last-child").remove(); rows--; } }else{//faltan // clone the rest of the rows for(var i=0; i<(result["materias"].length - rows); i++){ $("#mat_asignar tr:first-child").clone(true).appendTo("#mat_asignar"); } } if(result["materias"].length != 0){//hay materias? $("#mat_asignar").children().each(function(index) { if(index < result["materias"].length){//llenar info $(this).prop("id", "mat"+result["materias"][index]["id"]); $(this).data("id", result["materias"][index]["id"]); $(this).find(".materia-nombre").html(result["materias"][index]["desc"]); $(this).find(".materia-clave").html(result["materias"][index]["clave"]); $(this).find(".materia-plan").html(result["materias"][index]["plan"]); $(this).find(".select_materia").prop("id", "check"+result["materias"][index]["id"]); $(this).find(".select_materia").val(result["materias"][index]["id"]); $(this).find(".select_materia").data("id", result["materias"][index]["id"]).data("desc", result["materias"][index]["desc"]).data("clave", result["materias"][index]["clave"]).data("plan", result["materias"][index]["plan"]) $(this).find("label").prop("for", "check"+result["materias"][index]["id"]); } }); } }//hay materias } }, error: function(jqXHR, textStatus, errorThrown ){ $("#errorBox").collapse('show'); $("#errorBox_text").html(errorThrown); } });// }//fin hay semestre }); //click //al abrir modal $("#modal_confirm").on('show.bs.modal', function (event) { var button = $(event.relatedTarget);// Button that triggered the modal $("#cve_borrar").val(button.data("cve")); $("#mat_borrar").val(button.data("mat")); if(button.data("cve") == 0) $("#all-msg").removeClass("d-none"); else $("#all-msg").addClass("d-none"); }); $(".btn-borrar").click(function(){ var pos; if($("#cve_borrar").val() == 0){//todos for(pos=0; pos, nombre:"", plan:"", matArr:[{id, desc, clave, plan, sem, grupo_id, grupo, califArr{calif, fecha, calif_tipo, revalidada}}]}); $("#btn-guardar").click(function(){ //guarda calif $(".table-asignadas .materia").each(function(index) {//cada renglón var pos = buscaAlumno($(this).data("al")); var matPos = buscaMateria(pos, $(this).data("mat")); var calif = []; if($(this).find(".calif").val() != ""){ calif.push({calif: $(this).find(".calif").val(), calif_tipo:1, revalidada:true}); } alumnosObj[pos].matArr[matPos].califArr = calif; }); $.ajax({ url: './action/revalidamaterias_update.php', type: 'POST', dataType: 'json', async: false, data: { json: JSON.stringify(alumnosObj)}, beforeSend: function(x) { if (x && x.overrideMimeType) { x.overrideMimeType("application/j-son;charset=UTF-8"); } }, success: function(result) { if(result["error"]!= "" && result["error"] !== undefined){ $("#errorBox").collapse('show'); $("#errorBox_text").html(result["error"]); }else{ $("#errorBox").collapse('hide'); } _modificado = false; $("#successBox").collapse('show'); $("#successBox_text").html(result["ok"]); $('#messageBox')[0].scrollIntoView({ block: "end" }); }, error: function(jqXHR, textStatus, errorThrown ){ $("#errorBox").collapse('show'); $("#errorBox_text").html(errorThrown); $('#messageBox')[0].scrollIntoView({ block: "end" }); } });//ajax }); });