jam-cloud/web/app/assets/javascripts/react-components/SessionTrackGain.js.jsx.coffee

49 lines
1.6 KiB
CoffeeScript

context = window
logger = context.JK.logger
@SessionTrackGain = React.createClass({
getInitialState: () ->
{
mixers: this.props.mixers,
behaviors: this.props.behaviors || {}
}
faderChanged: (e, data) ->
$target = $(this)
groupId = $target.data('groupId')
mixerIds = [this.state.mixers.mixer.id]
MixerActions.faderChanged(data, mixerIds, groupId)
render: () ->
`<div className="track-gain">
<div className="fader vertical" data-control="fader" data-fader-id={this.state.mixers.mixer.id} data-orientation="vertical">
<div className="handle" data-control="fader-handle">
<img src="/assets/content/slider_gain_vertical.png" width="28" height="11"/>
</div>
</div>
</div>`
componentDidMount: () ->
$root = jQuery(this.getDOMNode())
if !$root.is('.track-gain')
logger.error("unknown root node")
$fader = $root.attr('data-mixer-id', this.state.mixers.mixer.id).data('groupId', this.state.mixers.mixer.groupId).data('mixer', this.state.mixers.mixer).data('opposite-mixer', this.state.mixers.oppositeMixer)
if this.state.behaviors.mediaControlsDisabled
$fader.data('media-controls-disabled', true).data('media-track-opener', this.state.behaviors.mediaTrackOpener) # this we be applied later to the fader handle $element
$fader.data('showHelpAboutMediaMixers', this.state.behaviors.showHelpAboutMediaMixers)
context.JK.FaderHelpers.renderFader2($fader, {faderType: 'vertical'});
# Initialize gain position
MixerActions.initGain(this.state.mixers.mixer)
# watch for fader change events
$fader.on('fader_change', this.faderChanged);
})