cirandas.net

ref: master

plugins/orders/lib/orders_plugin/date_helper.rb


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
module OrdersPlugin::DateHelper

  protected

  include OrdersPlugin::FieldHelper

  def date_range_field form, start_field, end_field, options = {}
    start_time = form.object.send(start_field) || Time.now
    end_time   = form.object.send(end_field)   || Time.now+1.week

    render 'orders_plugin/shared/daterangepicker/form_field', form: form, options: options,
      start_field: start_field, end_field: end_field, start_time: start_time, end_time: end_time
  end

  def datetime_range_field form, start_field, end_field, options = {}
    date_range_field form, start_field, end_field, timePicker: true
  end

  def labelled_datetime_range_field form, start_field, end_field, label, options = {}
    labelled_field form, label, label, datetime_range_field(form, start_field, end_field, options)
  end

  def datetime_period_with_from start, finish
    I18n.t('orders_plugin.lib.date_helper.from_start_to_finish') % {
     start: start.strftime(I18n.t('orders_plugin.lib.date_helper.m_d_y_hh_m')),
     finish: finish.strftime(I18n.t('orders_plugin.lib.date_helper.m_d_y_hh_m')),
    }
  end

  def day_time time
    time.strftime I18n.t('orders_plugin.lib.date_helper.b_d_at_hh_m')
  end

  def day_time_period start, finish
    start.strftime I18n.t('orders_plugin.lib.date_helper.b_d_from_time_start_t') % {
      default_format: start.strftime(I18n.t 'date.formats.default'),
      time_start: start.strftime(I18n.t 'orders_plugin.lib.date_helper.hh_m'),
      time_finish: finish.strftime(I18n.t 'orders_plugin.lib.date_helper.hh_m'),
    }
  end

  def day_time_short time
    time.strftime time.min > 0 ? I18n.t('orders_plugin.lib.date_helper.m_d_hh_m') : I18n.t('orders_plugin.lib.date_helper.m_d_hh')
  end

  def datetime_period_with_day start, finish
    (start.to_date == finish.to_date ?
      I18n.t('orders_plugin.lib.date_helper.start_day_from_start_') :
      I18n.t('orders_plugin.lib.date_helper.start_day_start_datet')
    ) % {
      start_day: I18n.l(start, format: I18n.t('orders_plugin.lib.date_helper.a')).downcase,
      start_datetime: start.strftime(I18n.t('orders_plugin.lib.date_helper.m_d_hh_m')),
      start_time: start.strftime(I18n.t('orders_plugin.lib.date_helper.hh_m')),
      finish_day: I18n.l(finish, format: I18n.t('orders_plugin.lib.date_helper.a')).downcase,
      finish_datetime: finish.strftime(I18n.t('orders_plugin.lib.date_helper.m_d_hh_m')),
      finish_time: finish.strftime(I18n.t('orders_plugin.lib.date_helper.hh_m')),
    }
  end

  def datetime_period_short start, finish
    I18n.t('orders_plugin.lib.date_helper.start_finish') % {
      start: day_time_short(start),
      finish: day_time_short(finish)
    }
  end

  def datetime_full time
    time.strftime(I18n.t('orders_plugin.lib.date_helper.m_d_y_at_hh_m'))
  end

  def month_with_time time
    time.strftime(I18n.t('orders_plugin.lib.date_helper.m_y_hh_m'))
  end

end