var Marionette = require('marionette'); var AddSeriesView = require('../AddSeriesView'); var UnmappedFolderCollection = require('./UnmappedFolderCollection'); module.exports = Marionette.CompositeView.extend({ itemView : AddSeriesView, itemViewContainer : '.x-loading-folders', template : 'AddSeries/Existing/AddExistingSeriesCollectionViewTemplate', ui : {loadingFolders : '.x-loading-folders'}, initialize : function(){ this.collection = new UnmappedFolderCollection(); this.collection.importItems(this.model); }, showCollection : function(){ this._showAndSearch(0); }, appendHtml : function(collectionView, itemView, index){ collectionView.ui.loadingFolders.before(itemView.el); }, _showAndSearch : function(index){ var self = this; var model = this.collection.at(index); if(model) { var currentIndex = index; var folderName = model.get('folder').name; this.addItemView(model, this.getItemView(), index); this.children.findByModel(model).search({term : folderName}).always(function(){ if(!self.isClosed) { self._showAndSearch(currentIndex + 1); } }); } else { this.ui.loadingFolders.hide(); } }, itemViewOptions : {isExisting : true} });