define([ 'app', 'AddSeries/RootFolders/RootFolderCollection', 'Quality/QualityProfileCollection', 'AddSeries/RootFolders/RootFolderView', 'AddSeries/New/AddNewSeriesView', 'AddSeries/Existing/ImportSeriesView' ], function (app, rootFolderCollection, qualityProfileCollection) { NzbDrone.AddSeries.AddSeriesLayout = Backbone.Marionette.Layout.extend({ template: 'AddSeries/addSeriesLayoutTemplate', regions: { addNew: '#add-new', importExisting: '#import-existing', rootFolders: '#root-folders' }, ui: { addNewTab: '.x-add-new-tab', importExistingTab: '.x-import-existing-tab', rootFoldersTab: '.x-root-folders-tab' }, events: { 'click .x-add-new-tab': 'showAddNew', 'click .x-import-existing-tab': 'showImport', 'click .x-root-folders-tab': 'showRootFolders' }, showAddNew: function (e) { if (e) { e.preventDefault(); } this.ui.addNewTab.tab('show'); NzbDrone.Router.navigate('series/add/new'); }, showImport: function (e) { if (e) { e.preventDefault(); } this.ui.importExistingTab.tab('show'); NzbDrone.Router.navigate('series/add/import'); }, showRootFolders: function (e) { if (e) { e.preventDefault(); } this.ui.rootFoldersTab.tab('show'); NzbDrone.Router.navigate('series/add/rootfolders'); }, initialize: function (context, action, query) { if (action) { this.action = action.toLowerCase(); } if (query) { this.query = query.toLowerCase(); } }, onRender: function () { rootFolderCollection.fetch(); qualityProfileCollection.fetch(); this.addNew.show(new NzbDrone.AddSeries.New.AddNewSeriesView()); this.importExisting.show(new NzbDrone.AddSeries.Existing.ImportSeriesView()); this.rootFolders.show(new NzbDrone.AddSeries.RootDirView()); this.listenTo(rootFolderCollection, 'add', this.evaluateActions, this); this.listenTo(rootFolderCollection, 'remove', this.evaluateActions, this); this.listenTo(rootFolderCollection, 'reset', this.evaluateActions, this); }, onShow: function () { switch (this.action) { case 'import': this.showImport(); break; case 'rootfolders': this.showRootFolders(); break; default: this.showAddNew(); } }, evaluateActions: function () { if (rootFolderCollection.length === 0) { this.ui.addNewTab.hide(); this.ui.importExistingTab.hide(); this.showRootFolders(); } else { this.ui.addNewTab.show(); this.ui.importExistingTab.show(); } } }); });