"use strict"; define(['app', 'AddSeries/RootFolders/RootFolderCollection', 'Mixins/AutoComplete'], function (app, rootFolders) { NzbDrone.AddSeries.RootFolderItemView = Backbone.Marionette.ItemView.extend({ template: 'AddSeries/RootFolders/RootFolderItemTemplate', tagName : 'tr', events: { 'click .x-remove': 'removeFolder', 'click .x-folder': 'folderSelected' }, removeFolder: function () { this.model.destroy({ wait: true }); this.model.collection.remove(this.model); }, folderSelected: function () { this.trigger('folderSelected', this.model); } }); NzbDrone.AddSeries.RootDirListView = Backbone.Marionette.CollectionView.extend({ itemView: NzbDrone.AddSeries.RootFolderItemView, tagName : 'table', className: 'table table-hover' }); NzbDrone.AddSeries.RootFolders.Layout = Backbone.Marionette.Layout.extend({ template: 'AddSeries/RootFolders/LayoutTemplate', ui: { pathInput: '.x-path input' }, regions: { currentDirs: '#current-dirs' }, events: { 'click .x-add': 'addFolder' }, initialize: function () { this.collection = rootFolders; this.rootfolderListView = new NzbDrone.AddSeries.RootDirListView({ collection: rootFolders }); this.rootfolderListView.on('itemview:folderSelected', this._onFolderSelected, this); }, onRender: function () { this.currentDirs.show(this.rootfolderListView); this.ui.pathInput.autoComplete('/directories'); }, _onFolderSelected: function (options) { this.trigger('folderSelected', options); }, addFolder: function () { var newDir = new NzbDrone.AddSeries.RootFolders.RootFolderModel( { Path: this.ui.pathInput.val() }); rootFolders.create(newDir, { wait: true, success: function () { rootFolders.fetch(); } }); } }); });