Pull to refresh

Модальные окна для рельсов

Reading time1 min
Views1.6K
Доброго времени суток, Хабровчане!

Сразу же извините меня за мой русский, так как мой родной язык украинский.

Я Ruby On Rails разработчик и много раз сталкивался с потребностью модальных окон в моих проектах. Перепробовал я много готовых таких как facebox, fancybox, диалоги с jQuery UI и тд.
На одном из моих последних проектов заказчик захотел добавить конфирм диалог перед удалением какого либо ресурса. Надо было выводить красивое диалоговое окно, а не джаваскриптовый алерт который дает нам rails ujs. Тогда в нас использовался facebox и мне пришлось лазить по всему проекту допиливать все это для фейсбокса. И тогда я решил написать что-то свое, но чисто для рельсов, так все выше упомянуты легко прикрутить куда угодно.
Основной фишкой гема стало то что стандартные рельсовские конфирмейшены можно заменить лишь прописав одну строчку в application.js файле. Добавил еще поддержку картинок чтобы не было необходимости ставить еще что-то если на проекте надо простая галерейка. Все занимает только 5kb. Работает во всех браузерах и в ie начиная с седьмой версии.

Выглядит вот так:
image

image
Правда для IE не такая красивая закрывалка. Кому надо что бы ну прям во всех браузерах выглядело одинаково надо поставить опцию:
$.lazybox.settings({niceClose: false})


Гем умеет:

  • Выводить конфирм диалоги
  • Выводить ремоут страницы
  • Выводить картинки


Установка проще простого

Gemfile:
gem 'lazybox'

application.js:
//= require lazybox

applications.css:
*= require lazybox


Для того чтобы заменить стандартные конфирмы в applications.js добавьте
$.rails.allowAction = $.lazybox.confirm;


У библиотеки есть много опций. Просмотреть можно тут
Демо тут

Спасибо за внимание.
Tags:
Hubs:
Total votes 18: ↑13 and ↓5+8
Comments5

Articles