jam-cloud/web/app/assets/javascripts/react-components/stores/JamTrackMixdownStore.js.coffee

90 lines
2.3 KiB
CoffeeScript

$ = jQuery
context = window
logger = context.JK.logger
rest = context.JK.Rest()
EVENTS = context.JK.EVENTS
JamTrackActions = @JamTrackActions
@JamTrackMixdownStore = Reflux.createStore(
{
listenables: JamTrackMixdownActions
# the jamtrack that contains the mixdowns in question
jamTrack: null
# what mixdowns are being built right now
building: []
# a currently open (loaded) mixdown
current: null
init: () ->
this.listenTo(context.AppStore, this.onAppInit);
this.listenTo(context.JamTrackStore, this.onJamTrackChanged);
@changed()
onAppInit: (@app) ->
getState: () ->
@state
changed: () ->
@state = {jamTrack: @jamTrack, building:@building, current: @current}
this.trigger(@state)
onJamTrackChanged: (@jamTrack) ->
# TODO: close out building? current?
onCreate: (mixdown, package_settings, done, fail) ->
logger.debug("creating mixdown", mixdown, package_settings)
rest.createMixdown(mixdown)
.done((created) =>
logger.debug("created mixdown", created)
package_settings.id = created.id
# we have to determine sample rate here, in the store, because child windows don't have access to jamClient
sampleRate = context.jamClient.GetSampleRate()
sampleRate = if sampleRate == 48 then 48 else 44
package_settings.sample_rate = sampleRate
rest.enqueueMixdown(package_settings)
.done((enqueued) =>
logger.debug("enqueued mixdown package", package_settings)
done(enqueued)
)
.fail((jqxhr) =>
@app.layout.notify({title:'Unable to Package Mixdown', text: 'You can push the RETRY button.'})
fail(jqxhr)
)
)
.fail((jqxhr) =>
fail(jqxhr)
)
onEdit: (mixdown) ->
logger.debug("editing mixdown", mixdown)
onDelete: (mixdown) ->
logger.debug("deleting mixdown", mixdown)
onOpen: (mixdown) ->
logger.debug("opening mixdown", mixdown)
onClose: (mixdown) ->
logger.debug("closing mixdown", mixdown)
onEnqueue: (mixdown) ->
logger.debug("enqueuing mixdown", mixdown)
onDownload: (mixdown) ->
logger.debug("download mixdown", mixdown)
onRefresh: (mixdown) ->
logger.debug("refresh mixdown", mixdown)
}
)