No funcionan algunas propiedades de formulario multilínea con bootstrap

Hola, tenemos un proyecto que aplicamos el manejador de salida bootstrap, algunas propiedades de los formularios multilínea no funcionan (Ancho, alto, scroll). Tampoco se ve la línea de separación entre campos.

¿Alguna idea de como podríamos solucionarlo?

Saludos y gracias!

Gabriel

Hola Gabriel,

tenia pendiente un tag en GL con un cambio sobre el JS del ML, si realizas un composer update sobre dicho paquete quizas solucione el problema que estan viendo, el otro tema es que se modificaron los css… asi que quizas provenga de alli el tema.

Saludos

Hola Richard! te consulto, cual sería el componente del composer y a que versión debería llevarlo para traer los cambios que subiste?

Saludos y gracias!

Gabriel

Hola Gabriel,

el paquete a actualizar seria siu/manejador-salida-bootstrap y el mismo les deberia quedar en la version 1.3.6 si la arquitectura y el resto de los paquetes lo permite.

Tene en cuenta que al tratarse de archivos JS puede que la cache del browser no se entere inmediatamente del cambio, deberias forzar un refresh… .si aun asi sigue sin funcionar entonces quizas podria ser un bug o algo que se nos escapo.

Saludos

Hola Richard, estoy en la v1.3.6 de siu/manejador-salida-bootstrap y el problema persiste, por lo que probé la propiedad “Ancho” responde OK en los cuadros, pero en filtros y formularios ML no funciona con bootstrap.

Saludos

Hola Gabriel,

reviso eso, aunque es probable que se haya sacado del marcado directamente para favorecer la responsividad. Te tengo al tanto.

Saludos

Hola! Estaría buenísimo que el form ML funcione igual que el cuadro, es decir que cuando no entra en la pantalla se active un scroll para navegarlo.

Gracias por la revisarlo, espero entonces , gracias Richard!

Saludos

Gabriel

Hola Gabriel,

creo que encontre la causa por la cual tenes dicho comportamiento visual, efectivamente se estan ignorando activamente las opciones de “scroll”, “alto” y “ancho”.

Por lo que entiendo y pude probar (al menos con mi limitado conocimiento) es para que el marcado pueda responder adecuadamente a los distintos tamaños de viewport, en cuanto se fija el alto / ancho en lugar de reacomodar el formulario al tamaño actual, simplemente se agregan las barras de scroll para toda la pagina.

El metodo en cuestion es bootstrap_formulario_ml::getPreLayout , si no les importa que el proyecto/modulo/sistema pueda ser utilizado en otros dispositivos lo pueden redefinir… es un trabajito pero se puede hacer.

Los pasos serian los siguientes:

  • Definir un manejador de salida propio (y lo configuran en runtime en el contexto_ejecucion)
  • Generar una clase similar a la que se encuentra en el manejador-bootstrap y modificar el contenido del metodo ese (OJO, tienen que crear toda la clase no es solo redefinir dicho metodo pero el resto quedan igual)

El contenido del metodo podria ser algo asi


public function getPreLayout($id,$ancho,$alto,$scroll, $colapsado){
		$style = 'overflow: auto;';
		$colapsado = (isset($colapsado) && $colapsado) ? "display:none;" : "";
		if ($alto != 'auto') {
			$style .= " height: $alto;";
		}
                if ($ancho != 'auto') {
			$style .= " width: $ancho;";
		}
		return "<div class='form-horizontal' style='$colapsado $style' id='$id'>"; //Comienza el formulario
	}

Si tienen una mejor forma de poder mantener ambos comportamientos, soy todo ojos… hasta donde entiendo seria uno u otro.

Saludos

Hola Richard, gracias por darme esta solución alternativa. Vamos a probar redefiniendo la clase (con mi realmente limitado conocimiento) . Si le encontramos alguna vuelta más lo comparto. Saludos y gracias!!!

Gabriel