[![Gem Version](https://badge.fury.io/rb/active_admin_datetimepicker.svg)](http://badge.fury.io/rb/active_admin_datetimepicker) [![Build Status](https://img.shields.io/travis/activeadmin-plugins/active_admin_datetimepicker.svg)](https://travis-ci.org/activeadmin-plugins/active_admin_datetimepicker) [![Coverage](https://coveralls.io/repos/activeadmin-plugins/active_admin_datetimepicker/badge.svg?branch=master)](https://coveralls.io/r/activeadmin-plugins/active_admin_datetimepicker) # ActiveAdminDatetimepicker Adds ability to use XDSoft's DateTime picker as the `date_time_picker` input for forms, and `date_time_range` for filters ![ActiveAdminDatetimepicker](https://raw.githubusercontent.com/ActiveAdminPlugins/activeadmin_datetimepicker/master/screen/screen.png "ActiveAdminDatetimepicker") ## Installation Add this line to your application's Gemfile: ```ruby gem 'active_admin_datetimepicker' ``` And then execute: $ bundle Or install it yourself as: $ gem install active_admin_datetimepicker Add following line into `app/assets/stylesheets/active_admin.css.scss` ```css @import "active_admin_datetimepicker"; ``` Add following line into `app/assets/javascripts/active_admin.js.coffee` ```coffee #= require active_admin_datetimepicker ``` ## Usage Plugin offers the `date_time_picker` input and `date_time_range` filter, which use the [XDSoft DateTime Picker gem](https://github.com/shekibobo/xdan-datetimepicker-rails). The `date_time_picker` input accepts many of the options available to the standard jQueryUI Datepicker. For example: ```ruby # Index page filters filter :created_at, as: :date_time_range # New/Edit form form do |f| f.input :starts_at, as: :date_time_picker, datepicker_options: { min_date: "2013-10-8", max_date: "+3D" } f.input :ends_at, as: :date_time_picker, datepicker_options: { min_date: 3.days.ago.to_date, max_date: "+1W +5D" } end ``` ## Override behaviour in initializer ```ruby # This if for front-end javascript side ActiveAdminDatetimepicker::Base.default_datetime_picker_options = { defaultDate: proc { Time.current.strftime("%Y-%m-%d 00:00") } } # This if for backend(Ruby) ActiveAdminDatetimepicker::Base.format = "%Y-%m-%d %H:%M:%S" ``` ## Change datetime format If you want to change format - you need to make sure that front-end and back-end formats are identical. And remember JS and Ruby datetime format has different syntax. Create configuration file `/config/initializers/init_datetimpicker.rb` ```ruby # Example "11/03/2016 13:00" ActiveAdminDatetimepicker::Base.default_datetime_picker_options = { format: 'd/m/Y H:i', # JS format defaultTime: proc { Time.current.strftime('%H:00') } # not necessary } ActiveAdminDatetimepicker::Base.format = "%d/%m/%Y %H:%M" # Ruby format ``` See [the datetimepicker documentation for more details](http://xdsoft.net/jqplugins/datetimepicker/). ## Contributing 1. Fork it ( https://github.com/activeadmin-plugins/activeadmin_datetimepicker/fork ) 2. Create your feature branch (`git checkout -b my-new-feature`) 3. Commit your changes (`git commit -am 'Add some feature'`) 4. Push to the branch (`git push origin my-new-feature`) 5. Create a new Pull Request