Skip to content

Commit 8441406

Browse files
committed
Closes #79.
1 parent a881e2b commit 8441406

File tree

6 files changed

+27
-9
lines changed

6 files changed

+27
-9
lines changed

CHANGELOG.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1-
##### 0.10.0 - 24 June 2014
1+
##### 0.10.0 - 25 June 2014
22

33
###### Breaking API changes
44
- #76 - Queries and filtering. See [TRANSITION.md](https://github.com/jmdobry/angular-data/blob/master/TRANSITION.md).
55

66
###### Backwards compatible API changes
77
- #17 - Where predicates should be able to handle OR, not just AND
88
- #78 - Added optional callback to `bindOne` and `bindAll`
9+
- #79 - `ejectAll` should clear matching completed queries
910

1011
##### 0.9.1 - 30 May 2014
1112

TRANSITION.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
### 0.9.x. ---> 0.10.0 - 24 June 2014
1+
### 0.9.x. ---> 0.10.0 - 25 June 2014
22

33
#### Breaking API changes
44
##### #76 - Queries and filtering.

dist/angular-data.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -4154,10 +4154,17 @@ function ejectAll(resourceName, params) {
41544154
throw new this.errors.IllegalArgumentError(errorPrefix + 'params: Must be an object!', { params: { actual: typeof params, expected: 'object' } });
41554155
}
41564156

4157-
var resource = this.store[resourceName];
4158-
var _this = this;
4159-
41604157
try {
4158+
var _this = this;
4159+
var resource = this.store[resourceName];
4160+
var queryHash = this.utils.toJson(params);
4161+
4162+
delete resource.completedQueries[queryHash];
4163+
4164+
if (this.utils.isEmpty(params)) {
4165+
resource.completedQueries = {};
4166+
}
4167+
41614168
if (!this.$rootScope.$$phase) {
41624169
this.$rootScope.$apply(function () {
41634170
_ejectAll.apply(_this, [_this.definitions[resourceName], resource, params]);

dist/angular-data.min.js

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

src/datastore/sync_methods/ejectAll.js

+10-3
Original file line numberDiff line numberDiff line change
@@ -83,10 +83,17 @@ function ejectAll(resourceName, params) {
8383
throw new this.errors.IllegalArgumentError(errorPrefix + 'params: Must be an object!', { params: { actual: typeof params, expected: 'object' } });
8484
}
8585

86-
var resource = this.store[resourceName];
87-
var _this = this;
88-
8986
try {
87+
var _this = this;
88+
var resource = this.store[resourceName];
89+
var queryHash = this.utils.toJson(params);
90+
91+
delete resource.completedQueries[queryHash];
92+
93+
if (this.utils.isEmpty(params)) {
94+
resource.completedQueries = {};
95+
}
96+
9097
if (!this.$rootScope.$$phase) {
9198
this.$rootScope.$apply(function () {
9299
_ejectAll.apply(_this, [_this.definitions[resourceName], resource, params]);

test/integration/datastore/sync_methods/ejectAll.test.js

+3
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,13 @@ describe('DS.ejectAll(resourceName[, params])', function () {
6363
assert.deepEqual(DS.get('post', 7), p3);
6464
assert.deepEqual(DS.get('post', 8), p4);
6565

66+
DS.store.post.completedQueries.test = 'stuff';
67+
6668
assert.doesNotThrow(function () {
6769
DS.ejectAll('post');
6870
});
6971

72+
assert.deepEqual(DS.store.post.completedQueries, {});
7073
assert.isUndefined(DS.get('post', 5));
7174
assert.isUndefined(DS.get('post', 6));
7275
assert.isUndefined(DS.get('post', 7));

0 commit comments

Comments
 (0)