Skip to content

Instantly share code, notes, and snippets.

$ ->
App.albums = new App.Collections.Albums
App.albumsListView = new App.Views.AlbumsListView(collection: App.albums)
App.albums.fetch
success: ->
App.albumsListView.setPlaceholder()
App.Views.AlbumsListView = Backbone.View.extend
initialize: ->
@listenTo @collection, 'sync', @render
@on 'handlePlaceholder', @setPlaceholder, @
@setPlaceholder()
setPlaceholder: ->
if @$el.children('li').length is 0
$('.featured-albums').append('<p>No featured albums</p>')
App.Views.AlbumsListView = Backbone.View.extend
el: '#featured'
initialize: ->
@listenTo @collection, 'sync', @render
@on 'handlePlaceholder', @setPlaceholder, @
@setPlaceholder()
App.Views.AlbumsListView = Backbone.View.extend
el: '#featured'
initialize: ->
@listenTo @collection, 'sync', @render
@on 'handlePlaceholder', @setPlaceholder, @
render: ->
for model in @collection.featured()
itemView = new App.Views.AlbumItemView(model: model, listView: this)
@$el.append itemView.render().el
setPlaceholder: ->
App.Views.AlbumsListView = Backbone.View.extend
el: '#featured'
initialize: ->
@listenTo @collection, 'sync', @render
@on 'handlePlaceholder', @setPlaceholder, @
App.Views.AlbumsListView = Backbone.View.extend
render: ->
for model in @collection.featured()
itemView = new App.Views.AlbumItemView(model: model, listView: this)
@$el.append itemView.render().el
unfeature: ->
@model.save(featured: false)
@remove()
@listView.trigger 'handlePlaceholder'
App.Views.AlbumsListView = Backbone.View.extend
initialize: ->
@listenTo @collection, 'sync', @render
App.Views.AlbumItemView = Backbone.View.extend
setPlaceholder: ->
if $('#featured').children('li').length is 0 then $('.featured-albums').append('<p>No featured albums</p>')
events:
'click .unfeature': 'unfeature'
unfeature: ->
@model.save(featured: false)
@remove()
@setPlaceholder()
App.Views.AlbumsListView = Backbone.View.extend
unfeature: ->
@model.save(featured: false)
@remove()
if $('#featured').children('li').length is 0 then $('.featured-albums').append('<p>No featured albums</p>')