kristianmandrup / formtastic_datepicker-rails3x

formtastic_datepicker for Rails 3 and above
MIT License
2 stars 1 forks source link

Formtastic Datepicker for Rails 3.x

This plugin is based on a blog post by

Versions supported

Rails 3

Originally this version of the gem had dependency requirements of Rails 3.1 and above. The requirements have now been relaxed to depend on Rails 3.0 and above.

Formtastic

This gem requires Formtastic 2.0. For a version that supports Formtastic < 2.0, see [formtastic_datepicker]:(https://github.com/kristianmandrup/formtastic_datepicker)

ActiveAdmin

The ActiveAdmin extension should work with ActiveAdmin 0.3.4 (where Formtastic >= 2.0) - note: as of Nov. 25/2011, such a version was found in the active_admin/gregbell _master__ branch. ActiveAdmin 0.3.5 and above should likely fulfill this requirement ;)

Conceptual idea

The concept is simple. It adds a new form input to formtastic that can be used like this:

    <% semantic_form_for @master do |f| -%>
        <% f.inputs do -%>
          <%= f.input :name %>
          <%= f.input :born, :as => :date_picker %>
        <% end -%>
        <%= f.buttons %>
    <% end -%>

It adds a class onto a normal text input called 'ui-date-picker', and for the parent <li> it adds a class called 'date_picker.' Assuming you have already referenced jquery, and jqueryui in your layout, you can then hook into this with a call from jquery:

    $(document).ready(function(){
        $('input.ui-date-picker').datepicker();
    });

Put this in your application.js or some other js file.

ActiveAdmin integration

In the Gemfile add this gem after ActiveAdmin (gem 'active_admin') to make sure it loads after and overrides/extends ActiveAdmin appropriately.

The ActiveAdmin extensions can be found in lib/active_admin in this project.

Install

Insert into Gemfile:

gem 'formtastic_datepicker-rails3x', :git => 'git://github.com/kristianmandrup/formtastic_datepicker-rails3x.git'

This gem will likely soon be released to RubyGems ;)

Development Environment

We currently support both Rails 2 and Rails 3, under Ruby 1.8.7-ish (and 1.9.2-ish). That means, at a bare minimum, you'll want to set-up two rvm gemsets to run your specs against. So, fork the project on Github, clone it, make some gemsets, run bundler, run your specs and then finally set-up an .rvmrc file that specifies Rails 3 as your default gemset and cd back into that directory to load in the .rvmrc file. Something like this:

cd ~/code/formtastic
rvm gemset create formtastic-rails3
rvm gemset use formtastic-rails3
gem install bundler
bundle install
rake spec
rm Gemfile.lock
rvm gemset create formtastic-rails2
rvm gemset use formtastic-rails2
gem install bundler
RAILS_2=true bundle install
RAILS_2=true rake spec
touch .rvmrc
echo "rvm gemset use formtastic-rails-3" > .rvmrc
cd ~/code/formtastic

Also, most of the testing environment has been copied straight of formtastic, so if something doesn't make sense here, it probably did where I grabbed it from.

Contributors