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.
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.
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.
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.
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.
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!!!