Записки программирующего руководителя

ruby, управление, проекты и мечты
May 16

Рабочий пример использования gritter_notices

Gritter_notices
Люди начали просить пример использования gritter_notices, вот он http://gritter-notices-example.heroku.com/

Код, как всегда, на github

Mar 30

gritter_notice: Всплывающие flash-сообщения из глубин фоновых задач

C flash-сообщениями постояно одни и теже поблемы:

Не понятно где их вводить на странице. Заранее определять блок - жалко место и не ясно что на нем вводить когда сообщений нет. Делать блок раздвижным - не хочется двигать из-за этого все содержимое страницы, да и лайаут не вегда может быть резиновым в этом месте. А еще сообщений может быть много.. А еще нужно заботиться об их стилях, о хелпере вывода.. а еще кто-то все время норовит засунуть сообщение в неизвестный ключ, типа flash[:system]='Траляля'

А еще хочется выводить сообщения не только в текущей сессии, но для конкретного пользователя. Запустил, например, он импорт контактов, ушла задача в delayed_job и не слуху не духу от нее, flash-ками уже не обойдешься.

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

    user.notice 'Вася, мы закончили работу'
    user.notice_warning 'Вася, что-то тут такое странное происходит', :image=>'http://..'

Василий получит эти сообщения при первом-же просмотре сайта как и остальные flash-и.

Для вывода собщений используется  jQuery плагин gritter, пример его работы - http://boedesign.com/demos/gritter/

Подробнее: https://github.com/dapi/gritter_notices