'use strict'; define( [ 'Activity/History/HistoryModel', 'backbone.pageable', 'Mixins/AsFilteredCollection', 'Mixins/AsSortedCollection', 'Mixins/AsPersistedStateCollection' ], function (HistoryModel, PageableCollection, AsFilteredCollection, AsSortedCollection, AsPersistedStateCollection) { var Collection = PageableCollection.extend({ url : window.NzbDrone.ApiRoot + '/history', model: HistoryModel, state: { pageSize: 15, sortKey : 'date', order : 1 }, queryParams: { totalPages : null, totalRecords: null, pageSize : 'pageSize', sortKey : 'sortKey', order : 'sortDir', directions : { '-1': 'asc', '1' : 'desc' } }, filterModes: { 'all' : [null, null], 'grabbed' : ['eventType', '1'], 'imported' : ['eventType', '3'], 'failed' : ['eventType', '4'], 'deleted' : ['eventType', '5'] }, sortMappings: { 'series' : { sortKey: 'series.sortTitle' } }, initialize: function (options) { delete this.queryParams.episodeId; if (options) { if (options.episodeId) { this.queryParams.episodeId = options.episodeId; } } }, parseState: function (resp) { return { totalRecords: resp.totalRecords }; }, parseRecords: function (resp) { if (resp) { return resp.records; } return resp; } }); Collection = AsFilteredCollection.call(Collection); Collection = AsSortedCollection.call(Collection); return AsPersistedStateCollection.call(Collection); });