[SOLUCIONADO] deshabilitar agregar de un agregar/quitar líneas de un formulario

[title]deshabilitar agregar de un agregar/quitar líneas de un formulario multilineas[/title]
Hola a todos, buen día
Les realizo la siguiente consulta:
Tengo un formulario multilinea que me muestra los datos de una tabla, a los que le agregué el agregar/quitar líneas, pero solo debo poder
eliminar líneas y no agregar, entonces ¿como podría hacer para que ese botón (el +), quede oculto para el usuario?.

Desde ya muchas gracias.
Saludos a todos.
Alejandro.

Hola Alejandro,

para este caso tenes varias opciones con cual decidas seguir lo dejo a tu criterio:

  • Podes olvidarte de la botonera del ML y definir un evento eliminar (como seria el de un formulario comun) solo que le tildas el check ‘nivel de fila’ para que aparezca en todas, esto lo manejas como un evento comun del lado servidor y cada vez que presiones uno se dispara una llamada al servidor.

  • Podes hacerlo mediante css: agregas una regla especifica para el elemento correspondiente al boton con un display: none; y eso te lo oculta de la vista del usuario, el id del boton en el servidor se forma con lo siguiente: {$this->objeto_js}_agregar (esta opcion esta piola)

  • Ya para meterle garfio de manera importante, lo que podes hacer es extender el formulario_ml y redefinir el metodo generar_botonera_manejo_filas(), ahi ya tenes control total de que se envia y que no al cliente. Tambien te puede servir de referencia para ver como se genera algo en particular.

Espero haberte sido de ayuda
Saludos

Hola Richard, vimos tu respuesta, intentamos hacer la segunda opción sin éxitos.
Entonces probamos la tercera y pudimos hacer que no aparezca más el botón + del form_ml, pero quedó para todos los proyectos
¿Cómo deberíamos redefinir ese método para nuestro proyecto en particular?
¿De quién debería extender?

Espero ser claro.
Gracias.

Hola Alejandro,

Te hago una consulta con respecto a la solucion que eligieron, modificaron directamente la clase toba_ei_formulario_ml o hicieron una subclase de la misma y modificaron esa?.
Si se fueron por el primer caso les va a modificar el comportamiento para todos los proyectos que se encuentre bajo la misma instalacion de toba, recorda que el codigo de toba es compartido por todos los proyectos que se encuentran bajo la misma instalacion.
En el segundo caso unicamente deberia unicamente afectarte al componente al cual le asignaste dicho archivo como subclase, la idea seria ir por aca haciendo una subclase de toba_ei_formulario_ml que se encuentre en tu proyecto y asignarla al ML que tenes para la operacion esa.

Saludos

Hola Richard, intentamos hacer la segunda opción, ¿pero esa subclase debería ser igual q la clase toba_ei_formulario_ml (solo le realizamos las modificaciones necesarias para eliminar el +)? Luego en el conf del formulario hacemos referencia a toba_ei_formulario_ml_modificado (creado por nosotros). pero una vez q lo ejecutamos nos sale el siguiente error:

Catchable fatal error: Argument 1 passed to ci_generar_orden::conf__forml_personas() must be an instance of toba_ei_formulario_ml_modificado, instance of toba_ei_formulario_ml given in C:\1.4.8\proyectos\reemplazos\php\ci_generar_orden\ci_generar_orden.php on line 15

El conf queda de la siguiente manera:
function conf__forml_personas(toba_ei_formulario_ml_modificado $form_ml) //línea 15
{
$sql = ‘select apellidos, nombres, cargo, id_persona
from personas’;

	$datos = toba::db()->consultar($sql);
	$form_ml->set_datos($datos);

}

Saludos

Hola Jorge,

te hago una consulta, ustedes cuando definieron la clase toba_ei_formulario_ml_modificado, la agregaron al componente? (en la imagen se ve como quedaria).
Por lo que puedo ver del error pareciera que no esta tomando la subclase para el componente y por eso falla al momento de realizar el “chequeo de tipos” del parametro.
Te pediria me confirmes si la subclase esta agregada al componente que representa el formulario_ml.

Saludos


Richard, funcionó como nos dijiste, lo que nos faltaba era agregar el la subclase al componente como nos detallaste en la imagen.

Muchas gracias.