context = window
ConfigureTracksStore = @ConfigureTracksStore
@ConfigureOutputsDialog = React.createClass({
mixins: [Reflux.listenTo(@ConfigureTracksStore, "onConfigureTracksChanged"), Reflux.listenTo(@AppStore, "onAppInit")]
onConfigureTracksChanged: (configureTracks) ->
@setState({configureTracks: configureTracks})
onAppInit: (@app) ->
getInitialState: () ->
{configureTracks: null}
render: () ->
outputs = []
outputs.push(``)
if @state.configureTracks?
for output in @state.configureTracks.musicPorts.outputs
outputs.push(``)
`
session audio outputs
Select two audio output ports that will be used to deliver the stereo audio of your sessions to your headphones or monitor.
`
componentDidUpdate: () ->
$root = $(@getDOMNode())
$output1 = $root.find('.output-1')
$output2 = $root.find('.output-2')
if @state.configureTracks? && @state.configureTracks.trackAssignments.outputs.assigned.length == 2
output1 = @state.configureTracks.trackAssignments.outputs.assigned[0].id
output2 = @state.configureTracks.trackAssignments.outputs.assigned[1].id
$output1.val(output1)
$output2.val(output2)
onClose: (e) ->
e.preventDefault()
$root = $(@getDOMNode())
$output1 = $root.find('.output-1')
$output2 = $root.find('.output-2')
output1 = $output1.val()
output2 = $output2.val()
if output1 == null || output1 == ''
context.JK.Banner.showAlert("Both output ports must have a selection.")
return
if output2 == null || output2 == ''
context.JK.Banner.showAlert("Both output ports must have a selection.")
return
if output1? && output1 != '' && output1 == output2
context.JK.Banner.showAlert("Both output ports can not be the same.")
return
ConfigureTracksActions.updateOutputs(output1, output2)
@app.layout.closeDialog('configure-outputs-dialog', false)
onCancel: (e) ->
@app.layout.closeDialog('configure-outputs-dialog', true)
}
)