!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/www/js/componentes/   drwxr-xr-x
Free 14.57 GB of 61.93 GB (23.53%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     ei_cuadro.js (10.96 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
ei_cuadro.prototype = new ei();
ei_cuadro.prototype.constructor = ei_cuadro;

/**
 * @class Un ei_cuadro es una grilla de registros.
 * @constructor
 * @phpdoc Componentes/Eis/toba_ei_cuadro toba_ei_cuadro
 */
function ei_cuadro(id, instancia, input_submit, filas, ids_eventos_multiple) {
	this._id = id;
	this._instancia = instancia;				//Nombre de la instancia del objeto, permite asociar al objeto con el arbol DOM
	this._input_submit = input_submit;			//Campo que se setea en el submit del form
	this._filas = filas;
	this._ids_eventos_multiple = ids_eventos_multiple;
	this._selector_fila_selec = null;			//Mantiene la fila seleccionada actualmente
	this._filas_disponibles = [];					//Mantiene las filas disponibles para el ordenamiento
	this._fila_seleccion_anterior = null;
}
	
	//---Submit 
	ei_cuadro.prototype.submit = function() {
		if (this.controlador && !this.controlador.en_submit()) {
			return this.controlador.submit();
		}		
		if (this._evento) {
			switch (this._evento.id) {
				case 'cambiar_pagina':
					document.getElementById(this._input_submit + '__pagina_actual').value = this._evento.parametros;
					break;
				case 'ordenar':
					document.getElementById(this._input_submit + '__orden_columna').value = this._evento.parametros.orden_columna;
					document.getElementById(this._input_submit + '__orden_sentido').value = this._evento.parametros.orden_sentido;
					break;
				case 'ordenar_multiple':
					document.getElementById(this._input_submit + '__ordenamiento_multiple').value = this._evento.parametros;
				break;
				default:
					if (this._evento.parametros) {
						document.getElementById(this._input_submit + '__seleccion').value = this._evento.parametros;
					}										
					if (this._evento.parametros_extra) {
						document.getElementById(this._input_submit + '__extra').value = this._evento.parametros_extra;
					}					
					break;				
			}
			//Marco la ejecucion del evento para que la clase PHP lo reconozca
			document.getElementById(this._input_submit).value = this._evento.id;
		}

		//Aca deberia ciclar por los eventos multiples e ir asignando a los hidden los valores
		for (var evt  in this._ids_eventos_multiple) {
			var nombre_evt = this._ids_eventos_multiple[evt];
			var parametros = this.get_ids_seleccionados(nombre_evt);
			if (document.getElementById(this._input_submit+'__'+nombre_evt) != null) {				//Si existe el hidden para el evento
				document.getElementById(this._input_submit+'__'+nombre_evt).value = parametros.join(toba_hilo_separador_interno);
			}
		}
	};
	

	ei_cuadro.prototype.colapsar_corte = function(corte)
	{
		var objeto = document.getElementById(corte);
		toggle_nodo(objeto);
	};
	
	
	//--------------------------------------
	//-----    Seleccion Multiple
	//--------------------------------------

	/**
	 * Informa al componente la presencia de un nuevo evento
	 * @param {evento_ei} evento
	 * @param {boolean} hacer_submit Luego de informar el evento, se inicia el proceso de submit (por defecto true)
	 */
	ei_cuadro.prototype.set_evento = function(evento, hacer_submit, input) {
		if (typeof hacer_submit == 'undefined') {
			hacer_submit = true;
		}
		ei.prototype.set_evento.call(this, evento, hacer_submit);
		if (!hacer_submit) {
			var fila = input.parentNode.parentNode.parentNode;
			if (in_array(evento, this._ids_eventos_multiple)) {
				this.seleccionar_fila_multiple(input, fila);
			} else {
				this.seleccionar_fila(input, fila);
			}
		}
	};	
	
	ei_cuadro.prototype.seleccionar = function(fila, id_evento)
	{
		var check = $$(this._input_submit + fila + '_' + id_evento);
		if (check) {
			check.checked = !check.checked;
			check.onclick();
		}
	};
		
	ei_cuadro.prototype.get_ids_seleccionados = function(id_evento)
	{
		var seleccion = [];
		for (i in this._filas) {
			var check = $$(this._input_submit + this._filas[i] + '_' + id_evento);
			if (check && check.checked) {
				seleccion.push(check.value);
			}
		}
		return seleccion;
	};

	ei_cuadro.prototype.ir_a_pagina = function(valor)
	{
		this.set_evento(new evento_ei('cambiar_pagina', '','', valor), true);
	}

	ei_cuadro.prototype.seleccionar_fila_multiple = function(input, fila)
	{
		if (input.checked) {
			agregar_clase_css(fila, 'ei-cuadro-fila-sel');
		} else {
			quitar_clase_css(fila, 'ei-cuadro-fila-sel');
		}
	}

	ei_cuadro.prototype.seleccionar_fila = function(input, fila)
	{		
		if (this._fila_seleccion_anterior != null) {
			quitar_clase_css(this._fila_seleccion_anterior, 'ei-cuadro-fila-sel');
		}	
		this._fila_seleccion_anterior = fila;		
		agregar_clase_css(fila, 'ei-cuadro-fila-sel');
	}

	ei_cuadro.prototype.invertir_seleccionados = function(id_evento)
	{
		if (! in_array(id_evento, this._ids_eventos_multiple)) {
			return false;
		}
		
		for (i in this._filas) {
			this.seleccionar(this._filas[i], id_evento);
		}
	};
	
	ei_cuadro.prototype.seleccionar_todos = function(id_evento)
	{
		if (! in_array(id_evento, this._ids_eventos_multiple)) {
			return false;
		}
		
		for (i in this._filas) {
			var check = $$(this._input_submit + this._filas[i] + '_' + id_evento);
			if (check && !check.checked) {
				this.seleccionar(this._filas[i], id_evento);
			}
		}
	};
	ei_cuadro.prototype.deseleccionar_todos = function(id_evento)
	{
		if (! in_array(id_evento, this._ids_eventos_multiple)) {
			return false;
		}
		
		for (i in this._filas) {
			var check = $$(this._input_submit + this._filas[i] + '_' + id_evento);
			if (check && check.checked) {
				this.seleccionar(this._filas[i], id_evento);
			}
		}
	};
	//------------------------------------------------------------------------------------------------------------------
	//							FUNCIONES PARA EL SELECTOR DE ORDENAMIENTO MULTIPLE
	//------------------------------------------------------------------------------------------------------------------
	/**
	 *  Metodo utilizado para lanzar el evento de ordenamiento multiple columna
	 *  @param {array} valores Arreglo con formato array('columna' => 'sentido')
	 */
	ei_cuadro.prototype.set_ordenamiento_multiple = function (valores)
	{
		var datos = [];
		var par_col_orden = '';
		for (var columna in valores) {
			if (valores[columna] !== null) {
					par_col_orden = columna + toba_hilo_separador_interno + valores[columna];
					datos.push(par_col_orden);
			} else {
				notificacion.agregar('Falta definir un sentido para la columna');
				notificacion.mostrar();
				notificacion.limpiar();
				return false;
			}
		}
		var parametros = datos.join(toba_hilo_separador);
		this.set_evento(new evento_ei('ordenar_multiple', false, false, parametros), true);
	}

	/**
	 * Metodo que muestra el selector de ordenamiento al usuario
	 * @param {array} filas Arreglo con los id de columna que estan disponibles
	 * @ignore
	 */
	ei_cuadro.prototype.mostrar_selector = function(filas)
	{
		this._filas_disponibles = filas;
		var html = document.getElementById(this._input_submit  + '_selector_ordenamiento').innerHTML;
		notificacion.mostrar_ventana_modal('Seleccione el criterio de ordenamiento a aplicar', html, '400px', 'overlay(true)');
	}

	/**
	 * Metodo que deja activa una fila en particular para poder seleccionar el sentido
	 * @param {string} fila
	 * @ignore
	 */
	ei_cuadro.prototype.activar_fila_selector = function(fila)
	{
		var activo = document.getElementById('check_' + fila).checked;
		var radio_asc = document.getElementById(fila + '0');
		var radio_des = document.getElementById(fila + '1');

		radio_asc.disabled = (! activo);
		radio_des.disabled = (! activo);
		//document.getElementById(fila + '0').disabled = (!activo);
	}

	/**
	 * Metodo que selecciona una fila como la actual y la marca en la interfase
	 * @param {string} fila
	 * @ignore
	 */
	ei_cuadro.prototype.seleccionar_fila_selector = function(fila)
	{
		if (isset(this._selector_fila_selec) && (fila != this._selector_fila_selec)) {
			this.deseleccionar_fila_selector();
		}
		this._selector_fila_selec = fila;
		var nodo = document.getElementById('fila_' + this._selector_fila_selec);
		reemplazar_clase_css(nodo, 'ei-ml-fila', 'ei-ml-fila-selec');
	}

	/**
	 * Metodo para deseleccionar la fila actual, la desmarca en la interface
	 * @ignore
	 */
	ei_cuadro.prototype.deseleccionar_fila_selector = function()
	{
		var nodo = document.getElementById('fila_' + this._selector_fila_selec);
		reemplazar_clase_css(nodo, 'ei-ml-fila-selec', 'ei-ml-fila');
	}

	/**
	 * Metodo que sube una fila en la interfase y en definitiva su prioridad para el ordenamiento
	 * @ignore
	 */
	ei_cuadro.prototype.subir_fila_selector = function()
	{
		var posicion = this.obtener_posicion_actual(this._selector_fila_selec);
		if (posicion != null) {
			var anterior = posicion - 1;
			if (this._filas_disponibles[anterior]) {
				this.intercambiar_posiciones(anterior, posicion);
			}
		}
	}

	/**
	 * Metodo que baja una fila en la interfase y en definitiva su prioridad para el ordenamiento
	 * @ignore
	 */
	ei_cuadro.prototype.bajar_fila_selector = function()
	{
		var posicion = this.obtener_posicion_actual(this._selector_fila_selec);
		if (posicion != null) {
			var anterior = posicion;
			anterior++;
			if (this._filas_disponibles[anterior]) {
				this.intercambiar_posiciones(posicion, anterior);
			}
		}
	}

	/**
	 * Metodo que dada una fila obtiene su prioridad actual
	 * @ignore
	 */
	ei_cuadro.prototype.obtener_posicion_actual = function(fila)
	{
		for(var indice in this._filas_disponibles) {
			if (this._filas_disponibles[indice] == fila) {
				return indice;
			}
		}
		return null;
	}

	/**
	 * Metodo que intercambia las posiciones de dos filas en la interface,
	 * tambien intercambia sus prioridades para el orden final
	 * @ignore
	 */
	ei_cuadro.prototype.intercambiar_posiciones = function(anterior, nueva)
	{
		var fila_ant = this._filas_disponibles[anterior];
		var fila_nueva = this._filas_disponibles[nueva];

		var nodo_ant = document.getElementById('fila_' + fila_ant);
		var nodo_nuevo = document.getElementById('fila_' + fila_nueva);

		nodo_nuevo.swapNode(nodo_ant);
		this._filas_disponibles[anterior] = fila_nueva;
		this._filas_disponibles[nueva] = fila_ant;
	}

	/**
	 * Metodo que obtiene la prioridad final de ordenamiento, arma el arreglo
	 * con las columnas y su correspondiente sentido. Finalmente llama
	 * al metodo que dispara el evento.
	 * @ignore
	 */
	ei_cuadro.prototype.aplicar_criterio_ordenamiento = function()
	{
		var seleccion_actual = [];
		var check;
		var sentido;
		var columna = '';
		for (var indice in this._filas_disponibles)
		{
			columna = this._filas_disponibles[indice];
			check = document.getElementById('check_' + columna).checked;
			if (check) {
				sentido = null;
				var elementos = getElementsByName_iefix('input', 'radio_' + columna);
				for(var opcion in elementos) {
					if (elementos[opcion].checked) {
						sentido = elementos[opcion].value;
					}
				}
				seleccion_actual[columna] = sentido;
			}
		}
		overlay(true);
		this.set_ordenamiento_multiple(seleccion_actual);
	}
	
	ei_cuadro.prototype.exportar_excel_sin_cortes = function() {
		var param = {es_plano:true};
		var url = vinculador.get_url(null, null, 'vista_excel', param, [this._id]);
		document.location.href = url;
	};
	
toba.confirmar_inclusion('componentes/ei_cuadro');

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.3825 ]--