mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-14 00:54:32 +08:00
36 lines
850 B
Ruby
36 lines
850 B
Ruby
# frozen_string_literal: true
|
|
|
|
class FormDatetimeFieldValue < FormFieldValue
|
|
def value=(val)
|
|
if val.is_a?(Array)
|
|
self.datetime = val[0]
|
|
self.datetime_to = val[1]
|
|
else
|
|
self.datetime = val
|
|
end
|
|
end
|
|
|
|
def value
|
|
range? ? [datetime, datetime_to] : datetime
|
|
end
|
|
|
|
def range?
|
|
datetime_to.present?
|
|
end
|
|
|
|
def formatted
|
|
if form_field.data['time']
|
|
range? ? [datetime&.utc, datetime_to&.utc].join(' - ') : datetime&.utc.to_s
|
|
else
|
|
range? ? [datetime&.to_date, datetime_to&.to_date].join(' - ') : datetime&.to_date.to_s
|
|
end
|
|
end
|
|
|
|
def formatted_localize
|
|
format = form_field.data['time'] ? :full : :full_date
|
|
from = datetime ? I18n.l(datetime, format: format) : ''
|
|
to = datetime_to ? I18n.l(datetime_to, format: format) : ''
|
|
|
|
range? ? [from, to].join(' - ') : from
|
|
end
|
|
end
|