mergeQueue: function (userTriggered) { if (userTriggered === true || this.allowAutoMerge()) { this.lastMerge = Date.now(); this.set('merged', true); var resultsIncludingDuplicates = this.get('results').fullCollection.map(function (m) { return m.pick('id', 'src'); }) .concat(this.get('queuedResults').fullCollection.map(function (m) { return m.pick('id', 'src'); })); var metacardIdToSourcesIndex = this.createIndexOfMetacardToSources(resultsIncludingDuplicates); var interimCollection = new QueryResultCollection(this.get('results').fullCollection.models); interimCollection.add(this.get('queuedResults').fullCollection.models, { merge: true }); interimCollection.fullCollection.comparator = this.get('results').fullCollection.comparator; interimCollection.fullCollection.sort(); var maxResults = user.get('user').get('preferences').get('resultCount'); this.get('results').fullCollection.reset(interimCollection.fullCollection.slice(0, maxResults)); this.updateResultCountsBySource( this.createIndexOfSourceToResultCount(metacardIdToSourcesIndex, this.get('results').fullCollection) ); this.get('queuedResults').fullCollection.reset(); this.updateStatus(); } },
onBeforeShow: function() { var resultCollection = new QueryResultCollection() resultCollection.add(this.model) resultCollection.add(this.model.duplicates) this.groupResults.show( new this.resultItemCollectionView({ collection: resultCollection, selectionInterface: this.selectionInterface, group: true, }) ) },