fix regression caused by updating backbone.js without updating changed parameters
(cherry picked from commit 09a840ea41)
This commit is contained in:
parent
405b9fd8b9
commit
d8dd727588
3 changed files with 39 additions and 9 deletions
|
|
@ -15,13 +15,18 @@ app.models.Stream = Backbone.Collection.extend({
|
||||||
return _.any(this.items.models) ? this.timeFilteredPath() : this.basePath()
|
return _.any(this.items.models) ? this.timeFilteredPath() : this.basePath()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_fetchOpts: function(opts) {
|
||||||
|
var defaultOpts = {
|
||||||
|
remove: false // tell backbone to keep existing items in the collection
|
||||||
|
};
|
||||||
|
return _.extend({}, defaultOpts, opts);
|
||||||
|
},
|
||||||
|
|
||||||
fetch: function() {
|
fetch: function() {
|
||||||
if( this.isFetching() ) return false;
|
if( this.isFetching() ) return false;
|
||||||
var url = this.url();
|
var url = this.url();
|
||||||
this.deferred = this.items.fetch({
|
this.deferred = this.items.fetch(this._fetchOpts({url : url}))
|
||||||
remove : false,
|
.done(_.bind(this.triggerFetchedEvents, this));
|
||||||
url : url
|
|
||||||
}).done(_.bind(this.triggerFetchedEvents, this))
|
|
||||||
},
|
},
|
||||||
|
|
||||||
isFetching : function() {
|
isFetching : function() {
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,7 @@ app.models.StreamAspects = app.models.Stream.extend({
|
||||||
if(this.isFetching()){ return false }
|
if(this.isFetching()){ return false }
|
||||||
var url = this.url();
|
var url = this.url();
|
||||||
var ids = this.aspects_ids;
|
var ids = this.aspects_ids;
|
||||||
this.deferred = this.items.fetch({
|
this.deferred = this.items.fetch(this._fetchOpts({url : url, data : { 'a_ids': ids }}))
|
||||||
add : true,
|
.done(_.bind(this.triggerFetchedEvents, this));
|
||||||
url : url,
|
|
||||||
data : { 'a_ids': ids }
|
|
||||||
}).done(_.bind(this.triggerFetchedEvents, this))
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
28
spec/javascripts/app/models/stream_aspects_spec.js
Normal file
28
spec/javascripts/app/models/stream_aspects_spec.js
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
describe("app.models.StreamAspects", function() {
|
||||||
|
describe("#fetch", function(){
|
||||||
|
var fetch,
|
||||||
|
stream;
|
||||||
|
|
||||||
|
beforeEach(function(){
|
||||||
|
fetch = new $.Deferred();
|
||||||
|
stream = new app.models.StreamAspects([], {aspects_ids: [1,2]});
|
||||||
|
spyOn(stream.items, "fetch").andCallFake(function(options){
|
||||||
|
stream.items.set([{name: 'a'}, {name: 'b'}, {name: 'c'}], options);
|
||||||
|
fetch.resolve();
|
||||||
|
return fetch;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("fetches some posts", function(){
|
||||||
|
stream.fetch();
|
||||||
|
expect(stream.items.length).toEqual(3);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("fetches more posts", function(){
|
||||||
|
stream.fetch();
|
||||||
|
expect(stream.items.length).toEqual(3);
|
||||||
|
stream.fetch();
|
||||||
|
expect(stream.items.length).toEqual(6);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in a new issue