Row actions
Este tipo de row permite definir un grupo de botones a mostrar junto al resto de botones de la pestaña. Dependiendo del tipo de pestaña se visualizarán en un sitio distinto.
Ejemplo:
<rows>
<row type="actions">
<button action="boton1" color="warning" icon="fa-solid fa-vial" label="button-1" type="action"/>
<button action="boton2" color="warning" icon="fa-solid fa-terminal" label="button-2" type="action"/>
</row>
</rows>
🖱️ Botones
Los botones se definen mediante etiquetas button y tienen las siguientes propiedades:
type: indica el tipo de botón.action: al hacer clic se recargará la página ejecutando el action indicado en la propiedadaction. Este action deberá estar implementado en el controlador, ya sea en execPreviousAction() o execAfterAction().js: al hacer clic ejecutará la función javascript indicada en la propiedadaction.link: al hacer clic se redirecciona a la página indicada en la propiedadaction.modal: al hacer clic mostrará el modal con el name indicado en la propiedadaction.
id: (opcional) identificador html para poder seleccionarlo desde JavaScript.icon: (opcional) icono del botón.label: texto a mostrar en el botón. Se traducirá automáticamente por FacturaScripts.title: (opcional) texto del tooltip del botón. Si no se indica, se usa ellabel. También se traduce automáticamente.level: (opcional) nivel de seguridad aplicable. Por defecto 0. Solamente los usuarios con un nivel de seguridad igual o superior podrán ver este botón.color: (opcional) indica la configuración de color a utilizar.action: indica la acción que se envía al controlador, función JavaScript o nombre del modal a mostrar.confirm: (opcional) si se indica, mostrará al usuario una ventana solicitando confirmación de que desea ejecutar la acción. Solamente aplica a los botones de tipoaction.target: (opcional) en los botones de tipolink, target del enlace. Por ejemplo_blankpara abrir en una pestaña nueva.
🎨 Colores
primary: azul oscuroinfo: azulsuccess: verdewarning: amarillodanger: rojodark: gris oscurolight: gris clarosecondary: gris
También puedes usar las variantes con borde outline-, por ejemplo outline-danger u outline-primary.
Añadir botones desde controladores
También puedes añadir un botón desde tu ListController o EditController. Simplemente usa el método addButton() de la pestaña:
$this->tab('ListProducto')->addButton([
'action' => 'test-action',
'icon' => 'fa-solid fa-question',
'label' => 'test'
]);
Este código añade el botón test a la pestaña ListProducto. Al hacer clic ejecutará la acción test-action del controlador, si la hubiera. Recuerda implementar esta acción en execPreviousAction() o execAfterAction().
La forma antigua $this->addButton('ListProducto', [...]) está obsoleta desde la versión 2026.
Es posible indicar el grupo o row donde se añadirá el botón informando el identificador row y como valor el name que identifica al row.
Si no se informa, el botón se añade al row de acciones generales.
$this->tab('EditEjercicio')->addButton([
'row' => 'footer-actions',
'action' => 'import-accounting',
'color' => 'warning',
'icon' => 'fa-solid fa-file-import',
'label' => 'import-accounting-plan',
'type' => 'modal'
]);
Este código añade el botón importar al row footer con identificador footer-actions y mostrará la ventana modal con identificador import-accounting.
📂 Grupos de botones
Desde la versión 2026 puedes agrupar varios botones en un desplegable. Crea primero el grupo con el método addButtonGroup() y añade después los botones con la clave group:
$this->tab('ListFacturaCliente')->addButtonGroup([
'name' => 'doc-actions',
'icon' => 'fa-solid fa-circle-check',
'label' => 'actions'
]);
$this->tab('ListFacturaCliente')->addButton([
'group' => 'doc-actions',
'action' => 'approve-document',
'icon' => 'fa-solid fa-check',
'label' => 'approve-document'
]);
Si el grupo no existe todavía, se crea automáticamente al añadir el primer botón que lo referencia.