'use strict'; define(['app', 'Missing/MissingItemView'], function () { NzbDrone.Missing.MissingCollectionView = Backbone.Marionette.CompositeView.extend({ itemView : NzbDrone.Missing.MissingItemView, itemViewContainer: 'tbody', template : 'Missing/MissingCollectionTemplate', ui: { table: '.x-missing-table', pager: '.x-missing-table-pager' }, initialize : function (context, action, query, collection) { this.collection = collection; }, onCompositeCollectionRendered: function () { this.ui.table.trigger('update'); if (!this.tableSorter && this.collection.length > 0) { this.tableSorter = this.ui.table.tablesorter({ textExtraction: function (node) { return node.innerHTML; }, sortList : [ [3, 1] ], headers : { 0: { sorter: 'innerHtml' }, 1: { sorter: false }, 2: { sorter: false }, 3: { sorter: 'date' }, 4: { sorter: false } } }); this.ui.table.bind('pagerComplete pagerInitialized', function (event, c) { c.container.find('.page-number').text(c.page + 1); }); this.ui.table.tablesorterPager({ container: this.ui.pager, output : 'Displaying {startRow} to {endRow} of {totalRows} episodes' }); this.applySortIcons(); this.ui.table.bind("sortEnd", function () { this.applySortIcons(); }); } else { this.ui.table.trigger('update'); } }, //Todo: Remove this from each view that requires it applySortIcons : function () { $(this.ui.table).find('th.tablesorter-header .tablesorter-header-inner i').each(function () { $(this).remove(); }); $(this.ui.table).find('th.tablesorter-header').each(function () { if ($(this).hasClass('tablesorter-headerDesc')) { $(this).children('.tablesorter-header-inner').append(''); } else if ($(this).hasClass('tablesorter-headerAsc')) { $(this).children('.tablesorter-header-inner').append(''); } else if (!$(this).hasClass('sorter-false')) { $(this).children('.tablesorter-header-inner').append(''); } }); }, updatePageNumber : function (event, stuff) { } }); });