Class: DrgcmsFormFields::DatePicker
- Inherits:
-
DrgcmsField
- Object
- DrgcmsField
- DrgcmsFormFields::DatePicker
- Defined in:
- app/models/drgcms_form_fields/date_picker.rb
Overview
Implementation of date_picker DRG CMS form field with help of jQuery DateTimePicker plugin.
Since javascript date(time) format differs from ruby date(time) format localization must be provided in order for date_picker object works as expected. For example:
en:
datetimepicker:
formats:
date: 'Y/m/d'
datetime: 'Y/m/d H:i'
sl:
datetimepicker:
formats:
date: 'd.m.Y'
datetime: 'd.m.Y H:i'
Form options:
-
type:
date_picker (required) -
name:
Field name (required) -
options:
options which apply to date_picker field. All options can be found here xdsoft.net/jqplugins/datetimepicker/ .
Options can be defined in single line like:
-
options: ‘inline: true,lang: “sl”’ or
-
options:
-
inline: true
-
lang: ‘“sl”’
-
-
html:
html options which apply to date_picker field (optional)
Form example:
10:
name: created
type: date_picker
options: 'inline: true,lang: "sl"'
Instance Attribute Summary
Attributes inherited from DrgcmsField
Class Method Summary collapse
-
.get_data(params, name) ⇒ Object
DatePicker get_data method.
Instance Method Summary collapse
-
#render ⇒ Object
Render date_picker field html code.
Methods inherited from DrgcmsField
#hash_to_options, #html, #initialize, #record_text_for, #ro_standard, #set_initial_value, #set_style, #t
Constructor Details
This class inherits a constructor from DrgcmsFormFields::DrgcmsField
Class Method Details
.get_data(params, name) ⇒ Object
DatePicker get_data method.
96 97 98 99 |
# File 'app/models/drgcms_form_fields/date_picker.rb', line 96 def self.get_data(params, name) t = params['record'][name] ? params['record'][name].to_datetime : nil t ? Time.zone.local(t.year, t.month, t.day) : nil end |
Instance Method Details
#render ⇒ Object
Render date_picker field html code
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'app/models/drgcms_form_fields/date_picker.rb', line 67 def render value = (@record and @record[@yaml['name']]) ? I18n.localize(@record[@yaml['name']].to_date) : nil return ro_standard( @parent.dc_format_value(value)) if @readonly # @yaml['options'] ||= {} set_initial_value @yaml['html']['size'] ||= 10 @yaml['html']['value'] = value # @yaml['options']['lang'] ||= "'#{I18n.locale}'" @yaml['options']['format'] ||= "'#{t('datetimepicker.formats.date')}'" @yaml['options']['timepicker'] = false # record = record_text_for(@yaml['name']) @html << @parent.text_field(record, @yaml['name'], @yaml['html']) @js << <<EOJS $(document).ready(function() { $("##{record}_#{@yaml['name']}").datetimepicker( { #{(@yaml['options'])} }); }); EOJS self end |