/* Vease el fichero igepMensaje.php entorno a la línea 52 para registrar los nuevos mensajes que se añadan */ function oPaginacion(nomvariable) { this.nom_variable = nomvariable; // str nombre de la variable del objeto creado // this.comprobarAlAvanzar = comprobarAlAvanzar; //Indica si debemos hacer comprobaciones sobre la ficha actual al avanzar o retroceder // this.imgMarcaModificacion = 'igep/images/avisos/marcaModificado.gif'; this.paginasModificadas = new Array();//Vector de boolenaos que indica si se ha modificado o no una página this.listaPaginas = null; this.idPanel = nomvariable.split('_paginacion')[0]; this.nomPagActiva = ''; // nombre d la capa d la página activa // Vero 3/02/2005 this.pagina_activa = 0; // int página activa this.paginaAnterior = 0; this.sufijo = ""; // str sufijo de las capas de esta paginación this.nom_capa_enlaces = ""; // str con el nombre de la capa donde se 'pintan' los enlaces this.paginas_totales = 0; // int páginas totales this.tam_marco = 0; // int tamaño del marco de enlaces visibles this.pagExactas = null; //Booleano indica si la página está completa o no (para tablas) this.pagInsertar = 0; //Número de páginas de inserción this.textoEnlaces = 'Pag'; this.formulario = ''; this.esMaestro= ''; this.actionForm = ''; this.nombreFicha = ''; if (arguments[1]) { this.campoHidden = arguments[1]; } else { this.campoHidden = ''; } //MÉTODOS this.abrir_pagina = f_oPaginacion_abrir_pagina; // pasa a la página this.cadenaEnlaces = f_oPaginacion_cadenaEnlaces; //lo utiliza dibujar_enlaces para obtener la cadena html this.dibujar_enlaces = f_oPaginacion_dibujar_enlaces; //dibuja los enlaces this.set = f_oPaginacion_set; //actualiza el valor de las variables this.darAviso = f_oPaginacion_darAviso; this.getPaginaActiva = f_oPaginacion_getPaginaActiva; this.hayModificacion = f_oPaginacion_hayModificacion; this.hayError = f_oPaginacion_hayError; this.activarMarcaPaginacion = f_oPaginacion_activarMarcaModificacion; this.desactivarMarcaModificacion = f_oPaginacion_desactivarMarcaModificacion; this.procesarModificacion = f_oPaginacion_procesarModificacion; this.activarPaginasInsercion = f_oPaginacion_activarPaginasInsercion; this.fijarNombreFicha = f_oPaginacion_fijarNombreFicha; } //Esta funcion devuelve la pagina activa function f_oPaginacion_getPaginaActiva() { return (this.pagina_activa); } //Esta funcion devuelve la pagina activa function f_oPaginacion_fijarNombreFicha(nombreFicha) { this.nombreFicha = nombreFicha; } /* Indica si en la página actual se han llevado a cabo es decir, inserciones, borrados y/o modificaciones de campos del registro. */ function f_oPaginacion_hayModificacion() { //Si ya se había registrado la página como modificada... if (this.paginasModificadas[parseInt(this.getPaginaActiva(),10)]) return true; //SOLO PARA CWFicha, si el estado está marcado con modificación... estadoFicha = document.getElementById('est_'+this.nombreFicha+'_'+this.getPaginaActiva()); if ( (estadoFicha != null) && (estadoFicha.value!='nada') ) return (true); return (false); } /* Activa la marca de Paginacion */ function f_oPaginacion_activarMarcaModificacion() { marcaModificado = document.getElementById(this.idPanel+'_imgModificado'); if (marcaModificado != null) { marcaModificado.style.display="inline"; } } /* Desctiva la marca de Paginacion */ function f_oPaginacion_desactivarMarcaModificacion() { marcaModificado = document.getElementById(this.idPanel+'_imgModificado'); if (marcaModificado != null) { marcaModificado.style.display="none"; } } /* Comprueba si hay modificaciones en la pagina asociada y activa la marca de modificaciones */ function f_oPaginacion_procesarModificacion() { //Apuntamos a la marca marcaModificado = document.getElementById(this.idPanel+'_imgModificado'); //Si esa página tiene marcado y está modificada... if ( (marcaModificado != null) && (this.hayModificacion())) { if (!this.paginasModificadas[this.getPaginaActiva()]) { this.paginasModificadas[this.getPaginaActiva()] = true; } } else if (marcaModificado != null) { marcaModificado.style.display="none"; } listaModificados = document.getElementById(this.idPanel+'_listaModificados'); if (listaModificados != null) { //Vaciamos la lista listaModificados.options.length = 0; listaModificados.options[listaModificados.length] = new Option('cambios',null,true); numModificadas = this.paginasModificadas.length; for (i=0; i1)//Si ha habido modificaciones... { if (capaListaModificados != null) capaListaModificados.style.display="inline"; } else { if (capaListaModificados != null) capaListaModificados.style.display="none"; if (marcaModificado != null) marcaModificado.style.display="none"; } } } /* Indica si la capa activa tiene algún error */ function f_oPaginacion_hayError() { if (eval(this.idPanel+'_comp')) { objComprobacion = eval(this.idPanel+'_comp'); return( !objComprobacion.comprobarObligatorios() ); } else { return false; } } /* Construye un aviso de error y lo muestra en pantalla */ function f_oPaginacion_darAviso() { if ((eval(this.idPanel+'_comp')) && (eval('aviso')) ) { objComprobacion = eval(this.idPanel+'_comp'); objAviso = eval('aviso'); objComprobacion.comprobarObligatorios(); campos = objComprobacion.getCamposErroneos(); error = 'Debe introducir un valor en los campos: '+campos; objAviso.set('aviso','capaAviso','aviso','IGEP-901','Faltan campos por rellenar',error); objAviso.mostrarAviso(); } } /* El segundo argumento inidica si se deban hacer o no comprobaciones al cambiar de página, es decir, si se muestran o no avisos si hay errores al avanzar/retroceder por las fichas */ function f_oPaginacion_abrir_pagina(pagina) { abre = this.sufijo + pagina; this.nomPagActiva = abre; cierra = this.sufijo + this.pagina_activa; //this.paginaAnterior = this.pagina_activa; if (this.pagina_activa > -1) { cierra = eval('document.getElementById("'+cierra+'")'); cierra.style.display = "none"; } abre = eval('document.getElementById("'+abre+'")'); abre.style.display = "block"; this.pagina_activa = pagina; this.procesarModificacion(); this.dibujar_enlaces(); } function f_oPaginacion_activarPaginasInsercion() { pagExactas = this.pagExactas.toString(); if (pagExactas == '1') // Para insertar necesito pag nueva { primeraIns = parseInt(this.paginas_totales,10); } else { primeraIns = parseInt(this.paginas_totales - 1,10); } this.paginas_totales = parseInt((this.paginas_totales + this.pagInsertar),10); this.abrir_pagina(primeraIns); } function f_oPaginacion_set(sufijo,nom_capa_enlaces,pagina_inicial,paginas_totales,pagInsertar,pagExactas,tam_marco, textoEnlaces,formulario,esMaestro,actionForm) { this.pagina_activa = pagina_inicial; // int página activa this.sufijo = sufijo; // str sufijo de las capas de esta paginación this.nom_capa_enlaces = nom_capa_enlaces; // str con el nombre de la capa donde se 'pintan' los enlaces this.paginas_totales = paginas_totales; // int páginas totales SÓLO con datos this.pagInsertar = pagInsertar; // int páginas insertar this.pagExactas = pagExactas; // [1,0] si acaba en página completa o no this.tam_marco = tam_marco; // int tamaño del marco de enlaces visibles this.textoEnlaces = textoEnlaces; // Prefijo de texto delante de los enlaces this.formulario = formulario; // Nombre del from del panel this.esMaestro = esMaestro; // Estamos en un maestro/detalle this.actionForm = actionForm; //Inicializa enlaces this.abrir_pagina(this.pagina_activa); } function f_oPaginacion_cadenaEnlaces(pagina) { enlace = 'SALVE o CANCELE los mismos antes de salir.\');'; enlace += 'aviso.mostrarAviso();'; enlace += this.nom_variable+'.abrir_pagina('+this.paginaAnterior+');'; enlace += '}'; enlace += '}'; enlace += 'else '; enlace += '{'; enlace += ';aviso.mostrarMensajeCargando();'; enlace += ';document.forms[\''+this.formulario+'\'].target=\'oculto\';'; enlace += ';document.forms[\''+this.formulario+'\'].action=\''+this.actionForm+'\';document.forms[\''+this.formulario+'\'].submit();'; enlace += '}'; */ enlace += ';aviso.mostrarMensajeCargando();'; enlace += ';document.forms[\''+this.formulario+'\'].target=\'oculto\';'; enlace += ';document.forms[\''+this.formulario+'\'].action=\''+this.actionForm+'\';document.forms[\''+this.formulario+'\'].submit();'; } enlace += '}else{'+this.nom_variable+'.darAviso();}'; enlace += '">'; return (enlace) } function f_oPaginacion_dibujar_enlaces() { if (this.pagina_activa < 9) { enlace_antdiez = '<< '; } else { if ((this.pagina_activa - 10) < 0) { antdiez = 0; } else { antdiez = this.pagina_activa - 10; } enlace_antdiez = this.cadenaEnlaces(antdiez); enlace_antdiez += '<< '; } if (this.pagina_activa > (this.paginas_totales - 10) ) { enlace_sigdiez = '>>  '; } else { if ((this.pagina_activa+10) > (this.paginas_totales - 1)) { sigdiez = this.paginas_totales - 1; } else { sigdiez = this.pagina_activa + 10; } enlace_sigdiez = this.cadenaEnlaces(sigdiez); enlace_sigdiez += '>> '; } if (this.pagina_activa == 0) { enlace_ant = '· '; } else { enlace_ant = this.cadenaEnlaces(this.pagina_activa-1); enlace_ant += '< '; } if (this.pagina_activa == (this.paginas_totales - 1)) { enlace_sig = '> '; } else { enlace_sig = this.cadenaEnlaces(this.pagina_activa+1); enlace_sig += '> '; } pag_act = parseInt(this.pagina_activa) + 1; if (pag_act < 10) { enlace_ref = this.textoEnlaces+'. 0'+parseInt(this.pagina_activa+1,10)+' de '+this.paginas_totales+'   '; } else { enlace_ref = this.textoEnlaces+'. '+parseInt(this.pagina_activa+1,10)+' de '+this.paginas_totales+'   '; } pri = (this.pagina_activa + 1) - Math.ceil(this.tam_marco/2); pri = Math.max(0,pri); ult = pri + this.tam_marco-1; ult = Math.min(ult,(this.paginas_totales-1)); pri = Math.max(pri,ult-this.tam_marco-1); if (this.pagina_activa == pri) { principio = '|< '; } else { principio = this.cadenaEnlaces(0); principio += '|< '; } if (this.pagina_activa == ult) { ultima = '>|; '; } else { ultima = this.cadenaEnlaces(this.paginas_totales-1); ultima += '>|; '; } enlaces = ""; if (this.paginas_totales > 1) { for(i=pri;i  '; } } } enlacesHTML = enlace_ref + principio + enlace_antdiez + enlace_ant + enlaces + enlace_sig + enlace_sigdiez + ultima; capa = eval('document.getElementById("'+this.nom_capa_enlaces+'")'); if ( (capa==null) || (capa===null) ) { //No hacemos nada } else { capa.innerHTML = enlacesHTML; } }