Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (($)->
- window.Album = class Album extends Backbone.Model
- isFirstTrack : (index) ->
- index == 0
- isLastTrack : (index) ->
- index == (@get 'tracks').length - 1
- trackUrlAtIndex : (index) ->
- return (@get 'tracks')[index].url if index >=0 && index < (@get 'tracks').length
- window.Albums = class Albums extends Backbone.Collection
- model: Album
- url: '/albums'
- window.library = new Albums()
- window.AlbumView = class AlbumView extends Backbone.View
- tagName: 'li'
- className: 'album'
- initialize : ->
- _.bindAll this, 'render'
- @model.bind 'change', @render
- @template = _.template $("#album-template").html()
- render : ->
- renderedContent = @template @model.toJSON()
- $(@el).html renderedContent
- this
- window.LibraryAlbumView = class LibraryAlbumView extends AlbumView
- window.LibraryView = class LibraryView extends Backbone.View
- tagName: 'section'
- className: 'library'
- initialize : ->
- _.bindAll this, 'render'
- @template = _.template $("#library-template").html()
- @collection.bind 'reset', @render
- render : ->
- ($ @el).html @template({})
- $albums = @$ '.albums'
- collection = @collection
- collection.each( (album) ->
- view = new LibraryAlbumView
- model: album
- collection: collection
- $albums.append view.render().el
- )
- this
- window.BackboneTunes = class BackboneTunes extends Backbone.Router
- routes:
- '' : 'home'
- initialize : ->
- @libraryView = new LibraryView
- collection: window.library
- home : ->
- $container = $ "#container"
- $container.empty()
- $container.append @libraryView.render().el
- $ ->
- window.App = new BackboneTunes()
- Backbone.history.start()
- )(jQuery)
Add Comment
Please, Sign In to add comment