[Из песочницы] Модальные окна для рельсов
Хабы: Ruby on Rails, ПесочницаДоброго времени суток, Хабровчане!
Сразу же извините меня за мой русский, так как мой родной язык украинский.
Я Ruby On Rails разработчик и много раз сталкивался с потребностью модальных окон в моих проектах. Перепробовал я много готовых таких как facebox, fancybox, диалоги с jQuery UI и тд.
На одном из моих последних проектов заказчик захотел добавить конфирм диалог перед удалением какого либо ресурса. Надо было выводить красивое диалоговое окно, а не джаваскриптовый алерт который дает нам rails ujs. Тогда в нас использовался facebox и мне пришлось лазить по всему проекту допиливать все это для фейсбокса. И тогда я решил написать что то свое, но чисто для рельсов, так все выше упомянуты легко прикрутить куда угодно.
Основной фишкой гема стало то что стандартные рельсовские конфирмейшены можно заменить лишь прописав одну строчку в application.js файле. Добавил еще поддержку картинок чтобы не было необходимости ставить еще что то если на проекте надо простая галерейка. Все занимает только 5kb. Работает во всех браузерах и в ie начиная с седьмой версии.
Выглядит вот так:
Правда для IE не такая красивая закрывалка. Кому надо что бы ну прям во всех браузерах выглядело одинаково надо поставить опцию:
$.lazybox.settings({niceClose: false})
Гем умеет:
- Выводить конфирм диалоги
- Выводить ремоут страницы
- Выводить картинки
Установка проще простого
Gemfile:
gem 'lazybox'
application.js:
//= require lazybox
applications.css:
*= require lazybox
Для того чтобы заменить стандартные конфирмы в applications.js добавьте
$.rails.allowAction = $.lazybox.confirm;
У библиотеки есть много опций. Просмотреть можно тут
Демо тут
Спасибо за внимание. Читать дальше →
Полный текст статьи читайте на Habrahabr.ru