Sha256: 0009e12d308571b6f7d07f8b2f7cf74cdb502213a8c7e0d62ab8f2188febdeb7

Contents?: true

Size: 1.58 KB

Versions: 3

Compression:

Stored size: 1.58 KB

Contents

class Tao.Form.DatetimePicker extends TaoComponent

  @tag 'tao-datetime-picker'

  @attribute 'valueFormat', default: 'YYYY-MM-DDTHH:mm:ss'

  @attribute 'dateValueFormat', default: 'YYYY-MM-DD'

  @attribute 'dateDisplayFormat', default: 'YYYY-MM-DD'

  @attribute 'timeValueFormat', default: 'HH:mm'

  @attribute 'timeDisplayFormat', default: 'HH:mm'

  _connected: ->
    @field = @jq.find '> input'
    datePickerDeferred = $.Deferred()
    timePickerDeferred = $.Deferred()

    @datePicker = @findComponent 'tao-date-picker', =>
      datePickerDeferred.resolve()

    @timePicker = @findComponent 'tao-time-picker', =>
      timePickerDeferred.resolve()

    $.when datePickerDeferred, timePickerDeferred
      .done => @_initMoment()

    @_bind()

  _bind: ->
    @on 'change', '.moment-picker', (e, m) =>
      @_syncMoment()

  _initMoment: ->
    m = moment @field.val(), @valueFormat

    if m && m.isValid()
      @datePicker.setMoment m.format(@dateValueFormat)
      @timePicker.setMoment m.format(@timeValueFormat)
      @moment = m
    else
      @moment = null

  _syncMoment: ->
    if @datePicker.moment
      dateValue = @datePicker.moment.format(@dateValueFormat)
      timeValue = if @timePicker.moment
        @timePicker.moment.format(@timeValueFormat)
      else
        moment().startOf('day').format(@timeValueFormat)

      value = _.trim "#{dateValue} #{timeValue}"
      m = moment value, "#{@dateValueFormat} #{@timeValueFormat}"
      @field.val m.format(@valueFormat)
      @moment = m
    else
      @field.val ''
      @moment = null

TaoComponent.register Tao.Form.DatetimePicker

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tao_form-0.1.2 lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee
tao_form-0.1.1 lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee
tao_form-0.1.0 lib/assets/javascripts/tao/form/shared/fields/datetime_picker.coffee