unepwcmc/SAPI

View on GitHub
app/assets/javascripts/trade/views/annual_report_upload/validation_errors_view.js.coffee

Summary

Maintainability
Test Coverage
Trade.ValidationErrorsView = Ember.View.extend
  templateName: 'trade/annual_report_upload/validation_errors'
  classNames: ['accordion-group']

  didInsertElement: ->
    @set('defaultCollapsed', @get('collapsed'))
    if @get('controller.allErrorsCollapsed')
      @set('collapsed', true)
    $(@get('collapsibleElement')).on('hidden', =>
      @set('collapsed', true)
    )
    $(@get('collapsibleElement')).on('shown', =>
      @set('collapsed', false)
    )
    # Hide spinner when finished loading model
    $('#' + @get('collapsibleId')).ajaxStop( =>
      $('.validation-errors-loading').hide()
    )

  allErrorsCollapsedDidChange: ( ->
    # reset default collapse setting
    if @get('controller.allErrorsCollapsed') == null
      @set('collapsed', @get('defaultCollapsed'))
    else
      @set('collapsed', true)
  ).observes('controller.allErrorsCollapsed')

  toggleHint: ( ->
    if @get('collapsed')
      '>>'
    else
      '<<'
  ).property('collapsed')

  collapsibleId: ( ->
    @get('errorType') + '-validation-errors'
  ).property('errorType')

  collapsibleElement: ( ->
    '#' + @get('collapsibleId')
  ).property('collapsibleId')

  noErrorsMessage: ( ->
    if @get('errorType') == 'ignored'
      'No ignored errors'
    else
      'No errors detected'
  ).property('errorType')

  actions:

    openError: (validationError) ->
      @set('collapsed', true)
      @get('controller').send('transitionToSandboxShipments', validationError)