Class: Ezframe::BirthdayType
Instance Attribute Summary
Attributes inherited from TypeBase
#attribute, #error, #parent
Instance Method Summary
collapse
Methods inherited from TextType
#db_type, #normalize, #value=
Methods inherited from TypeBase
#db_type, #db_value, get_class, #initialize, #key, #label, #no_edit?, #no_view?, #normalize, #type, type_name, #use_view_format, #validate, #value, #value=
Instance Method Details
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
|
# File 'lib/ezframe/column_type.rb', line 498
def form(opts = {})
return nil if no_edit? && !opts[:force]
now = Time.now
year_list = []
110.times do |y|
year = now.year - y - 10
year_list.push [year, "#{year}(#{Japanese.convert_wareki(year)})"]
end
year_list.unshift([ 0, "(年)" ])
key = self.key
key ="#{key}#{opts[:key_suffix]}" if opts[:key_suffix]
year, mon, mday = parse_date(@value)
mon_list = (1..12).map { |m| [m, "#{m}"] }
mon_list.unshift([0, "(月)"])
mday_list = (1..31).map { |d| [d, "#{d}"] }
mday_list.unshift([0, "(日)"])
return [Ht.div([Ht.select(name: "#{key}_year", class: %w[browser-default], item: year_list, value: year),
Ht.small("年")]),
Ht.select(name: "#{key}_mon", class: %w[browser-default], item: mon_list, value: mon),
Ht.small("月"),
Ht.select(name: "#{key}_mday", class: %w[browser-default], item: mday_list, value: mday),
Ht.small("日")
]
end
|
546
547
548
549
550
|
# File 'lib/ezframe/column_type.rb', line 546
def form_to_value(form, target_key: nil)
key = target_key || self.key
y, m, d = form["#{key}_year".to_sym], form["#{key}_mon".to_sym], form["#{key}_mday".to_sym]
return "%d-%02d-%02d"%[y.to_i, m.to_i, d.to_i]
end
|
542
543
544
|
# File 'lib/ezframe/column_type.rb', line 542
def multi_inputs?
true
end
|
#parse_date(date) ⇒ Object
535
536
537
538
539
540
|
# File 'lib/ezframe/column_type.rb', line 535
def parse_date(date)
if date && date =~ /(\d+)\-(\d+)\-(\d+)/
return [ $1.to_i,$2.to_i,$3.to_i ]
end
return nil
end
|
#view(opts = {}) ⇒ Object
525
526
527
528
529
530
531
532
533
|
# File 'lib/ezframe/column_type.rb', line 525
def view(opts = {})
return nil if no_view? && !opts[:force]
return nil unless @value
year, mon, mday = parse_date(@value)
year_s = if year.to_i == 0 then "?" else "%d" % [year]; end
mon_s = if mon.to_i == 0 then "?" else "%2d" % [mon]; end
mday_s = if mday.to_i == 0 then "?" else "%2d" % [mday]; end
return "#{year_s}<small>年</small>#{mon_s}<small>月</small>#{mday_s}<small>日</small>"
end
|