Sha256: 0c502ab26c5965db0ac759102311e92484b6cc4b0d7c2ae41e7a0f97603b14ef

Contents?: true

Size: 1.65 KB

Versions: 2

Compression:

Stored size: 1.65 KB

Contents

{ div, a, i } = React.DOM

class @Photos extends React.Component
  constructor: (props) ->
    super props
    @state =
      url: props.url
      err: 'Indlæser billeder...'
      entity: props.entity

  @propTypes =
    url: React.PropTypes.string
    id: React.PropTypes.string
    classes: React.PropTypes.string
    entity: React.PropTypes.string

  @defaultProps: ->
    records: []
    url: ''
    id: 'oldphotos'
    classes: 'drop_zone old_files_hangar'
    entity: 'stock_item'

  componentDidMount: ->
    @loadPhotosFromServer()
    # setInterval(@loadPhotosFromServer, @props.pollInterval); # use polling, can be other eg. WebSockets

  addRecord: (record) ->
    records = React.addons.update(@state.records, { $push: [record] })
    @setState records: records

  deleteRecord: (record) =>
    index = @state.records.indexOf record
    records = React.addons.update(@state.records, { $splice: [[index, 1]] })
    @setState records: records

  render: ->
    try
      cards = []
      for record in @state.records
        cards.push React.createElement PhotoCard, { key: record.id, photo_id: record.id, record: record, deleteRecord: @deleteRecord, entity: @props.entity }

      div
        className: @props.classes
        id: @props.id
        div
          cards

    catch
      div
        className: ''
        @state.err

  loadPhotosFromServer: ->
    $.ajax
      url: @state.url,
      dataType: 'json',
      cache: false,
      success: (data) =>
        @setState {records: data}
      error: (xhr, status, err) =>
        @setState { err: err.toString() }

  #  $.ajax {
  #    url: @props.url,
  #    dataType: 'json',
  #    type: 'POST',
  #    data: comment,

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
oxen_media-0.4.14 app/assets/javascripts/components/photos.js.jsx.coffee
oxen_media-0.4.13 app/assets/javascripts/components/photos.js.jsx.coffee