ejemplo cuadro con selección de todas las filas

Hola,

quería compartir con uds (los pocos como yo que están divagando en Toba sin saber como hacer) una solución simple pero efectiva para disponer de un checkbox en el título de la columna eventos de un cuadro que tiene un evento para selección múltiple. El checkbox permite simplemente seleccionar todos/ninguno de los registros.

La idea es bastante simple (gracias a Sebastián Marconi) y consiste en extender toba_ei_cuadro y en nuestra nueva clase extender el objeto js para agregar una función:


	function extender_objeto_js()
	{

		echo "
		var estado_seleccion_total = false;
		function seleccion_total(evento)
		{
			if (estado_seleccion_total) {
				{$this->objeto_js}.deseleccionar_todos(evento);
				estado_seleccion_total = false;
			} else {
				{$this->objeto_js}.seleccionar_todos(evento);
				estado_seleccion_total = true;
			}
		};";
	}

luego, editando nuestro cuadro le agregamos como subclase de la cual hereda la que acabamos de definir y en nuestro evento de selección múltiple (a nivel fila y múltiples registros) le ponemos en el título el siguiente html:


<input type='checkbox' onclick='seleccion_total("seleccion")' />

donde reemplazamos “seleccion” con el identificador de dicho evento! esto es para que se pueda llamar a los eventos js seleccionar_todos/deseleccionar_todos.

Eso es todo, no es lo ideal colocar html en títulos pero espero les sea de utilidad como a mi y de paso le agrega algo de velocidad de uso a los cuadros :wink:

Gracias Sergio por compartirlo!

Excelente solución !!! gracias Sergio !!!
Lo estoy usando y cuando agregué más de un evento, no funcionó bien…

Para que funcione con más de un evento, hice algunos cambios que detallo a continuación:

En la extensión del cuadro quité la variable global “estado_seleccion_total” y uso una que paso por parámetro a la función con el valor del “check”

	function extender_objeto_js()
	{

		echo "
		function seleccion_total(evento, checked)
		{
			if (!checked) {
				{$this->objeto_js}.deseleccionar_todos(evento);
			} else {
				{$this->objeto_js}.seleccionar_todos(evento);
			}
		};";
	}

y para pasar el parámetro cambié el HTML de la etiqueta del/los evento/s :


<div align='center'>Selecciona<input type='checkbox' onclick='seleccion_total("seleccion",this.checked)' /></div>
<div align='center'>C/Agregados<input type='checkbox' onclick='seleccion_total("agregados", this.checked)' /></div>


Está excelente el complemento,

Pero tenemos un problema al extender el proyecto en toba_3.3.x con el CONTEXTO DE EJECUCIÓN, NO muestra el check para tildar y destildar toda la columna,
También me interesa en contexto de ejecución, mantener el combo de proyectos al tildar Listar Multiproyectos, ya que aplicando la extensíon, NO aparece como normalmente se visualizaba.

Me pueden colaborar en este caso?
Gracias y cordial saludo

Hola Jhon, estoy con el mismo problema y aún no le pude encontrar la solución …
Hay que prenderle una vela a San Richard para que se apiade de nosotros … :slight_smile:
Aunque a mi me pasa cuando activo la salida bootstrap …

También con el mismo problema, alguien encontró la solución.

Gracias!!!

Hola Jhon

El marcado que generan los componentes difiere segun el manejador, por ende es probable que no veas exactamente lo mismo al cambiar entre uno y otro. Todo dependera de como hayas subclaseado el cuadro y las invocaciones realizadas.

También me interesa en contexto de ejecución, mantener el combo de proyectos al tildar Listar Multiproyectos, ya que aplicando la extensíon, NO aparece como normalmente se visualizaba.

Me pueden colaborar en este caso?

=https://gitlab.siu.edu.ar/siu/manejador-salida-toba/-/blob/develop/src/SIU/ManejadorSalidaToba/Componentes/TiposPagina/toba_tp_normal.php#L81tipo de pagina normalEl combo para cambiar de proyectos se encuentra en el , el cual en el manejador bootstrap no implementa salida alguna, por lo que si deseas mantener dicho comportamiento deberias redefinir esta clase en tu propio manejador de salida.

Saludos

Buenos días
Adicional a lo de extender el entorno, para aplicar bootstrap, tengo otro problema y es que los totales del cuadro quedan desfasados.
alguien me puede dar alguna solución?

De lo contrario se me ocurre la idea de agregar una última fila con los totales, pero sería muy manual y no aprovechar dicha propiedad de los efs del cuadro
Mil gracias
Quedo atento
Cordial saludo


totales cuadro desalineados.png

totales cuadro desalineados.png