GXwiki - Sobre websession, tiemout y cambios perdidos.


En Concepto y en nuestros clientes tenemos varias instalaciones de GXWiki. Es una herramienta maravillosa para capturar conocimiento e ideas en grupos de trabajo. Recomiendo a todos los que tengan proyectos donde trabaje mas de 5 personas, que se instalen uno.  Es notable como se va evolucionando y los usuarios usan nuevas funcionalidades. Si todos se acostumbran a registrar sus ideas en forma mas o menos sistematica, con el correr del tiempo las buenas ideas salen a luz..


Como lei en un tweet que mando @guscarr:


Para conseguir buenas ideas, alcanza con tener muchas ideas y desechar las malas


Una evolución natural que he encontrado es que quienes redactaban procedimientos escritos, pasaron a grabar videos con Jing e incorporan dichos videos al Wiki, facilitando el aprendizaje a los usuarios finales. Lo que antes costaba explicar por escrito, ahora lo muestran con un video sobre la aplicación.


Con el paso del tiempo, los usuarios van pidiendo mas funcionalidades.


La principal molestia que tienen ahora, es que pierden trabajo cuando demoran mucho en una sesión de edición.


Un usuario se conecta al wiki con su usuario y contraseña, trabajar durante 4 horas editando un texto (sin nunca salvarlo). Cuando da salvar, la sesión ya no esta activa y pierde el contenido de dicha edición.


Ya hemos aumentado el tiempo de duración de la websession, pero llevarlo a periodos mayores puede traer problemas de seguridad.


Estaría bueno poder capturar cuando un usuario estaba conectado y llego al timeout de la sesión, para volver a pedirle usuario y contraseña y no perder el trabajo que realizo. Estuve buscando como detectar cuando se llega al tiemeout, pero no encontré un método que me funcionara.


Otro cambio que estaría bueno tener en GXWiki ( o para cualquier aplicación generada por GeneXus) es que al estar editando una pagina y ya realicé varios cambios en el texto y presiono un link que me cambia de página no pierda los cambios. Estaría bueno que la aplicación se diera cuenta que voy a perder los cambios realizados y preguntara si quiero perder los cambios o mantenerme en dicha página.


Esta validación es bastante común en aplicaciones de google y microsoft y los usuarios la piden.


Ahora las preguntas:


Alguien ha encontrado alguna solución para detectar cuando un usuario termino una sesion por tiempo?


Y una forma de avisarle al usuario cuando realizo cambios y los mismos no fueron trasmitidos al server?

Comentarios

  1. Habia un borrador de implementación de "autosave" que andaba bastante bien pero le faltaban algunos ajustes (perdia la posición del cursor o algo así).

    Capaz la consigo por ahí.

    Igual es la solución a otro problema pero disminuye sensiblemente estos que mencionas.

    ResponderBorrar
  2. Hay forma de hacerlo, si tienes en javascript implementado mediante "pooleo" una llamada por http a un procedimiento http. En realidad se podría implementar que si el usuario está digitando mantenga un keep a live en la sesión mediante esos post http con lo que la sesión en realidad no se perdería mientras el usuario esté digitando o trabajando en el documento sin hacer realmente un post http hasta el salvado.
    Lo del autosave también se puede implementar de forma similar, haciendo que se dispare el salvado cada x tiempo o cada x eventos (si está observando los eventos del teclado).

    ResponderBorrar
  3. GusCarr:
    Con la funcion de AutoSave, se puede solucionar gran parte de estos problemas.
    Si podes pasarme un borrador de como funciona, a lo mejor puedo arreglarme y dejar a los usuarios mas contentos.
    Gracias

    ResponderBorrar
  4. David:
    Tenes algun ejemplo de como se hace eso?
    Gracias

    ResponderBorrar
  5. Concuerdo con David. Una solución sencilla es poner un timer javascript que haga una petición ajax cada 1 minuto o algo así. De esa forma todas las personas que tengan abierta una página de la wiki van a tener sus sesiones activas. Si querés hilar más fino podés incluir el javascript solo en modo edición.
    Te envío un ejemplo por mail, después podés poner otro post con la solución :)

    ResponderBorrar
  6. Pablo:
    Espero el mail.. si logro hacerlo funcionar lo publico como otro post..

    Gracias!

    ResponderBorrar
  7. Alguien tiene el archivo security.xpz para implementar seguridad en aplicativos web degenexus???...por favooor!

    ResponderBorrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Aplicación monolítica o distribuida?

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.