Code coverage report for code/views/image-metadata-view.coffee

Statements: 0% (0 / 53)      Branches: 0% (0 / 6)      Functions: 0% (0 / 5)      Lines: 0% (0 / 38)      Ignored: none     

All files » code/views/ » image-metadata-view.coffee
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                                                                                                                                               
xlat       = require '../utils/translate'
licenses   = require '../data/licenses'
ImageDialogStore = require '../stores/image-dialog-store'
 
{div, table, tr, td, a, input, select, radio, p} = React.DOM
 
module.exports = React.createClass
 
  displayName: 'ImageMetadata'
 
 
  getInitialState: ->
    hostname: null
 
  hostname: ->
    # instead of using a regexp to extract the hostname use the dom
    link = document.createElement 'a'
    link.setAttribute 'href', @props.metadata?.link
    link.hostname
 
  changed: ->
    newMetaData =
      title: @refs.title.getDOMNode().value
      link: @refs.link.getDOMNode().value
      license: @refs.license.getDOMNode().value
      source: 'external'
 
    @props.update {metadata: newMetaData}
 
  render: ->
    (div {className: 'image-metadata'},
      if @props.metadata
        @renderMetadata()
    )
 
  renderMetadata: ->
    licenseName = @props.metadata.license or 'public domain'
    licenseData = licenses.getLicense licenseName
    title   = @props.metadata.title
    link    = @props.metadata.link
 
    if @props.metadata.source is 'external'
      (div {key: 'external'},
        (table {},
          (tr {}, (td {}, xlat '~METADATA.TITLE'),
            (td {},
              (input {ref: 'title', value: title, onChange: @changed})))
 
          (tr {}, (td {}, xlat '~METADATA.LINK'),
            (td {},
              (input {ref: 'link', value: link, onChange: @changed})))
          (tr {}, (td {}, xlat '~METADATA.CREDIT'),
            (td {},
              (select {ref: 'license', value: licenseName, onChange: @changed},
                licenses.getRenderOptions licenseName
          )))
        )
        (p {className: 'learn-more'}, (a {href: licenseData.link, target: '_blank'}, "Learn more about #{licenseData.fullLabel}"))
      )
    else
      (div {key: 'internal'},
        (p {})
        (div {}, "\"#{title}\"")
        if link
          (div {key: 'hostname'}, (a {href: link, target: '_blank'}, "See it on #{@hostname()}"))
        (p {})
        (div {}, 'License')
        (div {key: 'license'},
          (a {href: licenseData.link, target: '_blank'}, licenseData.label)
        )
      )