Sha256: bf97dd87c31ee9252fc33e2f40b9540469f19ba1da4463b57d19fcb3c117eda8

Contents?: true

Size: 1.39 KB

Versions: 46

Compression:

Stored size: 1.39 KB

Contents

Rev.registerComponent 'ModelProgressIndicator',
  statics:
    Status:
      STARTED: 0
      REQUESTED: 1
      SYNCED: 2
      ERRORED: 3

  getInitialState: ->
    state =
      status: @constructor.Status.STARTED

  render: ->
    <span className={ @progressClasses() }>
      { @childForCurrentStatus() }
    </span>

  childForCurrentStatus: ->
    for statusName in ['started', 'requested', 'synced', 'errored']
      if retval = @childForStatus(statusName)
        return retval

  childForStatus: (statusName)->
    if @props[statusName]? && @state.status == @constructor.Status[statusName.toUpperCase()]
      @props[statusName]

  componentDidMount: ->
    @props.model.on 'request', @onRequest
    @props.model.on 'sync', @onSync
    @props.model.on 'error', @onError

  componentWillUnmount: ->
    @props.model.off 'request', @onRequest
    @props.model.off 'sync', @onSync
    @props.model.off 'error', @onError

  onRequest: ->
    @setState status: @constructor.Status.REQUESTED

  onSync: ->
    @setState status: @constructor.Status.SYNCED

  onError: ->
    @setState status: @constructor.Status.ERRORED

  progressClasses: ->
    @suitSet 'ModelProgressIndicator',
      started: @state.status == @constructor.Status.STARTED
      requested: @state.status == @constructor.Status.REQUESTED
      synced: @state.status == @constructor.Status.SYNCED
      errored: @state.status == @constructor.Status.ERRORED

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
revelry_core-0.1.12.6 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.12.5 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.12.4 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.12.3 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.12.2 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.12.0 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.11.6 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.11.5 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.11.2 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.11.1 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.11.0 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.7 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.6 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.5 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.4 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.3 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.2 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.1 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.10.0 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx
revelry_core-0.1.9.2 app/assets/javascripts/revelry/ui/forms/ModelForm/ModelProgressIndicator.js.cjsx