Make a quick vote 🗳 ️How do you refer to SuiteCRM extensions: add-ons or plug-ins? Click here to have your say 👈

Mantener formulario cargado luego de validación

Buenas a todos

Tengo un Logic Hook creado en un módulo personalizado el cual hace una validación, trabajando con beans:

class VerificadorCuil

{

    public function verificaCuil($bean){

       

        $cuil_ingresado = $bean->cuil2_c;

        $accountBean = BeanFactory::getBean('Contacts');

        $beanlist = $accountBean->get_list(

                                    $order_by = "first_name",

                                    $where = "cuil2_c = ${cuil_ingresado}",

                                    $row_offset = 0,

                                    $limit=-1,

                                    $max=-1,

                                    $show_deleted = 0);

       

        if($beanlist['row_count'] >= 1 ){

          require('alertCuil.html');

                   

          exit();

        }

    }

}

El mismo en caso de no cumplir las condiciones envía a una página externa con un aviso y un botón para volver a la página anterior.

¿Puedo de alguna manera hacer que cuando se vuelva a la página anterior siga el formulario cargado?

Gracias!!

Logic hooks son ejecutados en el “back-end”, no puedes emitir HTML ni cambiar la navegación del usuario…

Tienes que buscar una solución en el front-end, con Javascript.

Hola pgr! Si, lo del logic hook fue un comentario aparte de como está funcionando el módulo actualmente. Cuando guardamos un registro con un cuil ya existente te redirecciona a un HTML que tiene un botón con una funcion de JS que te devuelve a la página anterior… ahora, la consulta puntual (quizas mezclé en la explicación) es si CRM tiene alguna forma de guardar esos datos cargados en el formulario para que cuando se ejecute ese método JS que tiene el botón, no se pierdan los datos cargados… me explico?

Gracias por tu resp!

Pero porqué vas a complicar dejando que se carregue otra página, y perdiendo todo el contexto encuanto SuiteCRM hace cosas en el back-end, si después quieres volver atrás y, además, quieres tener el contexto que tenias antes?..

Es much mejor quedarse en la página original, hacer lo que quieres con una llamada Ajax, sin salir de la página, sin utilizar logic hooks.

Realmente no es mi fuerte el front e intenté con JS con tu comentario en el otro post y no me dió resultado… pero no quedará otra que seguir probando hasta que salga entonces…

Gracias por los comentarios!

Para aprender a hacer una llamada Ajax en SuiteCRM sugiero copiar lo que se hace en

include/InlineEditing/inlineEditing.js

por ejemplo, getValidationRules si quieres retornar datos en JSON. Hay otras que retornan solo una string, son un poco más simples.

El back-end correspondiente está en

modules/Home/controller.php

Este ejemplo de Ajax es asíncrono, que te evita ter de definir una callback para el retorno en JS - un poquito más simples también en esto, aunque hay que garantir que todo es rapido para no bloquear mucho el browser durante la llamada.

gracias como siempre por las resp! voy a chequear esto a ver si tengo éxito