Class: DrgcmsFormFields::DateSelect

Inherits:
DrgcmsField show all
Defined in:
app/models/drgcms_form_fields.rb

Overview

Implementation of date_select DRG CMS form field.

Form options:

  • type: date_select (required)

  • name: Field name (required)

  • options: options which apply to date_select field (optional)

  • html: html options which apply to password field (optional)

Form example:

50:
  name: valid_from
  type: date_select
  options:
    include_blank: true
  html:
    class: my-date-class

Instance Attribute Summary

Attributes inherited from DrgcmsField

#html, #js

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DrgcmsField

#hash_to_options, #initialize, #record_text_for, #ro_standard, #set_initial_value, #t

Constructor Details

This class inherits a constructor from DrgcmsFormFields::DrgcmsField

Class Method Details

.get_data(params, name) ⇒ Object

Get data for DateSelect field According to gist.github.com/315227



892
893
894
895
896
897
898
899
900
901
902
903
904
# File 'app/models/drgcms_form_fields.rb', line 892

def self.get_data(params, name)
  attrs = params['record'].collect do |key, value|
    if key =~ /^#{Regexp.escape(name.to_s)}\((\d+)(\w)\)$/
      [$1.to_i, value.send("to_#$2")]
    end
  end.compact.sort_by(&:first).map(&:last)
# Return nil if error
  begin
    Time.zone.local(*attrs) #unless attrs.empty?
  rescue 
    nil
  end
end

Instance Method Details

#renderObject

Render date_select field html code



876
877
878
879
880
881
882
883
884
885
886
# File 'app/models/drgcms_form_fields.rb', line 876

def render
  return ro_standard( @parent.dc_format_value(@record[@yaml['name']])) if @readonly
#
  @yaml['options'] ||= {}
  set_initial_value('options','default')
  @yaml['options'].symbolize_keys!
  @yaml['html'].symbolize_keys!
  record = record_text_for(@yaml['name'])
  @html << @parent.date_select(record, @yaml['name'], @yaml['options'], @yaml['html'])
  self
end