Files
dss/static/js/app/views/header.coffee
2013-06-19 19:24:50 +01:00

60 lines
2.0 KiB
CoffeeScript
Executable File

###
@license
----------------------------------------------
Copyright (c) 2012, Fergal Moran. All rights reserved.
Code provided under the BSD License:
###
define ["underscore", "backbone", "vent", "utils", "text!/tpl/HeaderView"],
(_, Backbone, vent, utils, Template) ->
class HeaderView extends Backbone.View
template: _.template(Template)
events:
"click #header-play-pause-button": "togglePlayState"
"click #header-login-button": "login"
"click #header-live-button": "playLive"
initialize: ->
@render()
@listenTo vent, "mix:play", @trackPlaying
@listenTo vent, "mix:pause", @trackPaused
login: ->
utils.modal "dlg/LoginView"
logout: ->
utils.showAlert "Success", "You are now logged out"
trackChanged: (data) ->
$(@el).find("#track-description").text data.title
$(@el).find("#track-description").attr "href", "#" + data.item_url
trackPlaying: (data) ->
$(@el).find("#header-play-button-icon").removeClass "icon-play"
$(@el).find("#header-play-button-icon").addClass "icon-pause"
trackPaused: (data) ->
$(@el).find("#header-play-button-icon").removeClass "icon-pause"
$(@el).find("#header-play-button-icon").addClass "icon-play"
render: ->
$(@el).html @template()
this
playLive: ->
vent.trigger('live:play')
togglePlayState: ->
button = $(@el).find("#header-play-pause-button")
mode = button.data("mode")
if mode is "play"
dssSoundHandler.resumeSound()
_eventAggregator.trigger "track_playing"
button.data "mode", "pause"
else
dssSoundHandler.pauseSound()
_eventAggregator.trigger "track_paused"
button.data "mode", "play"
HeaderView