'use strict'; define( [ 'marionette', 'Series/SeriesCollection', 'Series/SeasonCollection', 'SeasonPass/SeriesCollectionView', 'Shared/LoadingView', 'Shared/Toolbar/ToolbarLayout', 'Mixins/backbone.signalr.mixin' ], function (Marionette, SeriesCollection, SeasonCollection, SeriesCollectionView, LoadingView, ToolbarLayout) { return Marionette.Layout.extend({ template: 'SeasonPass/SeasonPassLayoutTemplate', regions: { toolbar : '#x-toolbar', series : '#x-series' }, initialize: function () { this.seriesCollection = SeriesCollection.clone(); this.seriesCollection.shadowCollection.bindSignalR(); this.listenTo(this.seriesCollection, 'sync', this.render); this.filteringOptions = { type : 'radio', storeState : true, menuKey : 'seasonpass.filterMode', defaultAction: 'all', items : [ { key : 'all', title : '', tooltip : 'All', icon : 'icon-circle-blank', callback: this._setFilter }, { key : 'monitored', title : '', tooltip : 'Monitored Only', icon : 'icon-nd-monitored', callback: this._setFilter }, { key : 'continuing', title : '', tooltip : 'Continuing Only', icon : 'icon-play', callback: this._setFilter }, { key : 'ended', title : '', tooltip : 'Ended Only', icon : 'icon-stop', callback: this._setFilter } ] }; }, onRender: function () { this.series.show(new SeriesCollectionView({ collection: this.seriesCollection })); this._showToolbar(); }, _showToolbar: function () { this.toolbar.show(new ToolbarLayout({ right : [ this.filteringOptions ], context: this })); }, _setFilter: function(buttonContext) { var mode = buttonContext.model.get('key'); this.seriesCollection.setFilterMode(mode); } }); });