EasyModalWindow
This is wrapper for jQuery-UI Dialog. Additionally it contain several templates for render errors from ActiveRecord and ErrorMessagesContainer.
Dependency
Gem require jQuery-UI version 1.8 or greater.
Installation
Add this line to your application's Gemfile:
gem 'easy_modal_window'
And then execute:
$ bundle
Or install it yourself as:
$ gem install easy_modal_window
Usage
Gem provide several helpers for easy render jQuery-UI dialog and list with ActiveRecord errors.
jQuery-UI dialog
Helper render_base_dialog
. It take parameters like a dialog
, but in more easy way and with less required parameters.
render_base_dialog(
render_template: 'example_template',
locals: {id: 42},
resizable: false,
height: 'auto',
width: 'auto',
before_close: {
condition: true,
action: 'return true;'
},
buttons: {
load_button: {
name: l(:load_button),
action: "$('#modal-window-ajax-form').submit();",
class: 'my-first-css-class'
},
close_button: {
name: l(:close_button),
action: "$(this).dialog('close');",
class: 'my-second-css-class'
}
}
Here we can skip any parameters except render_template
or render_partial
.
NOTE: by default modal window puts in #ajax-modal
element; you can specify other selector in window_selector
option.
ActiveRecord errors
Helper render_active_record_result
provide easy way to render list with several AR errors.
render_active_record_result(object: object,
success_message: l(:success_message))
If object.errors.blank?
you see value of success_message
.
ErrorsContainer errors
Helper render_errors_container_result
provide easy way to render nested lists with messages from ErrorsContainer.
render_errors_container_result(object: object,
success_message: l(:success_message),
container_class: 'upper-ul-class', # class for upper ul element
element_class: 'first-li-class', # class for li elements which contain group name
errors_group_class: 'div-in-li-class') # class for div with errors group name
CSS-class parameters are optional.
Contributing
- Fork it ( http://github.com/Loriowar/easy_modal_window/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request