/*
* Codificación UTF-8
* Controlador de la parte JS.
* openWS(destino, campo, formOrigen, iterActual, panelActua, claseManejadora, modoPanelOrigen, message)
* eventCloseModal(url, claseManejadora, panel)
* ¡¡¡¡closeWindowModal(WM)!! ¡¡ELIMINAR!!
* compareViewsPath(pathActual, path)
* formatBytes(a,b)
* controllerJS(id, prefijo, css, panel)
* ajaxStop(jqXHR, textStatus, errorThrown)
*/
/*
* openWS()
* FUNCIÓN: abrir ventana de selección
*/
gvh.openWS = function(objElemento,modoPanelOrigen,message)
{
var destino = objElemento.attr('data-gvhDestino');
var campo = objElemento.attr('data-gvhActSobre');
var iterActual = objElemento.attr('data-gvhIterActual');
var panelActua = objElemento.attr('data-gvhPanelOn');
var claseManejadora = objElemento.attr('data-gvhClaseManejadora');
var formOrigen = objElemento.closest('form');
gvh.showConsoleMsg('log','** openWS() ');
gvh.showConsoleMsg('log',gvh.datosJSON);
gvh.ambito = 'gvhModal';
var panelJSON = panelActua.substring(0,3);
var raizJSON = gvh.getRoot(claseManejadora,panelJSON);
var actionOrigen = $(formOrigen).attr('action');
var targetOrigen = $(formOrigen).attr('target');
var idForm = $(formOrigen).attr('id');
if (campo == '')
{
gvh.showConsoleMsg('error',' ¡¡Falta la indicación del campo destino de la ventana de selección!!');
return;
}
actionNueva = destino +
"&nomForm="+idForm+
"&nomCampo="+campo+
"&filaActual="+iterActual+
"&panelActua="+panelActua+
"&actionOrigen="+actionOrigen+
"&modoPanelOrigen="+modoPanelOrigen+
"&gvhcache=true&gvhpanel="+panelJSON;
gvh.showConsoleMsg('log',' - Llamada a phrame: '+actionNueva);
//Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
$.ajax({
data: raizJSON['dataPerform'],
type: "POST",
datatype: "json",
cache: false,
url: actionNueva,
beforeSend: function() {
gvh.showConsoleMsg('log',' ... Beforesend ...');
gvh.loading( 'on', message );
},
success: function(rspTpl) {
gvh.showConsoleMsg('log',' ... Success: '+rspTpl);
rspTplJSON = $.parseJSON(rspTpl);
urlTpl = decodeURIComponent(rspTplJSON.path);
idWS = "WS_"+claseManejadora;
idWS = "WS";
if ($('#'+idWS).length > 0)
{
if (rspTplJSON.context.action == 'gvHidraCloseJDialog')
{
gvh.showConsoleMsg('log',' ... Cerramos ventana => action: '+rspTplJSON.context.action);
// REVIEW VERO: globalWS
globalWS.dialog('destroy').remove();
if (dialogIdWM.length <= 0)
gvh.ambito = 'gvhMain';
else
gvh.ambito = 'gvhModal';
}
else {
gvh.showConsoleMsg('log',' ... Ya existe WS, cargamos => url: '+urlTpl);
$('#'+idWS).load(urlTpl);
gvh.loading( 'off' );
}
}
else {
gvh.showConsoleMsg('log',' ... Abrimos WS => action: '+rspTplJSON.context.action);
$('#gvhPage').append( '
' );
gvh.dialogWS = $('#'+idWS);
gvh.dialogWS.on('hidden.bs.modal', function (e) {
$('#'+idWS).remove();
if (gvh.dialogIdWM.length <= 0)
gvh.ambito = 'gvhMain';
else
gvh.ambito = 'gvhModal';
});
gvh.dialogWS.load( urlTpl , function() {
gvh.dialogWS.modal( 'show' );
});
};
},
complete:function( jqXHR, textStatus, errorThrown ) {
}
})
}
/*
* eventCloseModal()
* FUNCIÓN: cerrar la ventana modal y lanzar la acción asociada
* defaults:
* url - url a la que llamar para lanzar la acción asociada
* claseManejadora
* panel
*/
$.fn.eventCloseModal = function(options)
{
var defaults = $.extend({
id: '',
url: '',
claseM: '',
panel: ''
},options);
gvh.showConsoleMsg('log',' ** eventCloseModal() ');
gvh.showConsoleMsg('log',defaults);
gvh.ambito = "gvhMain";
// Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
$.ajax({
data: gvh.datosJSON[defaults.claseM][defaults.panel]['dataPerform'],
type: "POST",
datatype: "json",
url: defaults.url,
beforeSend: function() {
gvh.showConsoleMsg('log',' ... Beforesend => url: '+defaults.url);
gvh.loading('on',gvh.msgLoad);
},
success: function(rsp) {
rspJSON = $.parseJSON(rsp);
gvh.showConsoleMsg('log',' ... Success: '+rspJSON);
//targetType = rspJSON.context.targetType;
action = rspJSON.context.action;
gvh.showConsoleMsg('log',' ... Acción: '+action);
path = decodeURIComponent(rspJSON.path);
if (action == 'NoAction')
{
eval(rspJSON.context.script);
}
else {
window.location.reload();
}
},
complete: function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','COMPLETE eventCloseModal... ');
},
error: function ( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ERROR: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
gvh.ambito = "gvhModal";
}
});
}
/*
* closeWindowModal()
* FUNCIÓN: cierre de la ventana modal (cancelar)
* defaults:
* WM - identificador de la ventana modal
*/
$.fn.closeWindowModal = function(options)
{
var defaults = $.extend({
WM: ''
},options);
/*gvh.showConsoleMsg('log','closeWindowModal() ');
gvh.showConsoleMsg('log',defaults.WM);*/
if (gvh.dialogIdWM.length <= 0)
gvh.ambito = 'gvhMain';
else
gvh.ambito = 'gvhModal';
gvh.dialogWM = defaults.WM;
//$('#'+dialogWM).dialog('destroy').remove();
$('#'+gvh.dialogWM).remove();
}
/*
* compareViewsPath()
* FUNCIÓN: compara dos url para comprobar si el valor del views es el mismo
*/
$.fn.compareViewsPath = function(options)
{
var defaults = $.extend({
pathActual: '',
path: ''
},options);
let viewsActual = defaults.pathActual.split('?view=')[1];
let viewsNew = defaults.path.split('?view=')[1];
let claseMActual = viewsActual.split('&')[0];
let claseMNew = viewsNew.split('&')[0];
if (claseMNew != claseMActual)
return false;
else
return true;
}
function formatBytes(a,b){if(0==a)return"0 Bytes";var c=1024,d=b||2,e=["Bytes","KB","MB","GB","TB","PB","EB","ZB","YB"],f=Math.floor(Math.log(a)/Math.log(c));return parseFloat((a/Math.pow(c,f)).toFixed(d))+" "+e[f]}
/*
* controllerJS()
* FUNCIÓN: submit del formulario.
* defaults: id - del botón para el que se van a activar los campos
* prefijo - si los campos se activan para inserción o modificación ('ins'/'cam')
* css - estilo que se le aplicará al campo
* panel - panel donde se encuentran los campos
*/
$.fn.controllerJS = function(options)
{
// Comprobamos si llega la url destino para componer la url completa y el conjunto de datos
if( !options.destino )
{
console.error('¡¡¡No está definido el parámetro data-gvhDestino!!!');
eval( scriptPostLoad );
return;
}
// Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
var defaults = $.extend({
id: '',
panel: '',
destino: '',
newWindow: 'false',
confirm: '',
claseM: '',
message: ''
},options);
gvh.showConsoleMsg('log','** controllerJS() '+defaults.id+' clase manejadora: '+defaults.claseM);
// Mostramos el cargando
gvh.loading('on',defaults.message);
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
var urlPhrame = '';
// Componemos la url a la que debemos llamar
if ((defaults.id == 'close') || ((defaults.claseM == '') && (defaults.panel == '')))
{
urlPhrame = defaults.destino+"&gvhcache=true&claseManejadora=principal";
var datos = '';
}
else {
var tipoPanel = $('#'+defaults.id+'[data-gvhClaseManejadora='+defaults.claseM+']').attr('data-gvhPanelOn');
var panelJSON = tipoPanel.substr(0,3);
var claseM_maestro = $('#'+defaults.id).attr('data-gvhClaseManejadoraPadre');
if (claseM_maestro != undefined)
{
var maestro = $('div[data-gvhEsMaestro=1][data-gvhClaseManejadora='+claseM_maestro+']').attr('id');
var panelMaestro = maestro.split("_")[1];
var raizJSON = gvh.getRoot(claseM_maestro,panelMaestro);
}
else {
var raizJSON = gvh.getRoot(defaults.claseM,panelJSON);
}
var datos = raizJSON['dataPerform']; // Enviamos solamente los datos del panel correspondiente
var destino = defaults.destino;
if (destino.indexOf("gvhpanel") == -1)
{
urlPhrame = defaults.destino+"&gvhcache=true&claseManejadora="+defaults.claseM+"&gvhpanel="+panelJSON;
}
else {
urlPhrame = defaults.destino+"&gvhcache=true&claseManejadora="+defaults.claseM;
}
if ($('#WS').length > 0)
{
var claseMOrigen = $('#'+defaults.id).attr('data-gvhclasemorigen');
urlPhrame += urlPhrame+'&claseManejadoraOrigen='+claseMOrigen;
}
}
gvh.showConsoleMsg('log',' - Llamada a phrame: '+urlPhrame);
gvh.showConsoleMsg('log',gvh.datosJSON);
gvh.showConsoleMsg('log',datos);
var scriptPostLoad = '';
Pace.track(function(){
$.ajax({
data: datos,
type: "POST",
datatype: "json",
url: urlPhrame,
beforeSend: function() {
gvh.showConsoleMsg('log',' ... Beforesend ...');
},
xhr: function(){
var xhr = $.ajaxSettings.xhr() ;
if(gvh.DEBUG) console.groupCollapsed('Petición AJAX');
xhr.onprogress = function(e) {
if (e.lengthComputable) {
if(gvh.DEBUG) console.info('Progreso: ', formatBytes(e.loaded,2) + ' de ' + formatBytes(e.total,2) + ' (' + (e.loaded/e.total*100).toFixed(2) + '%)' );
}
};
xhr.onload = function() {
if(gvh.DEBUG) {
console.info('COMPLETADO!')
console.groupEnd();
}
};
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
if(gvh.DEBUG) console.info('Progreso: ', formatBytes(e.loaded,2) + ' de ' + formatBytes(e.total,2) + ' (' + (e.loaded/e.total*100).toFixed(2) + '%)' );
}
};
xhr.upload.onload = function(){
if(gvh.DEBUG) {
console.info('COMPLETADO!')
console.groupEnd();
}
};
return xhr ;
} ,
success: function(rspPhrame) {
gvh.showConsoleMsg('log',' ... Success: '+rspPhrame);
rspPhrameJSON = $.parseJSON(rspPhrame);
// Acción que vamos a realizar ['NoAction' | 'reload' | ...]
var action = rspPhrameJSON.context.action;
var targetType = rspPhrameJSON.context.targetType;
var returnPath = '';
if (rspPhrameJSON.context.returnPath != '')
var returnPath = rspPhrameJSON.context.returnPath;
var panelRetorno = '';
if (rspPhrameJSON.context.panelRetorno != '')
var panelRetorno = rspPhrameJSON.context.panelRetorno;
switch(targetType)
{
case 'self':
gvh.showConsoleMsg('log',' ... Destino: Misma página (self) => targetType: '+targetType);
switch(action)
{
case 'NoAction':
gvh.showConsoleMsg('log',' ... Acción: acción de interfaz => action: '+action);
eval(rspPhrameJSON.context.script);
break;
// RELOAD DE LA PÁGINA
case 'reload':
gvh.showConsoleMsg('log',' ... Acción: reload de la página => action: '+action);
var reloadPath = window.location;
if ((rspPhrameJSON.info) && (rspPhrameJSON.info.typeReload == 'orderTable'))
{
if (gvh.getUrlParameter('orderTable') == undefined)
{
reloadPath = window.location+'&orderTable='+rspPhrameJSON.info.order+'&orderField='+rspPhrameJSON.info.column;
gvh.orderTable = rspPhrameJSON.info.order;
gvh.orderFieldTable = rspPhrameJSON.info.column;
}
else {
var sPageURL = decodeURIComponent(window.location);
vReloadPath = sPageURL.split('&orderTable=');
reloadPath = vReloadPath[0]+'&orderTable='+rspPhrameJSON.info.order+'&orderField='+rspPhrameJSON.info.column;
gvh.orderTable = gvh.getUrlParameter('orderTable');
gvh.orderFieldTable = gvh.getUrlParameter('orderField');
}
/*'info' => array( 'typeReload' => 'orderTable',
'column' => $datosOrdenacion['columna'],
'order' => $datosOrdenacion['orden']
)*/
window.location.href = reloadPath;
}
else {
window.location.reload();
}
break;
// LLAMADA A NEGOCIO (ajax) QUE NOS DEVOLVERÁ LA PÁGINA (views) location.href => views
case 'salto':
gvh.showConsoleMsg('log',' ... Acción: llamada a negocio => action: '+action);
path = decodeURIComponent(rspPhrameJSON.path);
gvh.showConsoleMsg('log',' ... => llamada a: '+path);
//Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
$.ajax({
data: null, // Mandamos a null los datos porque se va a lanzar una claseManejadora nueva en la ventana.
type: "POST",
datatype: "json",
url: path,
beforeSend: function() {
},
success: function(rspTpl) {
rspTplJSON = $.parseJSON(rspTpl);
path = rspTplJSON.path;
gvh.showConsoleMsg('log',' ... Acción: llamada a negocio => views: '+path);
gvh.endLoading = false;
window.location.href = decodeURIComponent(path);
},
error:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ERROR: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
always:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ALWAYS: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
fail:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','FAIL: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
complete: function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','3 COMPLETE: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
}
})
break;
default:
gvh.showConsoleMsg('log',' ... Acción: default => action: '+action);
newWindow = defaults.newWindow;
if (newWindow == 'false') // NO ABRIMOS VENTANA EMERGENTE
{
gvh.showConsoleMsg('log',' ... => newWindow: false');
pathActual = window.location.href;
path = rspPhrameJSON.path;
var loadGVHMain = $(this).compareViewsPath({
pathActual: pathActual,
path: decodeURIComponent(path)
});
if (loadGVHMain)
{
gvh.showConsoleMsg('log',' ... => carga en gvhMain: '+path);
gvh.endLoading = true;
// Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
// CARGAMOS EN LA CAPA gvhMain LA PÁGINA
$.ajax( {
url: decodeURIComponent(path),
dataType: "html" , // Usamos el tipo 'html' para importar también los scripts embebidos
cache: true ,
//context: '#gvhMain > *'
} ).done(function(resp) {
let funcionColapsar = function() {
$('#gvhMain').html( $(resp).filter('#gvhMain').contents() );
}
// Hacemos una animación con el colapso del panel.
let panelColapsar = $( '#P_' + options.panel + '[data-gvhclasemanejadora=' + options.claseM + '].panelColapsable' );
if( panelColapsar.length ) {
panelColapsar.animate( {height: '0'}, 750, 'swing' ).promise().done( funcionColapsar );
}
else
{
funcionColapsar();
gvh.rewireMain();
}
} );
}
else {
// LOAD DE LA PÁGINA (views) QUE NOS VIENE location.href
gvh.showConsoleMsg('log',' ... => location.href = '+path);
gvh.endLoading = false;
window.location.href = decodeURIComponent(path);
}
}
else { // LA PÁGINA SE ABRE EN UNA VENTANA NUEVA
path = rspPhrameJSON.path;
gvh.showConsoleMsg('log',' ... => newWindow: true');
gvh.showConsoleMsg('log',' ... => path: '+path);
gvh.popupWindow({
windowURL: path,
centerScreen: 1,
height: 600,
width: 800,
windowName:'help'
});
}
break;
}
break;
// EL DESTINO ES UNA VENTANA MODAL
case 'JDialog':
target = rspPhrameJSON.context.targetType;
scriptPostLoad = rspPhrameJSON.context.script;
if ( scriptPostLoad != '')
{
eval(scriptPostLoad);
}
let idVentana = rspPhrameJSON.context.idVentana;
gvh.dialogWM = $('#'+idVentana);
gvh.showConsoleMsg('log',' ... Destino: Ventana modal => targetType: '+targetType);
gvh.showConsoleMsg('log',' ... => id ventana: '+idVentana);
let ventanaModal = $('#'+idVentana);
switch(action)
{
// CERRAMOS VENTANA MODAL
case 'gvHidraCloseJDialog':
gvh.showConsoleMsg('log',' ... Acción: cerrar ventana modal => action: '+action);
if ((idVentana != null) && (idVentana != undefined))
{
if (gvh.dialogWM.length > 0)
{
gvh.dialogWM.modal( 'hide' );
gvh.dialogIdWM.pop();
}
}
break;
// ABRIMOS VENTANA MODAL
case 'gvHidraOpenJDialog':
var url = decodeURIComponent(rspPhrameJSON.path);
url = url+"&idModal="+idVentana;
gvh.showConsoleMsg('log',' ... Acción: abrir ventana modal => action: '+action);
gvh.showConsoleMsg('log',' ... => path: '+url);
if ( ((url == null) || (url == '') || (url == undefined)) )
{
return false;
}
if (ventanaModal.length > 0)
{
gvh.showConsoleMsg('log',' ... => ventana ya existe');
var WSwidth = 1000;
var WSheight = 'auto';
if ( ($('#'+idVentana).children(".modal-dialog").length))
{
WSwidth = $('#'+idVentana).children(".modal-dialog").width();
WSheight = $('#'+idVentana).children(".modal-dialog").height();
}
else {
if ((rspPhrameJSON.context.width != '') && (rspPhrameJSON.context.width != null))
{
WSwidth = rspPhrameJSON.context.width;
}
if ((rspPhrameJSON.context.height != '') && (rspPhrameJSON.context.height != null))
{
WSheight = rspPhrameJSON.context.height;
}
}
//Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
if (url.indexOf("phrame.php") == -1)
{
gvh.showConsoleMsg('log',' ... => Vamos a obtener el contenido html (views) '+url);
$.ajax({
url: decodeURIComponent(url),
dataType: "html" , // Usamos el tipo 'html' para importar también los scripts embebidos
cache: true
}).done(function(resp) {
gvh.showConsoleMsg('log',' ... => HTML Success... '+resp);
$('#'+idVentana).html( $(resp) );
$('#'+idVentana).children(".modal-dialog").width(WSwidth);
$('#'+idVentana).children(".modal-dialog").height(WSheight);
if (rspPhrameJSON.context.script != '')
{
eval(rspPhrameJSON.context.script);
}
gvh.dialogWM.on('shown.bs.modal', function (e) {
gvh.initModal(idVentana);
});
}); //DONE AJAX VIEWS
}
else {
gvh.showConsoleMsg('log',' ... => Salto, llamada a phrame para obtener el views '+url);
gvh.showConsoleMsg('log',' ... => Ventana donde mostrar el contenido '+idVentana);
$.ajax({
data: null, // Mandamos a null los datos porque se va a lanzar una claseManejadora nueva en la ventana.
type: "POST",
datatype: "json",
url: url,
beforeSend: function() {},
success: function(rspTpl) {
var rspTplJSON = $.parseJSON( rspTpl );
if (ventanaModal.length > 0)
{
gvh.showConsoleMsg('log',' ... => La ventana ya existe');
var WSwidth = 1000;
var WSheight = 'auto';
if ( ($('#'+idVentana).children(".modal-dialog").length))
{
WSwidth = $('#'+idVentana).children(".modal-dialog").width();
WSheight = $('#'+idVentana).children(".modal-dialog").height();
}
else {
if ((rspPhrameJSON.context.width != '') && (rspPhrameJSON.context.width != null))
{
WSwidth = rspPhrameJSON.context.width;
}
if ((rspPhrameJSON.context.height != '') && (rspPhrameJSON.context.height != null))
{
WSheight = rspPhrameJSON.context.height;
}
}
//Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
}
else {
gvh.showConsoleMsg('log',' ... => La ventana NO existe');
$('#gvhPage').append( '
' );
gvh.dialogWM = $('#'+idVentana);
gvh.dialogWM.on('hidden.bs.modal', function (e) {
$('#'+idVentana).remove();
if ((returnPath != null) && (returnPath != undefined) && (returnPath != ''))
{
returnPath = returnPath+"&gvhcache=true";
gvh.showConsoleMsg('log',' ... Close ventana modal (1) => path '+returnPath);
if ((panelRetorno != '') && (panelRetorno != null) && (panelRetorno != undefined))
{
panelJSON = panelRetorno.substring(0,3);
}
$(this).eventCloseModal({
idVentana: idVentana,
url: returnPath,
claseM: defaults.claseM,
panel: panelJSON
});
//gvh.eventCloseModal(idVentana,returnPath,defaults.claseM,panelJSON);
}
gvh.dialogIdWM.pop();
});
//Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
}
gvh.showConsoleMsg('log',' ... Acción '+action+' => path '+ rspTplJSON.path);
var path = rspTplJSON.path;
gvh.showConsoleMsg('log',' ... => Llamada para obtener el views... '+decodeURIComponent(path));
$.ajax({
url: decodeURIComponent(path),
dataType: "html" , // Usamos el tipo 'html' para importar también los scripts embebidos
cache: true
}).done(function(resp) {
gvh.showConsoleMsg('log',' ... => HTML Success... '+idVentana);
gvh.showConsoleMsg('log',' ... => HTML Success... '+resp);
$('#'+idVentana).html( $(resp) );
$('#'+idVentana).children(".modal-dialog").width(WSwidth);
$('#'+idVentana).children(".modal-dialog").height('auto');
if (rspPhrameJSON.context.script != '')
{
eval(rspPhrameJSON.context.script);
}
gvh.dialogWM.on('shown.bs.modal', function (e) {
gvh.initModal(idVentana);
});
}); //DONE AJAX VIEWS
} // SUCCESS AJAX PHRAME
}); // AJAX PHRAME
}
}
else {
gvh.showConsoleMsg('log',' ... => NUEVA ventana');
var WSwidth = 1000;
var WSheight = 'auto';
if (rspPhrameJSON.context.width != '')
{
WSwidth = rspPhrameJSON.context.width;
}
if (rspPhrameJSON.context.height != '')
{
WSheight = rspPhrameJSON.context.height;
}
// Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
$('#gvhPage').append( '
' );
gvh.dialogWM = $('#'+idVentana);
gvh.dialogWM.on('hidden.bs.modal', function (e) {
$('#'+idVentana).remove();
if ((returnPath != null) && (returnPath != undefined) && (returnPath != ''))
{
returnPath = returnPath+"&gvhcache=true";
gvh.showConsoleMsg('log',' ... Close ventana modal (2) => path '+returnPath);
if ((panelRetorno != '') && (panelRetorno != null) && (panelRetorno != undefined))
{
panelJSON = panelRetorno.substring(0,3);
}
$(this).eventCloseModal({
idVentana: idVentana,
url: returnPath,
claseM: defaults.claseM,
panel: panelJSON
});
//gvh.eventCloseModal(idVentana,returnPath,defaults.claseM,panelJSON);
}
gvh.dialogIdWM.pop();
});
if (url.indexOf("phrame.php") == -1)
{
gvh.showConsoleMsg('log',' ... => Vamos a obtener el contenido html (views) '+url);
$.ajax({
url: decodeURIComponent(url),
dataType: "html" , // Usamos el tipo 'html' para importar también los scripts embebidos
cache: true
}).done(function(resp) {
gvh.showConsoleMsg('log',' ... => HTML Success... '+resp);
$('#'+idVentana).html( $(resp) );
$('#'+idVentana).children(".modal-dialog").width(WSwidth);
$('#'+idVentana).children(".modal-dialog").height(WSheight);
if (rspPhrameJSON.context.script != '')
{
eval(rspPhrameJSON.context.script);
}
gvh.dialogWM.on('shown.bs.modal', function (e) {
gvh.initModal(idVentana);
});
}); //DONE AJAX VIEWS
}
else {
$.ajax({
data: null, // Mandamos a null los datos porque se va a lanzar una claseManejadora nueva en la ventana.
type: "POST",
datatype: "json",
url: url,
beforeSend: function() {
gvh.showConsoleMsg('log',' ... beforeSend => '+url);
},
success: function(rspTpl) {
let rspTplJSON = $.parseJSON( rspTpl );
/*$('#gvhPage').append( '
' );
gvh.dialogWM = $('#'+idVentana);
gvh.dialogWM.on('hidden.bs.modal', function (e) {
$('#'+idVentana).remove();
if ((returnPath != null) && (returnPath != undefined) && (returnPath != ''))
{
returnPath = returnPath+"&gvhcache=true";
gvh.showConsoleMsg('log',' ... Close ventana modal (2) => path '+returnPath);
if ((panelRetorno != '') && (panelRetorno != null) && (panelRetorno != undefined))
{
panelJSON = panelRetorno.substring(0,3);
}
$(this).eventCloseModal({
idVentana: idVentana,
url: returnPath,
claseM: defaults.claseM,
panel: panelJSON
});
//gvh.eventCloseModal(idVentana,returnPath,defaults.claseM,panelJSON);
}
gvh.dialogIdWM.pop();
});*/
path = rspTplJSON.path;
gvh.showConsoleMsg('log',' ... Acción '+action+' => path '+path);
gvh.showConsoleMsg('log',rspTpl);
//Mostramos el progreso
Pace.restart();
document.body.className = document.body.className; // Forzamos a actualizar la interfaz
$.ajax({
url: decodeURIComponent(path),
dataType: "html" , // Usamos el tipo 'html' para importar también los scripts embebidos
cache: true
}).done(function(resp) {
$('#'+idVentana).html( $(resp) );
gvh.dialogWM.children(".modal-dialog").width(WSwidth);
gvh.dialogWM.children(".modal-dialog").height('auto');
gvh.dialogIdWM.push(idVentana);
gvh.dialogWM.modal( 'show' );
gvh.dialogWM.on('shown.bs.modal', function (e) {
gvh.initModal(idVentana);
});
if (rspTplJSON.context.script != '')
{
eval(rspTplJSON.context.script);
}
});
},
error:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ERROR: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
always:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ALWAYS: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
fail:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','FAIL: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
complete: function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','2 COMPLETE '+idVentana);
gvh.showConsoleMsg('log','2 COMPLETE: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
}
});
}
}
break;
default:
gvh.showConsoleMsg('log','gvh_controller.js: '+targetType+' "action" no definido');
break;
}
break;
default:
gvh.showConsoleMsg('log','gvh_controller.js: targetType no definido');
break;
}
},
error:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ERROR 1: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
always:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','ALWAYS 1: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
fail:function( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','FAIL 1: '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
},
complete:function ( jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log','1 COMPLETE: '+defaults.id+': '+textStatus+' - status: '+jqXHR.status+' | '+errorThrown);
}
})
.done(function(resultado){
gvh.showConsoleMsg('log','DONE ');
});
});
eval(scriptPostLoad);
};
/* $(document).ajaxComplete(function(jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log',' ** ajaxComplete() ');
gvh.showConsoleMsg('log',jqXHR);
gvh.showConsoleMsg('log',errorThrown);
gvh.showConsoleMsg('log','***********');
});
$(document).ajaxSend(function(jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log',' ** ajaxSend() ');
gvh.showConsoleMsg('log',jqXHR);
gvh.showConsoleMsg('log',errorThrown);
gvh.showConsoleMsg('log','***********');
});
$(document).ajaxSuccess(function(jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log',' ** ajaxSuccess() ');
gvh.showConsoleMsg('log',jqXHR);
gvh.showConsoleMsg('log',errorThrown);
gvh.showConsoleMsg('log','***********');
});*/
$(document).ajaxStop( function(jqXHR, textStatus, errorThrown ) {
gvh.showConsoleMsg('log',' ** ajaxStop() ');
gvh.showConsoleMsg('log',gvh.datosJSON);
// Lanzamos la dinámica de interacción de la página recién cargada.
if( gvh.rewirePage_onready ) {
gvh.rewirePage_onready();
}
if( gvh.endLoading )
{
gvh.loading( 'off' );
}
} );
/**
* select2.defaults()
* FUNCIÓN: Propiedades por defecto de las listas tipo select2
*/
/*
width: 'auto',
closeOnSelect: true,
placeholder: 'Selecciona una opción',
allowClear: true,
minimumResultsForSearch: 15,
containerCssClass: 'tpx-select2-container',
dropdownCssClass: 'tpx-select2-drop'*/
$.fn.select2.defaults = $.extend($.fn.select2.defaults, {
width: 'auto',
allowClear: true,
closeOnSelect: true, // múltiple - se cierra tras la selección
placeholder: 'Selecciona una opción',
containerCssClass: 'tpx-select2-container',
dropdownCssClass: 'tpx-select2-drop'
});