/* * Funciones generales de horario * Necesita variables globales: _w, _h, _hora_min, _frac */ //$("#dia1").position().top //$("#dia1").position().left var toast = { timer : null, show : function (message) { // SET MESSAGE + SHOW BOX document.getElementById("copy-box").innerHTML = message; document.getElementById("copy-box").style.display = "block"; // RESET TIMER IF STILL RUNNING if (toast.timer != null) { clearTimeout(toast.timer); toast.timer = null; } // SET DISPLAY TIME HERE toast.timer = setTimeout(toast.hide, 1500); }, hide : function () { document.getElementById("copy-box").style.display = "none"; clearTimeout(toast.timer); toast.timer = null; } }; function getX(dia){//recibe dia devuelve pos en la que está la celda return Math.ceil($("#dia"+dia).position().left); } function getY(dia){//recibe dia devuelve pos en la que está la celda return Math.ceil($("#dia"+dia).position().top + 30); } function getDia(x,y){//dice qué día del mes es con base a las coordenadas var col = Math.ceil(x / _w); var row = Math.ceil(y / _h); var col_1 = Math.ceil(getX(1) / _w);//pos del día 1 return (7 * row) + col - col_1+1; //+1 porque no empieza en 0 } function getAlto(alto){//calcula alto del bloque html return alto * _h / (60/_frac); } $(document).on( "mouseenter", ".menu-wrapper", function(){ $(this).find('.menu-flotante').removeClass('d-none'); }); $(document).on( "mouseleave", ".menu-wrapper", function(){ $(this).find('.menu-flotante').addClass('d-none'); }); function getIndexClase(idobj){//busca en qué posición del arreglo está el id del horario for(var i=0; i < clasesObj.length; i++){ if(clasesObj[i].id_obj == idobj){ return i; } } return -1; } function getObjID(id_db){//busca en qué posición del arreglo está el id del horario for(var i=0; i < clasesObj.length; i++){ if(clasesObj[i].id_db == id_db){ return clasesObj[i].id_obj; } } return -1; } $(document).on( "click", ".bloque-ver", function(event){ var btn = $(event.target); var thisIndex = getIndexClase(btn.parents('.bloque-evento').data("id_obj")); $('#modal_ver').find('.titulo').text(clasesObj[thisIndex].titulo); $('#modal_ver').find('.fecha').text(clasesObj[thisIndex].dia); $('#modal_ver').find('.fechas_total').text(clasesObj[thisIndex].fechas_total); if(clasesObj[thisIndex].todo_dia) $('#modal_ver').find('.hora').text("Todo el día"); else $('#modal_ver').find('.hora').text(clasesObj[thisIndex].hora_ini+" a "+clasesObj[thisIndex].hora_fin); if(clasesObj[thisIndex].desc != ""){ $('#modal_ver').find('.desc').html(clasesObj[thisIndex].desc); $('#modal_ver').find('.desc').removeClass("d-none"); }else{ $('#modal_ver').find('.desc').addClass("d-none"); } if(clasesObj[thisIndex].tiene_evidencia){ $('#modal_ver').find('.evidencia').html(clasesObj[thisIndex].evidencia); $('#modal_ver').find('#ver_evidencia').removeClass("d-none"); }else{ $('#modal_ver').find('#ver_evidencia').addClass("d-none"); } if(clasesObj[thisIndex].insc_ini.length > 0 && clasesObj[thisIndex].insc_fin.length > 0){ $('#modal_ver').find('#ver_inscripciones').removeClass("d-none"); $('#modal_ver').find('.insc_ini').text(clasesObj[thisIndex].insc_ini); $('#modal_ver').find('.insc_fin').text(clasesObj[thisIndex].insc_fin); }else{ $('#modal_ver').find('#ver_inscripciones').addClass("d-none"); } $('#modal_ver').find('.categoria').text(clasesObj[thisIndex].categoria_desc); $('#modal_ver').find('.categoria_color').css({color: clasesObj[thisIndex].color}); var rows = $("#datos_perfil .perfil").length;//cuenta renglones actuales if(rows > 0){//existe el área de perfil if(clasesObj[thisIndex].perfiles.length == 0){ $("#datos_perfil").hide(); }else{ $("#datos_perfil").show(); //borrar renglones extra pero dejar al menos 1 while(rows > 1){ $("#datos_perfil .perfil:last-child").remove(); rows--; } for(var i=0; i 0 && new_month == 1){//suma mes new_year++; } $("#mes").val(new_month); $("#anho").val(new_year); $("#formaCalendario").submit(); }); //-- Fin calendario $('#modal_exportar').on('show.bs.modal', function (event) { changeURL(); }); $('#modal_exportar .perfil').change(function() { changeURL(); }); $('.btn-exportar').click(function(){//enviar evento nuevo if(validaExportar()){ var perfilesArr = []; if($("#modal_exportar").find(".perfil").length > 0){ $.each($('#modal_exportar .perfil'), function(){ if($(this).prop("checked")){ perfilesArr.push($(this).val()); } }); }else{ $.each($('#modal_exportar .perfil_hidden'), function(){ perfilesArr.push($(this).val()); }); } $('#modal_exportar').modal('hide'); $("#perfiles_exportar").val(perfilesArr.toString()); $("#forma_exportar").attr("action", "./export/ical_calendario.php"); $("#forma_exportar").submit(); } }); $('.btn-pdf').click(function(){//enviar evento nuevo if(validaExportar()){ var perfilesArr = []; if($("#modal_exportar").find(".perfil").length > 0){ $.each($('#modal_exportar .perfil'), function(){ if($(this).prop("checked")){ perfilesArr.push($(this).val()); } }); }else{ $.each($('#modal_exportar .perfil_hidden'), function(){ perfilesArr.push($(this).val()); }); } $('#modal_exportar').modal('hide'); $("#perfiles_exportar").val(perfilesArr.toString()); $("#forma_exportar").attr("action", "./export/pdf_calendario.php"); $("#forma_exportar").submit(); } }); $(".btn-copiar").click(function(){ var textoCopiar = $(this).parents(".input-group").find('.texto-copiar'); textoCopiar.select(); document.execCommand("copy"); window.getSelection().removeAllRanges(); toast.show("URL copiada!"); //textoCopiar.blur(); }); }); function validaExportar(){ var error = false; if($("#modal_exportar").find(".perfil").length > 0){ if($("#modal_exportar").find(".perfil:checked").length == 0){ error = true; $("#modal_exportar .perfil").addClass("is-invalid"); $("#perfil_exportar_error").removeClass("d-none"); }else{ $("#perfil_exportar_error").addClass("d-none"); } } return !error; } function changeURL(){ var base = "http://200.13.89.48/ical.php?"; if(validaExportar()){ var perfilesArr = []; if($("#modal_exportar").find(".perfil").length > 0){//admon $.each($('#modal_exportar .perfil'), function(){ if($(this).prop("checked")){ perfilesArr.push($(this).val()); } }); $("#suscripcion_url").val(""); $.ajax({ url: './action/calendario_hash.php', type: 'POST', dataType: 'json', data: {per: $("#suscripcion_url").data("periodo"), perf: perfilesArr.toString()}, success: function(result) { if(result["error"]!= "" && result["error"] !== undefined){ $('#modal_categoria').modal("hide"); $("#errorBox").collapse('show'); $("#errorBox_text").html(result["error"]); $('#messageBox')[0].scrollIntoView({ block: "end" }); }else{ base = base+"valida="+result["hash"]+"&per="+$("#suscripcion_url").data("periodo")+"&perf="+perfilesArr.toString(); $("#suscripcion_url").val(base) } }, error: function(jqXHR, textStatus, errorThrown ){ $('#modal_categoria').modal("hide"); $("#errorBox").collapse('show'); $("#errorBox_text").html("Error al guardar la categoría"); $('#messageBox')[0].scrollIntoView({ block: "end" }); } });//ajax }else{//usuario if( $("#suscripcion_url").val() == ""){ $.each($('#modal_exportar .perfil_hidden'), function(){ perfilesArr.push($(this).val()); }); $.ajax({ url: './action/calendario_hash.php', type: 'POST', dataType: 'json', data: {per: $("#suscripcion_url").data("periodo"), perf: perfilesArr.toString()}, success: function(result) { if(result["error"]!= "" && result["error"] !== undefined){ $('#modal_categoria').modal("hide"); $("#errorBox").collapse('show'); $("#errorBox_text").html(result["error"]); $('#messageBox')[0].scrollIntoView({ block: "end" }); }else{ base = base+"valida="+result["hash"]+"&per="+$("#suscripcion_url").data("periodo")+"&perf="+perfilesArr.toString(); $("#suscripcion_url").val(base) } }, error: function(jqXHR, textStatus, errorThrown ){ $('#modal_categoria').modal("hide"); $("#errorBox").collapse('show'); $("#errorBox_text").html("Error al guardar la categoría"); $('#messageBox')[0].scrollIntoView({ block: "end" }); } });//ajax } } $("#suscripcion_block").show(); }else{ $("#suscripcion_block").hide(); } } function creaEventoHTML(id, posX, posY, color, texto, todo_dia, editable, total, hora_ini, insignias_total){//crea bloque HTML var edit_class = ""; var repiteHTML =""; var completo_class =""; var completo_color =""; var hora_class =""; var sort=2; var hora = ""; if(parseInt(todo_dia) == 1 || todo_dia == true){ sort = -1; completo_color = 'background-color:'+color; completo_class = 'evento-completo'; } else{ var hora_arr = hora_ini.split(":"); hora_class = '' ; sort = parseInt(hora_arr[0]); if(sort >12){ hora = sort-12; }else if(sort == 0){ hora = 12; }else hora = sort; if(sort >= 12) hora = hora+"pm"; else hora = hora+"am"; hora = ''+hora+''; } if(parseInt(total) > 1){ repiteHTML = ''; } if(editable === true ){edit_class = "bloque-draggable ui-draggable ui-draggable-handle";} var nuevoHorario = '
\ \
'; return $(nuevoHorario); }