/* * Este script hace de puente entre el modal (tingle actualmente) y el CMS */ /** * Cache para modales * @type Array */ var modales_cargados = new Array(); /** * Instancia del modal * @type tingle.modal */ var popupModal; // LOADERS: $(document).ready(function() { // instanciate new modal popupModal = new tingle.modal({ footer: true, stickyFooter: true, closeMethods: ['overlay', 'button', 'escape'], closeLabel: "Close", //cssClass: ['custom-class-1', 'custom-class-2'], onOpen: function() { }, onClose: function() { // Deseleccionamos el texto que se haya podido quedar por bug if (document.selection) document.selection.empty(); else if (window.getSelection) window.getSelection().removeAllRanges(); }, beforeClose: function() { // here's goes some logic // e.g. save content before closing the modal return true; // close the modal //return false; // nothing happens } }); // set content /*popupModal.setContent('\

here\'s some content

\n\ ');*/ popupModal.addFooterBtn('Cerrar', 'tingle-btn tingle-btn--danger', function() { popupModal.close(); }); // open modal //popupModal.open(); }); // Refrescos de los modales $(document).bind('ready ajaxComplete', function(){ $(".modal-trigger, .popup-login, .popup-registro").off(); // Muestra en un modal la vista del proyecto especificado $(".modal-trigger").click(function () { // Abrimos un modal y Evitamos que se redirija al enlace (devolvera false si se puede mostrar para bloquear el clic) return abrir_modal_ajax($(this).attr('href'), false, false, 600); }); $(".popup-login").click(function () { return abrir_modal_ajax($(this).attr('href'), false, '600', 600, true); }); $(".popup-registro").click(function () { return abrir_modal_ajax(HTTP_CONTROLADOR + 'clientes.php?seccion=cuenta&action=registro', false, '600', 600, true); }); }); /** * Intenta abrir un modal ajax, si no lo consigue redirige al * @param {type} contenedor * @param {type} url * @param {type} refresh * @param {type} width_modal * @param {type} min_height Altura minima del navegador para cargar el modal * @param {type} absolute_modal * @returns {undefined} */ function abrir_modal_ajax_crossweb(url, width_modal, min_height) { if (abrir_modal_ajax(url, true, width_modal, min_height)) { // Si devuelve true es que no lo ha podido abrir (evita que el enlace se bloquee) location.replace(url); } } /** * Funcion que abre un modal a traves de una URL, si ya ha sido cargado lo saca de la cache * @param contenedor Clase/Nombre del contenedor * @param url URL a cargar * @param refresh Si es true actualizara la cache * @param width_modal Tamaño del modal * @param min_height Altura minima del navegador para cargar el modal * @param absolute_modal Si es true el modal estara en posicion absoluta en lugar de fija desde donde se instancie */ function abrir_modal_ajax(url, refresh, width_modal, min_height) { // Lo bloqueamos en los moviles a la fuerza // && window.innerHeight >= height_modal if (width_modal === undefined || !width_modal) width_modal = '800'; if (min_height === undefined || !min_height) min_height = '500'; url_clean = filtrarURL(url); if (window.innerWidth >= width_modal && window.innerHeight >= min_height) { if (refresh || modales_cargados[url_clean] === undefined) { //modales_cargados[id] = jQuery.ajax(url); $.ajax({ type: 'POST', url: url, cache: false, data: {isAjax: 'true'} }) .done(function (msg) { modales_cargados[url_clean] = msg; abrir_modal(msg, width_modal, min_height); }); } else { abrir_modal(modales_cargados[url_clean], width_modal, min_height); } return false; } return true; } /** * * @param {type} contenedor * @param {type} html * @param {type} width En PX (sin "px") * @param min_height Nos servira para calcular la posicion * @param absolute_modal Si es true el modal estara en posicion absoluta en lugar de fija desde donde se instancie * @returns {undefined} */ function abrir_modal(html, width, min_height) { popupModal.setContent(html); $( document ).trigger( "ajaxComplete" ); popupModal.open(); }