postal.js/example/node/client/js/models/mention-count-model.js

36 lines
No EOL
785 B
JavaScript

define( [
'backbone',
'bus'
],
function ( Backbone, bus ) {
"use strict";
return Backbone.Model.extend( {
defaults : {
mentions : []
},
initialize : function () {
var self = this;
this.subscriptions = [
bus.stats.subscribe( "mention-count", function ( data, env ) {
if ( data.mentions && data.mentions.length ) {
self.set( "mentions", _.sortBy( data.mentions, function ( item ) {
return item.count * -1;
} ) );
}
} ),
bus.app.subscribe( "search.init", function () {
self.set( "mentions", [] );
} )
];
},
dispose : function () {
_.each( this.subscriptions, function ( subscription ) {
subscription.unsubscribe();
} );
this.clear( { silent : true } );
}
} );
} );