Code coverage report for code/views/node-value-inspector-view.coffee

Statements: 0% (0 / 41)      Branches: 0% (0 / 2)      Functions: 0% (0 / 6)      Lines: 0% (0 / 34)      Ignored: none     

All files » code/views/ » node-value-inspector-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 73                                                                                                                                                 
{div, h2, label, span, input, p, i} = React.DOM
 
tr = require "../utils/translate"
 
module.exports = React.createClass
 
  displayName: 'NodeValueInspectorView'
 
  propTypes:
    max: React.PropTypes.number
    min: React.PropTypes.number
    onChange: React.PropTypes.func
 
  getDefaultProps: ->
    max: 100
    min: 0
 
  trim: (inputValue) ->
    return Math.max(@props.min, Math.min(@props.max, inputValue))
 
  updateValue:  (evt) ->
    if value = evt.target.value
      value = @trim(parseInt(value))
      @props.graphStore.changeNode(initialValue:value)
 
  updateChecked:  (evt) ->
    value = evt.target.checked
    @props.graphStore.changeNode(isAccumulator:value)
 
  selectText: (evt) ->
    evt.target.select()
 
  render: ->
    node = @props.node
    (div {className: 'value-inspector'},
      (div {className: 'inspector-content group'},
        (span {className: 'full'},
          (label {className: 'right'}, tr "~NODE-VALUE-EDIT.INITIAL-VALUE")
          (input {
            className: 'left'
            type: "number",
            min: "#{@props.min}",
            max: "#{@props.max}",
            value: "#{node.initialValue}",
            onClick: @selectText,
            onChange: @updateValue}
          )
        )
        (div {className: "slider group full"},
          (input {
            className: "full"
            type: "range",
            min: "#{@props.min}",
            max: "#{@props.max}",
            value: "#{node.initialValue}",
            onChange: @updateValue}
          )
          (label {className: "left half small"}, @props.min)
          (label {className: "right half small"}, @props.max)
        )
        (span {className: "checkbox group full"},
          (span {},
            (input {type: "checkbox", checked: node.isAccumulator, onChange: @updateChecked})
            (label {}, tr "~NODE-VALUE-EDIT.IS_ACCUMULATOR")
          )
          (i {className: "fa fa-question-circle"})
        )
      )
      (div {className: "bottom-pane"},
        (p {}, tr "~NODE-VALUE-EDIT.DEFINING_WITH_WORDS")
      )
    )