2009-04-17 12 views
17

Estoy a punto de codificar algo para una aplicación Rails mía y no quería reinventar la rueda, de ahí mi pregunta:Rails Notification Message plugin?

¿Conocen algún complemento de Rails que permita a una aplicación mostrar mensajes de notificación que podrían ser específico del usuario y también permitir que el usuario los marque como "no mostrar esto de nuevo"?

Mi visión es mostrar un div superior (como el que StackOverflow agregó recientemente), en un color diferente con el mensaje "title" y en el que se podría hacer clic. Una vez que se hace clic, aparece el mensaje completo y luego permite que el usuario lo marque para evitar que se vuelva a mostrar.

¿Hay algo así por ahí? :-)

He encontrado lo que va de dos plugins:

Pero esos son más bien partes incompletas de mi visión

- Felipe.

+0

Este mensaje en la parte superior de Stackoverflow es aquí el tiempo que Me acuerdo :) (estaba en beta) – klew

Respuesta

3

Parece que system_messages (al que ha vinculado) generalmente hace lo que quiere. El modelo SystemMessage tiene campos header, message y dismissed.

Necesitará solo un poco de JavaScript para mostrar un campo de mensaje inicialmente oculto cuando se hace clic en el encabezado. El complemento ya permite descartar el mensaje a través de JavaScript si usa Prototype.

+0

El enlace de arriba devuelve un error 404 para mí- Para referencia: https://github.com/jstewart/system_messages – lorefnon

0

¿Hay alguna razón por la que simplemente no utilice los rieles incorporados en el flash? ¿Entonces solo tiene algunos js que ocultan el mensaje flash cuando se hace clic en cerrar?

-3

Ya hay un sistema de notificación de mensajes integrado en Rails, que es el flash. Cuándo y a quién aparece y cómo se ve depende de la aplicación; como tal, es poco probable que haya un complemento escrito previamente que haga exactamente lo que usted desea.

Si yo fuera usted, asignaría el flash en el controlador y crearía un div en el diseño que aparece condicionalmente si hay un mensaje flash para comunicarse. Estilo con CSS y adornar con efectos de JavaScript.

+0

El autor de la pregunta ha mencionado explícitamente los requisitos como: "... eso permitiría que una aplicación muestre mensajes de notificación que podrían ser específicos del usuario y también permitiría que el usuario los marque como 'no mostrar esto de nuevo'?" IMO Ninguno de estos dos requisitos se cumple con el uso de mensajes flash. – lorefnon

2

Dado que no tengo la reputación suficiente para comentar - flash no es suficiente para un par de razones diferentes:

  1. que estés vista y el código del controlador de mezcla. Necesito notificar a los usuarios, incluidas las URL y los mensajes que simplemente no pertenecen al controlador. Puedo escribir funciones de envoltura para hacer esto en vistas, pero es hacky.
  2. Notificación asincrónica. Si está utilizando un patrón de diseño de cola, realmente necesita una cola de mensajes para acompañarlo, y mostrar los mensajes de los usuarios totalmente independientes del controlador que están viendo.
  3. Difícil de establecer el estado. Algunos mensajes solo se deben mostrar al usuario una vez. Es necesario crear un modelo de mensaje completo para rastrear lo que hicieron clic y deshabilitar de todos modos.

También estoy buscando una buena solución, y hasta ahora lo mejor que se me ocurre es RYO. En última instancia, voy a rellenar el código de la pantalla en flash, pero averiguar qué y cuándo flashear es el truco.

-2

Yo uso jGrowl (demo), y estoy contento con eso. Leí sobre Roar esta mañana, y voy a probar eso también. Si está utilizando MooTools, también hay Window.Growl.

+1

El usuario menciona específicamente Rails, lo que implicaría que está buscando un mecanismo de fondo para generar esas notificaciones en lugar de un complemento de JavaScript que solo proporciona una forma de mostrar esas notificaciones. – lorefnon