Inicio > ADF / Java > ADF tips: Control de cambios pendientes

ADF tips: Control de cambios pendientes

El control de cambios pendientes cuando el usuario abandona una página es siempre un problema muy a tener en cuenta, sobretodo cuando el usuario utiliza formas de navegación no controladas por la aplicación (como el botón atrás, cerrar el navegador, refrescar la página…).

ADF ofrece una manera muy sencilla de alertar al usuario cuando tiene cambios pendientes, simplemente debemos añadir el atributo uncommittedDataWarning dentro del tag af:document; como se muestra en la imagen.

uncommitted001

Esta nueva propiedad provoca que cuando el usuario intenta cerrar el navegador, refrescar la página, ir atrás o una acción similar, salte un popup genérico que le alerte de que si continua puede perder sus cambios.

uncommitted002

Además es posible forzar a que este aviso sea lanzado cuando se haga uso de algún elemento de navegación dentro de la propia pantalla, por ejemplo al pulsar un botón o hacer un cambio de pestaña. Para ello debemos añadir el atributo af:checkUncommittedDataBehavior dentro del componente deseado.

uncommitted003

Aunque es una solución válida para evitar salidas descontroladas del navegador, en algunos casos puede que necesitemos personalizar este popup de alerta. Por ejemplo para ofrecerle al usuario la opción de guardar sus cambios desde el propio popup, forzar a deshacer todos los cambios antes de permitir la navegación o tal vez darle un aspecto más amigable al aviso. Para ello podemos acceder a la comprobación que internamente el framework ejecuta por nosotros para saber cuándo debe mostrar el mensaje de aviso; teniendo la opción de por ejemplo abrir un popup de aviso propio.

uncommitted004

En resumen, gracias a la opción de  uncommittedDataWarning podemos alertar al usuario de una forma rápida y eficaz de que va a perder los cambios pendientes, y en caso de que el aviso genérico no cumpla con todos nuestros requisitos, existe una forma alternativa de hacer la misma comprobación y controlar manualmente todas las opciones que el usuario tendrá disponibles.

Categorías:ADF / Java Etiquetas: , ,
  1. septiembre 11, 2013 en 19:25

    Buen tip Fernando.
    ¿Cómo se personalizaría el popup de alerta, sería llamando ese código mediante el action de un botón?
    y en caso de cerrar el navegador, ¿cómo mostrar el popup personalizado?

    Gracias!.

    • Fernando Galindo
      octubre 10, 2013 en 19:43

      Hola,

      Para utilizar el popup personalizado deberíamos llamar a ese código desde los puntos donde querramos controlar la pérdida de cambios; lo más normal es utilizarlo desde el típico botón de Salir o Cancelar.

      Para poder controlar el cierre de navegador con el mensaje personalizado deberíamos jugar con un evento javascript utilizando las propiedades onunload del componente document sobre el que tenemos nuestra página (en caso de trabajar con templates se simplifica mucho).

      Como explicar esta segunda casúsitica en una respuesta tal vez sea demasiado confuso prepararé un nuevo tip con los detalles.

      No te pierdas el blog las próximas semanas 😉

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: