Плагин Rails Notification Message?

Я собираюсь что-то написать для своего приложения Rails и не хочу изобретать велосипед, поэтому мой вопрос:

Ребята, вы знаете какой-нибудь плагин Rails, который позволял бы приложению отображать уведомления, которые могут быть специфичными для пользователя, а также позволял пользователю помечать их как «больше не показывать это»?

Мое видение состоит в том, чтобы отобразить верхний div (например, недавно добавленный StackOverflow) в другом цвете с сообщением «заголовок», и это будет кликабельно. После нажатия всплывает все сообщение, а затем пользователь может пометить его, чтобы предотвратить его повторное отображение.

Есть ли что-нибудь подобное? :-)

Я нашел до сих пор эти два плагина:

Но это довольно неполные части моего видения

-- Фелипе.


person kolrie    schedule 17.04.2009    source источник
comment
Это сообщение в верхней части Stackoverflow здесь, сколько я помню :) (оно было в бета-версии)   -  person klew    schedule 14.05.2009


Ответы (6)


Похоже, что system_messages (на которые вы ссылались) в основном делает то, что вы хотите. Модель SystemMessage имеет поля header, message и dismissed.

Потребуется немного JavaScript, чтобы показать изначально скрытое поле сообщения при нажатии на заголовок. Плагин уже позволяет закрыть сообщение через JavaScript, если вы используете Prototype.

person Baldu    schedule 09.10.2009
comment
Ссылка выше возвращает мне ошибку 404. Для справки: github.com/jstewart/system_messages - person lorefnon; 04.08.2012

Поскольку у меня недостаточно репутации, чтобы комментировать, Flash недостаточно по нескольким причинам:

  1. вы смешиваете код представления и контроллера. Мне нужно уведомить пользователей, включая URL-адреса и сообщения, которые просто не принадлежат контроллеру. Я могу написать функции-оболочки, чтобы сделать это в представлениях, но это хаки.
  2. Асинхронное уведомление. Если вы используете шаблон проектирования очереди, вам действительно нужна очередь сообщений, чтобы работать с ним и отображать сообщения пользователей, полностью независимые от контроллера, который они просматривают.
  3. Трудно установить состояние. Некоторые сообщения должны отображаться пользователю только один раз. Нужно создать целую модель сообщения, чтобы отслеживать, что они нажали и что отключили в любом случае.

Я также ищу хорошее решение, и пока лучшее, что я могу придумать, это RYO. В конечном итоге я запихну код отображения во флэш-память, но хитрость заключается в том, чтобы выяснить, что и когда нужно прошивать.

person teich    schedule 29.05.2009

Mailboxer предоставляет модель уведомлений, предназначенную для использования в качестве системного сообщения: https://github.com/ging/mailboxer

person v4r    schedule 20.07.2012

Есть ли причина, по которой вы просто не используете рельсы, встроенные во флэш-память? Тогда просто есть какой-нибудь js, который скрывает флэш-сообщение при нажатии кнопки «Закрыть»?

person MatthewFord    schedule 17.04.2009

Я использую jGrowl (demo), и я доволен этим. Сегодня утром я прочитал о Roar и тоже попробую. Если вы используете MooTools, есть также Window.Growl.

person Chris Doggett    schedule 29.05.2009
comment
Пользователь специально упоминает Rails, что подразумевает, что он ищет внутренний механизм для генерации этих уведомлений, а не плагин javascript, который просто предоставляет способ отображения этих уведомлений. - person lorefnon; 04.08.2012

В Rails уже встроена система уведомлений о сообщениях, которая называется flash. Когда и кому он появляется и как он выглядит, зависит от приложения; поэтому маловероятно, что есть предварительно написанный подключаемый модуль, который делает именно то, что вы хотите.

Если бы я был вами, я бы назначил флэш-память в контроллере и создал div в макете, который условно появляется, если есть флэш-сообщение для связи. Создавайте стиль с помощью CSS и украшайте эффектами JavaScript.

person Raphomet    schedule 18.04.2009
comment
Спрашивающий прямо упомянул требования как: ... которые позволили бы приложению отображать уведомления, которые могут быть специфическими для пользователя, а также позволить пользователю пометить их как «больше не показывать это»? ИМО Ни одно из этих двух требований не удовлетворяется простым использованием флэш-сообщений. - person lorefnon; 04.08.2012