#= require vendor/jquery-1.10.2 #= require vendor/handlebars-v1.3.0 #= require vendor/moment.min #= require vendor/underscore #= require vendor/backbone #= require bootstrap #= require helpers #= require models $(-> class TasksetsView extends Backbone.View initialize: (options) -> @subviews = [] @listenTo(@collection, "add", @appendItem) @listenTo(@collection, "reset", @resetItems) if @collection.hasPages @$('.previous').click(=> if @collection.hasPrevious() @$('.tasksets').empty() @subviews = [] @collection.fetchPreviousPage(success: -> @render) @updatePager() ) @$('.next').click(=> @$('.tasksets').empty() @subviews = [] @collection.fetchNextPage(success: -> @render) @updatePager() ) @resetItems(@collection) appendItem: (model) -> view = new TasksetView({model: model}) @subviews.push(view) view.render() @$('.tasksets').append(view.$el) resetItems: (collection) -> @collection = collection @$('.tasksets').empty() @subviews = [] for model in collection.models @appendItem(model) render: -> for view in @subviews view.render() @updatePager() updatePager: -> if @collection.hasPages @$('.pagenum').text("Page #{@collection.currentPage}") if @collection.hasPrevious() @$('.previous').removeClass('disabled') else @$('.previous').addClass('disabled') class TasksetView extends Backbone.View tagName: 'li' className: 'list-group-item' template: Handlebars.compile($('#taskset-template').html()) render: -> @$el.html(@template(@model.attributes)) actives = new ActiveTasksets() actives.fetch() activesView = new TasksetsView({collection: actives, el: '.active-tasksets'}) activesView.render() recents = new RecentTasksets() recents.fetch() recentsView = new TasksetsView({collection: recents, el: '.recent-tasksets'}) recentsView.render() )