Skip to content

Commit 87b167a

Browse files
committed
Merge pull request #101 from chieffancypants/findAll-completed-queries
DS.findAll wasn't added to completedQueries
2 parents 8bbfdfe + 04d7623 commit 87b167a

File tree

4 files changed

+24
-8
lines changed

4 files changed

+24
-8
lines changed

dist/angular-data.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* @author Jason Dobry <[email protected]>
33
* @file angular-data.js
4-
* @version 0.10.1 - Homepage <http://angular-data.pseudobry.com/>
4+
* @version 0.10.2 - Homepage <http://angular-data.pseudobry.com/>
55
* @copyright (c) 2014 Jason Dobry <https://github.com/jmdobry/>
66
* @license MIT <https://github.com/jmdobry/angular-data/blob/master/LICENSE>
77
*
@@ -2328,13 +2328,20 @@ module.exports = find;
23282328
var errorPrefix = 'DS.findAll(resourceName, params[, options]): ';
23292329

23302330
function processResults(utils, data, resourceName, queryHash) {
2331-
var resource = this.store[resourceName];
2331+
var resource = this.store[resourceName],
2332+
idAttribute = this.definitions[resourceName].idAttribute,
2333+
date = new Date().getTime();
23322334

23332335
data = data || [];
23342336

23352337
// Query is no longer pending
23362338
delete resource.pendingQueries[queryHash];
2337-
resource.completedQueries[queryHash] = new Date().getTime();
2339+
resource.completedQueries[queryHash] = date;
2340+
2341+
// Make sure each object is added to completedQueries
2342+
angular.forEach(data, function (obj, idx) {
2343+
resource.completedQueries[obj[idAttribute]] = date;
2344+
});
23382345

23392346
// Update modified timestamp of collection
23402347
resource.collectionModified = utils.updateTimestamp(resource.collectionModified);

dist/angular-data.min.js

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datastore/async_methods/findAll.js

+9-2
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,20 @@
11
var errorPrefix = 'DS.findAll(resourceName, params[, options]): ';
22

33
function processResults(utils, data, resourceName, queryHash) {
4-
var resource = this.store[resourceName];
4+
var resource = this.store[resourceName],
5+
idAttribute = this.definitions[resourceName].idAttribute,
6+
date = new Date().getTime();
57

68
data = data || [];
79

810
// Query is no longer pending
911
delete resource.pendingQueries[queryHash];
10-
resource.completedQueries[queryHash] = new Date().getTime();
12+
resource.completedQueries[queryHash] = date;
13+
14+
// Make sure each object is added to completedQueries
15+
angular.forEach(data, function (obj, idx) {
16+
resource.completedQueries[obj[idAttribute]] = date;
17+
});
1118

1219
// Update modified timestamp of collection
1320
resource.collectionModified = utils.updateTimestamp(resource.collectionModified);

test/integration/datastore/async_methods/findAll.test.js

+2
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,8 @@ describe('DS.findAll(resourceName, params[, options]): ', function () {
5858
assert.deepEqual(DS.filter('post', {}), [p1, p2, p3, p4], 'The posts are now in the store');
5959
assert.isNumber(DS.lastModified('post', 5));
6060
assert.isNumber(DS.lastSaved('post', 5));
61+
DS.find('post', p1.id); // should not trigger another XHR
62+
6163

6264
// Should not make a request because the request was already completed
6365
DS.findAll('post', {}).then(function (data) {

0 commit comments

Comments
 (0)