2009-04-17 2 views
17

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

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

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

Есть ли что-нибудь в этом роде? :-)

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

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

- Фелипе.

+0

Этого сообщение на вершине Stackoverflow находится здесь до тех пор, как я помню :) (это было в бета-версии) – klew

ответ

3

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

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

+0

Выше ссылка возвращает ошибку 404 для меня - для справки: https://github.com/jstewart/system_messages – lorefnon

0

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

-3

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

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

+0

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

2

Так как я не хватает репутации комментировать - вспышки не достаточно для нескольких различных причин:

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

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

-2

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

+1

Пользователь специально упоминает Rails, который подразумевает, что он ищет бэкэнд-механизм для генерации этих уведомлений, а не плагин javascript, который просто предоставляет способ отображения этих уведомлений. – lorefnon

2

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