ember-data-source 1.0.0.beta.11 → 1.0.0.beta.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dist/ember-data.js +404 -206
- data/dist/ember-data.min.js +3 -3
- data/dist/ember-data.named-amd.js +341 -143
- data/dist/ember-data.named-amd.min.js +3 -3
- data/dist/ember-data.named-amd.prod.js +323 -136
- data/dist/ember-data.prod.js +386 -199
- data/package.json +3 -1
- metadata +2 -2
data/dist/ember-data.prod.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
(function(global){
|
2
|
-
var
|
2
|
+
var enifed, requireModule, eriuqer, requirejs;
|
3
3
|
|
4
4
|
(function() {
|
5
5
|
|
@@ -15,7 +15,7 @@ var define, requireModule, require, requirejs;
|
|
15
15
|
var registry = {}, seen = {}, state = {};
|
16
16
|
var FAILED = false;
|
17
17
|
|
18
|
-
|
18
|
+
enifed = function(name, deps, callback) {
|
19
19
|
|
20
20
|
if (!_isArray(deps)) {
|
21
21
|
callback = deps;
|
@@ -39,7 +39,7 @@ var define, requireModule, require, requirejs;
|
|
39
39
|
if (dep === 'exports') {
|
40
40
|
exports = reified[i] = seen;
|
41
41
|
} else {
|
42
|
-
reified[i] =
|
42
|
+
reified[i] = eriuqer(resolve(dep, name));
|
43
43
|
}
|
44
44
|
}
|
45
45
|
|
@@ -49,7 +49,7 @@ var define, requireModule, require, requirejs;
|
|
49
49
|
};
|
50
50
|
}
|
51
51
|
|
52
|
-
requirejs =
|
52
|
+
requirejs = eriuqer = requireModule = function(name) {
|
53
53
|
if (state[name] !== FAILED &&
|
54
54
|
seen.hasOwnProperty(name)) {
|
55
55
|
return seen[name];
|
@@ -110,7 +110,7 @@ var define, requireModule, require, requirejs;
|
|
110
110
|
};
|
111
111
|
})();
|
112
112
|
|
113
|
-
|
113
|
+
enifed("activemodel-adapter",
|
114
114
|
["activemodel-adapter/system","exports"],
|
115
115
|
function(__dependency1__, __exports__) {
|
116
116
|
"use strict";
|
@@ -120,7 +120,7 @@ define("activemodel-adapter",
|
|
120
120
|
__exports__.ActiveModelAdapter = ActiveModelAdapter;
|
121
121
|
__exports__.ActiveModelSerializer = ActiveModelSerializer;
|
122
122
|
});
|
123
|
-
|
123
|
+
enifed("activemodel-adapter/setup-container",
|
124
124
|
["ember-data/system/container_proxy","activemodel-adapter/system/active_model_serializer","activemodel-adapter/system/active_model_adapter","exports"],
|
125
125
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
126
126
|
"use strict";
|
@@ -139,7 +139,7 @@ define("activemodel-adapter/setup-container",
|
|
139
139
|
container.register('adapter:-active-model', ActiveModelAdapter);
|
140
140
|
};
|
141
141
|
});
|
142
|
-
|
142
|
+
enifed("activemodel-adapter/system",
|
143
143
|
["activemodel-adapter/system/active_model_adapter","activemodel-adapter/system/active_model_serializer","exports"],
|
144
144
|
function(__dependency1__, __dependency2__, __exports__) {
|
145
145
|
"use strict";
|
@@ -149,7 +149,7 @@ define("activemodel-adapter/system",
|
|
149
149
|
__exports__.ActiveModelAdapter = ActiveModelAdapter;
|
150
150
|
__exports__.ActiveModelSerializer = ActiveModelSerializer;
|
151
151
|
});
|
152
|
-
|
152
|
+
enifed("activemodel-adapter/system/active_model_adapter",
|
153
153
|
["ember-data/adapters","ember-data/system/adapter","ember-inflector","exports"],
|
154
154
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
155
155
|
"use strict";
|
@@ -161,7 +161,6 @@ define("activemodel-adapter/system/active_model_adapter",
|
|
161
161
|
@module ember-data
|
162
162
|
*/
|
163
163
|
|
164
|
-
var forEach = Ember.EnumerableUtils.forEach;
|
165
164
|
var decamelize = Ember.String.decamelize,
|
166
165
|
underscore = Ember.String.underscore;
|
167
166
|
|
@@ -171,7 +170,7 @@ define("activemodel-adapter/system/active_model_adapter",
|
|
171
170
|
It has been designed to work out of the box with the
|
172
171
|
[active_model_serializers](http://github.com/rails-api/active_model_serializers)
|
173
172
|
Ruby gem. This Adapter expects specific settings using ActiveModel::Serializers,
|
174
|
-
`embed :ids,
|
173
|
+
`embed :ids, embed_in_root: true` which sideloads the records.
|
175
174
|
|
176
175
|
This adapter extends the DS.RESTAdapter by making consistent use of the camelization,
|
177
176
|
decamelization and pluralization methods to normalize the serialized JSON into a
|
@@ -297,18 +296,7 @@ define("activemodel-adapter/system/active_model_adapter",
|
|
297
296
|
var error = this._super(jqXHR);
|
298
297
|
|
299
298
|
if (jqXHR && jqXHR.status === 422) {
|
300
|
-
|
301
|
-
errors = {};
|
302
|
-
|
303
|
-
if (response.errors !== undefined) {
|
304
|
-
var jsonErrors = response.errors;
|
305
|
-
|
306
|
-
forEach(Ember.keys(jsonErrors), function(key) {
|
307
|
-
errors[Ember.String.camelize(key)] = jsonErrors[key];
|
308
|
-
});
|
309
|
-
}
|
310
|
-
|
311
|
-
return new InvalidError(errors);
|
299
|
+
return new InvalidError(Ember.$.parseJSON(jqXHR.responseText));
|
312
300
|
} else {
|
313
301
|
return error;
|
314
302
|
}
|
@@ -317,7 +305,7 @@ define("activemodel-adapter/system/active_model_adapter",
|
|
317
305
|
|
318
306
|
__exports__["default"] = ActiveModelAdapter;
|
319
307
|
});
|
320
|
-
|
308
|
+
enifed("activemodel-adapter/system/active_model_serializer",
|
321
309
|
["ember-inflector","ember-data/serializers/rest_serializer","exports"],
|
322
310
|
function(__dependency1__, __dependency2__, __exports__) {
|
323
311
|
"use strict";
|
@@ -339,7 +327,7 @@ define("activemodel-adapter/system/active_model_serializer",
|
|
339
327
|
It has been designed to work out of the box with the
|
340
328
|
[active_model_serializers](http://github.com/rails-api/active_model_serializers)
|
341
329
|
Ruby gem. This Serializer expects specific settings using ActiveModel::Serializers,
|
342
|
-
`embed :ids,
|
330
|
+
`embed :ids, embed_in_root: true` which sideloads the records.
|
343
331
|
|
344
332
|
This serializer extends the DS.RESTSerializer by making consistent
|
345
333
|
use of the camelization, decamelization and pluralization methods to
|
@@ -613,9 +601,9 @@ define("activemodel-adapter/system/active_model_serializer",
|
|
613
601
|
|
614
602
|
__exports__["default"] = ActiveModelSerializer;
|
615
603
|
});
|
616
|
-
|
617
|
-
["ember-data/core","ember-data/ext/date","ember-data/system/promise_proxies","ember-data/system/store","ember-data/system/model","ember-data/system/adapter","ember-data/system/debug","ember-data/system/record_arrays","ember-data/system/record_array_manager","ember-data/adapters","ember-data/serializers/json_serializer","ember-data/serializers/rest_serializer","ember-inflector","ember-data/serializers/embedded_records_mixin","activemodel-adapter","ember-data/transforms","ember-data/system/relationships","ember-data/ember-initializer","ember-data/setup-container","ember-data/system/container_proxy","ember-data/system/relationships/relationship","exports"],
|
618
|
-
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __exports__) {
|
604
|
+
enifed("ember-data",
|
605
|
+
["ember-data/system/create","ember-data/core","ember-data/ext/date","ember-data/system/promise_proxies","ember-data/system/store","ember-data/system/model","ember-data/system/adapter","ember-data/system/debug","ember-data/system/record_arrays","ember-data/system/record_array_manager","ember-data/adapters","ember-data/serializers/json_serializer","ember-data/serializers/rest_serializer","ember-inflector","ember-data/serializers/embedded_records_mixin","activemodel-adapter","ember-data/transforms","ember-data/system/relationships","ember-data/ember-initializer","ember-data/setup-container","ember-data/system/container_proxy","ember-data/system/relationships/relationship","exports"],
|
606
|
+
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __dependency6__, __dependency7__, __dependency8__, __dependency9__, __dependency10__, __dependency11__, __dependency12__, __dependency13__, __dependency14__, __dependency15__, __dependency16__, __dependency17__, __dependency18__, __dependency19__, __dependency20__, __dependency21__, __dependency22__, __exports__) {
|
619
607
|
"use strict";
|
620
608
|
/**
|
621
609
|
Ember Data
|
@@ -627,43 +615,43 @@ define("ember-data",
|
|
627
615
|
// support RSVP 2.x via resolve, but prefer RSVP 3.x's Promise.cast
|
628
616
|
Ember.RSVP.Promise.cast = Ember.RSVP.Promise.cast || Ember.RSVP.resolve;
|
629
617
|
|
630
|
-
var DS =
|
631
|
-
|
632
|
-
var PromiseArray =
|
633
|
-
var PromiseObject =
|
634
|
-
var Store =
|
635
|
-
var Model =
|
636
|
-
var Errors =
|
637
|
-
var RootState =
|
638
|
-
var attr =
|
639
|
-
var InvalidError =
|
640
|
-
var Adapter =
|
641
|
-
var DebugAdapter =
|
642
|
-
var RecordArray =
|
643
|
-
var FilteredRecordArray =
|
644
|
-
var AdapterPopulatedRecordArray =
|
645
|
-
var ManyArray =
|
646
|
-
var RecordArrayManager =
|
647
|
-
var RESTAdapter =
|
648
|
-
var FixtureAdapter =
|
649
|
-
var JSONSerializer =
|
650
|
-
var RESTSerializer =
|
651
|
-
var EmbeddedRecordsMixin =
|
652
|
-
var ActiveModelAdapter =
|
653
|
-
var ActiveModelSerializer =
|
654
|
-
|
655
|
-
var Transform =
|
656
|
-
var DateTransform =
|
657
|
-
var NumberTransform =
|
658
|
-
var StringTransform =
|
659
|
-
var BooleanTransform =
|
660
|
-
|
661
|
-
var hasMany =
|
662
|
-
var belongsTo =
|
663
|
-
var setupContainer =
|
664
|
-
|
665
|
-
var ContainerProxy =
|
666
|
-
var Relationship =
|
618
|
+
var DS = __dependency2__["default"];
|
619
|
+
|
620
|
+
var PromiseArray = __dependency4__.PromiseArray;
|
621
|
+
var PromiseObject = __dependency4__.PromiseObject;
|
622
|
+
var Store = __dependency5__.Store;
|
623
|
+
var Model = __dependency6__.Model;
|
624
|
+
var Errors = __dependency6__.Errors;
|
625
|
+
var RootState = __dependency6__.RootState;
|
626
|
+
var attr = __dependency6__.attr;
|
627
|
+
var InvalidError = __dependency7__.InvalidError;
|
628
|
+
var Adapter = __dependency7__.Adapter;
|
629
|
+
var DebugAdapter = __dependency8__["default"];
|
630
|
+
var RecordArray = __dependency9__.RecordArray;
|
631
|
+
var FilteredRecordArray = __dependency9__.FilteredRecordArray;
|
632
|
+
var AdapterPopulatedRecordArray = __dependency9__.AdapterPopulatedRecordArray;
|
633
|
+
var ManyArray = __dependency9__.ManyArray;
|
634
|
+
var RecordArrayManager = __dependency10__["default"];
|
635
|
+
var RESTAdapter = __dependency11__.RESTAdapter;
|
636
|
+
var FixtureAdapter = __dependency11__.FixtureAdapter;
|
637
|
+
var JSONSerializer = __dependency12__["default"];
|
638
|
+
var RESTSerializer = __dependency13__["default"];
|
639
|
+
var EmbeddedRecordsMixin = __dependency15__["default"];
|
640
|
+
var ActiveModelAdapter = __dependency16__.ActiveModelAdapter;
|
641
|
+
var ActiveModelSerializer = __dependency16__.ActiveModelSerializer;
|
642
|
+
|
643
|
+
var Transform = __dependency17__.Transform;
|
644
|
+
var DateTransform = __dependency17__.DateTransform;
|
645
|
+
var NumberTransform = __dependency17__.NumberTransform;
|
646
|
+
var StringTransform = __dependency17__.StringTransform;
|
647
|
+
var BooleanTransform = __dependency17__.BooleanTransform;
|
648
|
+
|
649
|
+
var hasMany = __dependency18__.hasMany;
|
650
|
+
var belongsTo = __dependency18__.belongsTo;
|
651
|
+
var setupContainer = __dependency20__["default"];
|
652
|
+
|
653
|
+
var ContainerProxy = __dependency21__["default"];
|
654
|
+
var Relationship = __dependency22__.Relationship;
|
667
655
|
|
668
656
|
DS.Store = Store;
|
669
657
|
DS.PromiseArray = PromiseArray;
|
@@ -715,7 +703,7 @@ define("ember-data",
|
|
715
703
|
|
716
704
|
__exports__["default"] = DS;
|
717
705
|
});
|
718
|
-
|
706
|
+
enifed("ember-data/adapters",
|
719
707
|
["ember-data/adapters/fixture_adapter","ember-data/adapters/rest_adapter","exports"],
|
720
708
|
function(__dependency1__, __dependency2__, __exports__) {
|
721
709
|
"use strict";
|
@@ -729,7 +717,7 @@ define("ember-data/adapters",
|
|
729
717
|
__exports__.RESTAdapter = RESTAdapter;
|
730
718
|
__exports__.FixtureAdapter = FixtureAdapter;
|
731
719
|
});
|
732
|
-
|
720
|
+
enifed("ember-data/adapters/fixture_adapter",
|
733
721
|
["ember-data/system/adapter","exports"],
|
734
722
|
function(__dependency1__, __exports__) {
|
735
723
|
"use strict";
|
@@ -1069,7 +1057,7 @@ define("ember-data/adapters/fixture_adapter",
|
|
1069
1057
|
}
|
1070
1058
|
});
|
1071
1059
|
});
|
1072
|
-
|
1060
|
+
enifed("ember-data/adapters/rest_adapter",
|
1073
1061
|
["ember-data/system/adapter","ember-data/system/map","exports"],
|
1074
1062
|
function(__dependency1__, __dependency2__, __exports__) {
|
1075
1063
|
"use strict";
|
@@ -1656,7 +1644,7 @@ define("ember-data/adapters/rest_adapter",
|
|
1656
1644
|
},
|
1657
1645
|
|
1658
1646
|
_stripIDFromURL: function(store, record) {
|
1659
|
-
var type =
|
1647
|
+
var type = record.constructor;
|
1660
1648
|
var url = this.buildURL(type.typeKey, record.get('id'), record);
|
1661
1649
|
|
1662
1650
|
var expandedURL = url.split('/');
|
@@ -1673,6 +1661,11 @@ define("ember-data/adapters/rest_adapter",
|
|
1673
1661
|
return expandedURL.join('/');
|
1674
1662
|
},
|
1675
1663
|
|
1664
|
+
/**
|
1665
|
+
http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers
|
1666
|
+
*/
|
1667
|
+
maxUrlLength: 2048,
|
1668
|
+
|
1676
1669
|
/**
|
1677
1670
|
Organize records into groups, each of which is to be passed to separate
|
1678
1671
|
calls to `findMany`.
|
@@ -1690,6 +1683,7 @@ define("ember-data/adapters/rest_adapter",
|
|
1690
1683
|
and `/posts/2/comments/3`
|
1691
1684
|
|
1692
1685
|
@method groupRecordsForFindMany
|
1686
|
+
@param {DS.Store} store
|
1693
1687
|
@param {Array} records
|
1694
1688
|
@return {Array} an array of arrays of records, each of which is to be
|
1695
1689
|
loaded separately by `findMany`.
|
@@ -1697,19 +1691,20 @@ define("ember-data/adapters/rest_adapter",
|
|
1697
1691
|
groupRecordsForFindMany: function (store, records) {
|
1698
1692
|
var groups = MapWithDefault.create({defaultValue: function(){return [];}});
|
1699
1693
|
var adapter = this;
|
1694
|
+
var maxUrlLength = this.maxUrlLength;
|
1700
1695
|
|
1701
1696
|
forEach.call(records, function(record){
|
1702
1697
|
var baseUrl = adapter._stripIDFromURL(store, record);
|
1703
1698
|
groups.get(baseUrl).push(record);
|
1704
1699
|
});
|
1705
1700
|
|
1706
|
-
function splitGroupToFitInUrl(group, maxUrlLength) {
|
1701
|
+
function splitGroupToFitInUrl(group, maxUrlLength, paramNameLength) {
|
1707
1702
|
var baseUrl = adapter._stripIDFromURL(store, group[0]);
|
1708
1703
|
var idsSize = 0;
|
1709
1704
|
var splitGroups = [[]];
|
1710
1705
|
|
1711
1706
|
forEach.call(group, function(record) {
|
1712
|
-
var additionalLength =
|
1707
|
+
var additionalLength = encodeURIComponent(record.get('id')).length + paramNameLength;
|
1713
1708
|
if (baseUrl.length + idsSize + additionalLength >= maxUrlLength) {
|
1714
1709
|
idsSize = 0;
|
1715
1710
|
splitGroups.push([]);
|
@@ -1726,9 +1721,8 @@ define("ember-data/adapters/rest_adapter",
|
|
1726
1721
|
|
1727
1722
|
var groupsArray = [];
|
1728
1723
|
groups.forEach(function(group, key){
|
1729
|
-
|
1730
|
-
var
|
1731
|
-
var splitGroups = splitGroupToFitInUrl(group, maxUrlLength);
|
1724
|
+
var paramNameLength = '&ids%5B%5D='.length;
|
1725
|
+
var splitGroups = splitGroupToFitInUrl(group, maxUrlLength, paramNameLength);
|
1732
1726
|
|
1733
1727
|
forEach.call(splitGroups, function(splitGroup) {
|
1734
1728
|
groupsArray.push(splitGroup);
|
@@ -1768,19 +1762,25 @@ define("ember-data/adapters/rest_adapter",
|
|
1768
1762
|
},
|
1769
1763
|
|
1770
1764
|
/**
|
1771
|
-
Takes an ajax response, and returns
|
1765
|
+
Takes an ajax response, and returns an error payload.
|
1772
1766
|
|
1773
1767
|
Returning a `DS.InvalidError` from this method will cause the
|
1774
1768
|
record to transition into the `invalid` state and make the
|
1775
1769
|
`errors` object available on the record.
|
1776
1770
|
|
1771
|
+
This function should return the entire payload as received from the
|
1772
|
+
server. Error object extraction and normalization of model errors
|
1773
|
+
should be performed by `extractErrors` on the serializer.
|
1774
|
+
|
1775
|
+
Example
|
1776
|
+
|
1777
1777
|
```javascript
|
1778
1778
|
App.ApplicationAdapter = DS.RESTAdapter.extend({
|
1779
1779
|
ajaxError: function(jqXHR) {
|
1780
1780
|
var error = this._super(jqXHR);
|
1781
1781
|
|
1782
1782
|
if (jqXHR && jqXHR.status === 422) {
|
1783
|
-
var jsonErrors = Ember.$.parseJSON(jqXHR.responseText)
|
1783
|
+
var jsonErrors = Ember.$.parseJSON(jqXHR.responseText);
|
1784
1784
|
|
1785
1785
|
return new DS.InvalidError(jsonErrors);
|
1786
1786
|
} else {
|
@@ -1824,12 +1824,12 @@ define("ember-data/adapters/rest_adapter",
|
|
1824
1824
|
2. Your API might return errors as successful responses with status code
|
1825
1825
|
200 and an Errors text or object. You can return a DS.InvalidError from
|
1826
1826
|
this hook and it will automatically reject the promise and put your record
|
1827
|
-
into the
|
1827
|
+
into the invalid state.
|
1828
1828
|
|
1829
|
-
@method
|
1829
|
+
@method ajaxSuccess
|
1830
1830
|
@param {Object} jqXHR
|
1831
1831
|
@param {Object} jsonPayload
|
1832
|
-
@return {Object}
|
1832
|
+
@return {Object} jsonPayload
|
1833
1833
|
*/
|
1834
1834
|
|
1835
1835
|
ajaxSuccess: function(jqXHR, jsonPayload) {
|
@@ -1925,7 +1925,7 @@ define("ember-data/adapters/rest_adapter",
|
|
1925
1925
|
}
|
1926
1926
|
}
|
1927
1927
|
});
|
1928
|
-
|
1928
|
+
enifed("ember-data/core",
|
1929
1929
|
["exports"],
|
1930
1930
|
function(__exports__) {
|
1931
1931
|
"use strict";
|
@@ -1944,11 +1944,11 @@ define("ember-data/core",
|
|
1944
1944
|
/**
|
1945
1945
|
@property VERSION
|
1946
1946
|
@type String
|
1947
|
-
@default '1.0.0-beta.
|
1947
|
+
@default '1.0.0-beta.12'
|
1948
1948
|
@static
|
1949
1949
|
*/
|
1950
1950
|
DS = Ember.Namespace.create({
|
1951
|
-
VERSION: '1.0.0-beta.
|
1951
|
+
VERSION: '1.0.0-beta.12'
|
1952
1952
|
});
|
1953
1953
|
|
1954
1954
|
if (Ember.libraries) {
|
@@ -1958,7 +1958,7 @@ define("ember-data/core",
|
|
1958
1958
|
|
1959
1959
|
__exports__["default"] = DS;
|
1960
1960
|
});
|
1961
|
-
|
1961
|
+
enifed("ember-data/ember-initializer",
|
1962
1962
|
["ember-data/setup-container"],
|
1963
1963
|
function(__dependency1__) {
|
1964
1964
|
"use strict";
|
@@ -2042,7 +2042,7 @@ define("ember-data/ember-initializer",
|
|
2042
2042
|
});
|
2043
2043
|
});
|
2044
2044
|
});
|
2045
|
-
|
2045
|
+
enifed("ember-data/ext/date",
|
2046
2046
|
[],
|
2047
2047
|
function() {
|
2048
2048
|
"use strict";
|
@@ -2108,7 +2108,7 @@ define("ember-data/ext/date",
|
|
2108
2108
|
Date.parse = Ember.Date.parse;
|
2109
2109
|
}
|
2110
2110
|
});
|
2111
|
-
|
2111
|
+
enifed("ember-data/initializers/data_adapter",
|
2112
2112
|
["ember-data/system/debug/debug_adapter","exports"],
|
2113
2113
|
function(__dependency1__, __exports__) {
|
2114
2114
|
"use strict";
|
@@ -2125,7 +2125,7 @@ define("ember-data/initializers/data_adapter",
|
|
2125
2125
|
container.register('data-adapter:main', DebugAdapter);
|
2126
2126
|
};
|
2127
2127
|
});
|
2128
|
-
|
2128
|
+
enifed("ember-data/initializers/store",
|
2129
2129
|
["ember-data/serializers","ember-data/adapters","ember-data/system/container_proxy","ember-data/system/store","exports"],
|
2130
2130
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
2131
2131
|
"use strict";
|
@@ -2166,7 +2166,7 @@ define("ember-data/initializers/store",
|
|
2166
2166
|
container.lookup('store:main');
|
2167
2167
|
};
|
2168
2168
|
});
|
2169
|
-
|
2169
|
+
enifed("ember-data/initializers/store_injections",
|
2170
2170
|
["exports"],
|
2171
2171
|
function(__exports__) {
|
2172
2172
|
"use strict";
|
@@ -2184,7 +2184,7 @@ define("ember-data/initializers/store_injections",
|
|
2184
2184
|
container.injection('data-adapter', 'store', 'store:main');
|
2185
2185
|
};
|
2186
2186
|
});
|
2187
|
-
|
2187
|
+
enifed("ember-data/initializers/transforms",
|
2188
2188
|
["ember-data/transforms","exports"],
|
2189
2189
|
function(__dependency1__, __exports__) {
|
2190
2190
|
"use strict";
|
@@ -2207,7 +2207,7 @@ define("ember-data/initializers/transforms",
|
|
2207
2207
|
container.register('transform:string', StringTransform);
|
2208
2208
|
};
|
2209
2209
|
});
|
2210
|
-
|
2210
|
+
enifed("ember-data/serializers",
|
2211
2211
|
["ember-data/serializers/json_serializer","ember-data/serializers/rest_serializer","exports"],
|
2212
2212
|
function(__dependency1__, __dependency2__, __exports__) {
|
2213
2213
|
"use strict";
|
@@ -2217,7 +2217,7 @@ define("ember-data/serializers",
|
|
2217
2217
|
__exports__.JSONSerializer = JSONSerializer;
|
2218
2218
|
__exports__.RESTSerializer = RESTSerializer;
|
2219
2219
|
});
|
2220
|
-
|
2220
|
+
enifed("ember-data/serializers/embedded_records_mixin",
|
2221
2221
|
["exports"],
|
2222
2222
|
function(__exports__) {
|
2223
2223
|
"use strict";
|
@@ -2687,7 +2687,7 @@ define("ember-data/serializers/embedded_records_mixin",
|
|
2687
2687
|
|
2688
2688
|
__exports__["default"] = EmbeddedRecordsMixin;
|
2689
2689
|
});
|
2690
|
-
|
2690
|
+
enifed("ember-data/serializers/json_serializer",
|
2691
2691
|
["exports"],
|
2692
2692
|
function(__exports__) {
|
2693
2693
|
"use strict";
|
@@ -2953,6 +2953,16 @@ define("ember-data/serializers/json_serializer",
|
|
2953
2953
|
delete hash[primaryKey];
|
2954
2954
|
},
|
2955
2955
|
|
2956
|
+
/**
|
2957
|
+
@method normalizeErrors
|
2958
|
+
@private
|
2959
|
+
*/
|
2960
|
+
normalizeErrors: function(type, hash) {
|
2961
|
+
this.normalizeId(hash);
|
2962
|
+
this.normalizeAttributes(type, hash);
|
2963
|
+
this.normalizeRelationships(type, hash);
|
2964
|
+
},
|
2965
|
+
|
2956
2966
|
/**
|
2957
2967
|
Looks up the property key that was set by the custom `attr` mapping
|
2958
2968
|
passed to the serializer.
|
@@ -3663,6 +3673,41 @@ define("ember-data/serializers/json_serializer",
|
|
3663
3673
|
}
|
3664
3674
|
},
|
3665
3675
|
|
3676
|
+
/**
|
3677
|
+
`extractErrors` is used to extract model errors when a call is made
|
3678
|
+
to `DS.Model#save` which fails with an InvalidError`. By default
|
3679
|
+
Ember Data expects error information to be located on the `errors`
|
3680
|
+
property of the payload object.
|
3681
|
+
|
3682
|
+
Example
|
3683
|
+
|
3684
|
+
```javascript
|
3685
|
+
App.PostSerializer = DS.JSONSerializer.extend({
|
3686
|
+
extractErrors: function(store, type, payload, id) {
|
3687
|
+
if (payload && typeof payload === 'object' && payload._problems) {
|
3688
|
+
payload = payload._problems;
|
3689
|
+
this.normalizeErrors(type, payload);
|
3690
|
+
}
|
3691
|
+
return payload;
|
3692
|
+
}
|
3693
|
+
});
|
3694
|
+
```
|
3695
|
+
|
3696
|
+
@method extractErrors
|
3697
|
+
@param {DS.Store} store
|
3698
|
+
@param {subclass of DS.Model} type
|
3699
|
+
@param {Object} payload
|
3700
|
+
@param {String or Number} id
|
3701
|
+
@return {Object} json The deserialized errors
|
3702
|
+
*/
|
3703
|
+
extractErrors: function(store, type, payload, id) {
|
3704
|
+
if (payload && typeof payload === 'object' && payload.errors) {
|
3705
|
+
payload = payload.errors;
|
3706
|
+
this.normalizeErrors(type, payload);
|
3707
|
+
}
|
3708
|
+
return payload;
|
3709
|
+
},
|
3710
|
+
|
3666
3711
|
/**
|
3667
3712
|
`keyForAttribute` can be used to define rules for how to convert an
|
3668
3713
|
attribute name in your model to a key in your JSON.
|
@@ -3725,7 +3770,7 @@ define("ember-data/serializers/json_serializer",
|
|
3725
3770
|
}
|
3726
3771
|
});
|
3727
3772
|
});
|
3728
|
-
|
3773
|
+
enifed("ember-data/serializers/rest_serializer",
|
3729
3774
|
["ember-data/serializers/json_serializer","ember-inflector/system/string","exports"],
|
3730
3775
|
function(__dependency1__, __dependency2__, __exports__) {
|
3731
3776
|
"use strict";
|
@@ -3998,6 +4043,7 @@ define("ember-data/serializers/rest_serializer",
|
|
3998
4043
|
|
3999
4044
|
for (var prop in payload) {
|
4000
4045
|
var typeName = this.typeForRoot(prop);
|
4046
|
+
|
4001
4047
|
if (!store.modelFactoryFor(typeName)){
|
4002
4048
|
continue;
|
4003
4049
|
}
|
@@ -4005,6 +4051,10 @@ define("ember-data/serializers/rest_serializer",
|
|
4005
4051
|
var isPrimary = type.typeKey === primaryTypeName;
|
4006
4052
|
var value = payload[prop];
|
4007
4053
|
|
4054
|
+
if (value === null) {
|
4055
|
+
continue;
|
4056
|
+
}
|
4057
|
+
|
4008
4058
|
// legacy support for singular resources
|
4009
4059
|
if (isPrimary && Ember.typeOf(value) !== "array" ) {
|
4010
4060
|
primaryRecord = this.normalize(primaryType, value, prop);
|
@@ -4474,7 +4524,7 @@ define("ember-data/serializers/rest_serializer",
|
|
4474
4524
|
|
4475
4525
|
__exports__["default"] = RESTSerializer;
|
4476
4526
|
});
|
4477
|
-
|
4527
|
+
enifed("ember-data/setup-container",
|
4478
4528
|
["ember-data/initializers/store","ember-data/initializers/transforms","ember-data/initializers/store_injections","ember-data/initializers/data_adapter","activemodel-adapter/setup-container","exports"],
|
4479
4529
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
4480
4530
|
"use strict";
|
@@ -4496,7 +4546,7 @@ define("ember-data/setup-container",
|
|
4496
4546
|
setupActiveModelContainer(container, application);
|
4497
4547
|
};
|
4498
4548
|
});
|
4499
|
-
|
4549
|
+
enifed("ember-data/system/adapter",
|
4500
4550
|
["exports"],
|
4501
4551
|
function(__exports__) {
|
4502
4552
|
"use strict";
|
@@ -4525,6 +4575,10 @@ define("ember-data/system/adapter",
|
|
4525
4575
|
transition to the `invalid` state and the errors will be set to the
|
4526
4576
|
`errors` property on the record.
|
4527
4577
|
|
4578
|
+
This function should return the entire payload as received from the
|
4579
|
+
server. Error object extraction and normalization of model errors
|
4580
|
+
should be performed by `extractErrors` on the serializer.
|
4581
|
+
|
4528
4582
|
Example
|
4529
4583
|
|
4530
4584
|
```javascript
|
@@ -4533,7 +4587,7 @@ define("ember-data/system/adapter",
|
|
4533
4587
|
var error = this._super(jqXHR);
|
4534
4588
|
|
4535
4589
|
if (jqXHR && jqXHR.status === 422) {
|
4536
|
-
var jsonErrors = Ember.$.parseJSON(jqXHR.responseText)
|
4590
|
+
var jsonErrors = Ember.$.parseJSON(jqXHR.responseText);
|
4537
4591
|
return new DS.InvalidError(jsonErrors);
|
4538
4592
|
} else {
|
4539
4593
|
return error;
|
@@ -4549,7 +4603,7 @@ define("ember-data/system/adapter",
|
|
4549
4603
|
```javascript
|
4550
4604
|
return new DS.InvalidError({
|
4551
4605
|
length: 'Must be less than 15',
|
4552
|
-
name: 'Must not be blank
|
4606
|
+
name: 'Must not be blank'
|
4553
4607
|
});
|
4554
4608
|
```
|
4555
4609
|
|
@@ -4948,6 +5002,7 @@ define("ember-data/system/adapter",
|
|
4948
5002
|
The default implementation returns the records as a single group.
|
4949
5003
|
|
4950
5004
|
@method groupRecordsForFindMany
|
5005
|
+
@param {DS.Store} store
|
4951
5006
|
@param {Array} records
|
4952
5007
|
@return {Array} an array of arrays of records, each of which is to be
|
4953
5008
|
loaded separately by `findMany`.
|
@@ -4961,7 +5016,7 @@ define("ember-data/system/adapter",
|
|
4961
5016
|
__exports__.Adapter = Adapter;
|
4962
5017
|
__exports__["default"] = Adapter;
|
4963
5018
|
});
|
4964
|
-
|
5019
|
+
enifed("ember-data/system/container_proxy",
|
4965
5020
|
["exports"],
|
4966
5021
|
function(__exports__) {
|
4967
5022
|
"use strict";
|
@@ -5014,7 +5069,21 @@ define("ember-data/system/container_proxy",
|
|
5014
5069
|
|
5015
5070
|
__exports__["default"] = ContainerProxy;
|
5016
5071
|
});
|
5017
|
-
|
5072
|
+
enifed("ember-data/system/create",
|
5073
|
+
[],
|
5074
|
+
function() {
|
5075
|
+
"use strict";
|
5076
|
+
/*
|
5077
|
+
Detect if the user has a correct Object.create shim.
|
5078
|
+
Ember has provided this for a long time but has had an incorrect shim before 1.8
|
5079
|
+
TODO: Remove for Ember Data 1.0.
|
5080
|
+
*/
|
5081
|
+
var object = Ember.create(null);
|
5082
|
+
if (object.toString !== undefined && Ember.keys(Ember.create({}))[0] === '__proto__'){
|
5083
|
+
throw new Error("Ember Data requires a correct Object.create shim. You should upgrade to Ember >= 1.8 which provides one for you. If you are using ES5-shim, you should try removing that after upgrading Ember.");
|
5084
|
+
}
|
5085
|
+
});
|
5086
|
+
enifed("ember-data/system/debug",
|
5018
5087
|
["ember-data/system/debug/debug_info","ember-data/system/debug/debug_adapter","exports"],
|
5019
5088
|
function(__dependency1__, __dependency2__, __exports__) {
|
5020
5089
|
"use strict";
|
@@ -5026,7 +5095,7 @@ define("ember-data/system/debug",
|
|
5026
5095
|
|
5027
5096
|
__exports__["default"] = DebugAdapter;
|
5028
5097
|
});
|
5029
|
-
|
5098
|
+
enifed("ember-data/system/debug/debug_adapter",
|
5030
5099
|
["ember-data/system/model","exports"],
|
5031
5100
|
function(__dependency1__, __exports__) {
|
5032
5101
|
"use strict";
|
@@ -5149,7 +5218,7 @@ define("ember-data/system/debug/debug_adapter",
|
|
5149
5218
|
|
5150
5219
|
});
|
5151
5220
|
});
|
5152
|
-
|
5221
|
+
enifed("ember-data/system/debug/debug_info",
|
5153
5222
|
["ember-data/system/model","exports"],
|
5154
5223
|
function(__dependency1__, __exports__) {
|
5155
5224
|
"use strict";
|
@@ -5223,7 +5292,7 @@ define("ember-data/system/debug/debug_info",
|
|
5223
5292
|
|
5224
5293
|
__exports__["default"] = Model;
|
5225
5294
|
});
|
5226
|
-
|
5295
|
+
enifed("ember-data/system/map",
|
5227
5296
|
["exports"],
|
5228
5297
|
function(__exports__) {
|
5229
5298
|
"use strict";
|
@@ -5254,9 +5323,9 @@ define("ember-data/system/map",
|
|
5254
5323
|
usesOldBehavior = value === 'key' && key === 'value';
|
5255
5324
|
});
|
5256
5325
|
|
5257
|
-
Map.prototype =
|
5258
|
-
MapWithDefault.prototype =
|
5259
|
-
OrderedSet.prototype =
|
5326
|
+
Map.prototype = Ember.create(Ember.Map.prototype);
|
5327
|
+
MapWithDefault.prototype = Ember.create(Ember.MapWithDefault.prototype);
|
5328
|
+
OrderedSet.prototype = Ember.create(Ember.OrderedSet.prototype);
|
5260
5329
|
|
5261
5330
|
OrderedSet.create = function(){
|
5262
5331
|
return new OrderedSet();
|
@@ -5318,7 +5387,7 @@ define("ember-data/system/map",
|
|
5318
5387
|
__exports__.MapWithDefault = MapWithDefault;
|
5319
5388
|
__exports__.OrderedSet = OrderedSet;
|
5320
5389
|
});
|
5321
|
-
|
5390
|
+
enifed("ember-data/system/model",
|
5322
5391
|
["ember-data/system/model/model","ember-data/system/model/attributes","ember-data/system/model/states","ember-data/system/model/errors","exports"],
|
5323
5392
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
5324
5393
|
"use strict";
|
@@ -5336,7 +5405,7 @@ define("ember-data/system/model",
|
|
5336
5405
|
__exports__.attr = attr;
|
5337
5406
|
__exports__.Errors = Errors;
|
5338
5407
|
});
|
5339
|
-
|
5408
|
+
enifed("ember-data/system/model/attributes",
|
5340
5409
|
["ember-data/system/model/model","ember-data/system/map","exports"],
|
5341
5410
|
function(__dependency1__, __dependency2__, __exports__) {
|
5342
5411
|
"use strict";
|
@@ -5615,7 +5684,7 @@ define("ember-data/system/model/attributes",
|
|
5615
5684
|
options: options
|
5616
5685
|
};
|
5617
5686
|
|
5618
|
-
return Ember.computed(
|
5687
|
+
return Ember.computed(function(key, value) {
|
5619
5688
|
if (arguments.length > 1) {
|
5620
5689
|
var oldValue = getValue(this, key);
|
5621
5690
|
|
@@ -5645,7 +5714,7 @@ define("ember-data/system/model/attributes",
|
|
5645
5714
|
}).meta(meta);
|
5646
5715
|
};
|
5647
5716
|
});
|
5648
|
-
|
5717
|
+
enifed("ember-data/system/model/errors",
|
5649
5718
|
["ember-data/system/map","exports"],
|
5650
5719
|
function(__dependency1__, __exports__) {
|
5651
5720
|
"use strict";
|
@@ -5666,7 +5735,7 @@ define("ember-data/system/model/errors",
|
|
5666
5735
|
`DS.Errors`. This can be used to display validation error
|
5667
5736
|
messages returned from the server when a `record.save()` rejects.
|
5668
5737
|
This works automatically with `DS.ActiveModelAdapter`, but you
|
5669
|
-
can implement [ajaxError](api/data/classes/DS.RESTAdapter.html#method_ajaxError)
|
5738
|
+
can implement [ajaxError](/api/data/classes/DS.RESTAdapter.html#method_ajaxError)
|
5670
5739
|
in other adapters as well.
|
5671
5740
|
|
5672
5741
|
For Example, if you had an `User` model that looked like this:
|
@@ -5992,7 +6061,7 @@ define("ember-data/system/model/errors",
|
|
5992
6061
|
}
|
5993
6062
|
});
|
5994
6063
|
});
|
5995
|
-
|
6064
|
+
enifed("ember-data/system/model/model",
|
5996
6065
|
["ember-data/system/model/states","ember-data/system/model/errors","ember-data/system/promise_proxies","ember-data/system/relationships/relationship","exports"],
|
5997
6066
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
5998
6067
|
"use strict";
|
@@ -6017,8 +6086,8 @@ define("ember-data/system/model/model",
|
|
6017
6086
|
return get(get(this, 'currentState'), key);
|
6018
6087
|
}).readOnly();
|
6019
6088
|
|
6020
|
-
var _extractPivotNameCache =
|
6021
|
-
var _splitOnDotCache =
|
6089
|
+
var _extractPivotNameCache = Ember.create(null);
|
6090
|
+
var _splitOnDotCache = Ember.create(null);
|
6022
6091
|
|
6023
6092
|
function splitOnDot(name) {
|
6024
6093
|
return _splitOnDotCache[name] || (
|
@@ -6463,7 +6532,7 @@ define("ember-data/system/model/model",
|
|
6463
6532
|
would have a implicit post relationship in order to be do things like remove ourselves from the post
|
6464
6533
|
when we are deleted
|
6465
6534
|
*/
|
6466
|
-
this._implicitRelationships =
|
6535
|
+
this._implicitRelationships = Ember.create(null);
|
6467
6536
|
var model = this;
|
6468
6537
|
//TODO Move into a getter for better perf
|
6469
6538
|
this.constructor.eachRelationship(function(key, descriptor) {
|
@@ -6756,6 +6825,20 @@ define("ember-data/system/model/model",
|
|
6756
6825
|
return value;
|
6757
6826
|
},
|
6758
6827
|
|
6828
|
+
/**
|
6829
|
+
@method _notifyProperties
|
6830
|
+
@private
|
6831
|
+
*/
|
6832
|
+
_notifyProperties: function(keys) {
|
6833
|
+
Ember.beginPropertyChanges();
|
6834
|
+
var key;
|
6835
|
+
for (var i = 0, length = keys.length; i < length; i++){
|
6836
|
+
key = keys[i];
|
6837
|
+
this.notifyPropertyChange(key);
|
6838
|
+
}
|
6839
|
+
Ember.endPropertyChanges();
|
6840
|
+
},
|
6841
|
+
|
6759
6842
|
/**
|
6760
6843
|
Returns an object, whose keys are changed properties, and value is
|
6761
6844
|
an [oldProp, newProp] array.
|
@@ -6821,7 +6904,7 @@ define("ember-data/system/model/model",
|
|
6821
6904
|
|
6822
6905
|
if (!data) { return; }
|
6823
6906
|
|
6824
|
-
this.
|
6907
|
+
this._notifyProperties(Ember.keys(data));
|
6825
6908
|
},
|
6826
6909
|
|
6827
6910
|
/**
|
@@ -6854,15 +6937,16 @@ define("ember-data/system/model/model",
|
|
6854
6937
|
the existing data, not replace it.
|
6855
6938
|
*/
|
6856
6939
|
setupData: function(data, partial) {
|
6940
|
+
|
6857
6941
|
if (partial) {
|
6858
6942
|
Ember.merge(this._data, data);
|
6859
6943
|
} else {
|
6860
6944
|
this._data = data;
|
6861
6945
|
}
|
6862
6946
|
|
6863
|
-
|
6947
|
+
this.pushedData();
|
6864
6948
|
|
6865
|
-
this.
|
6949
|
+
this._notifyProperties(Ember.keys(data));
|
6866
6950
|
},
|
6867
6951
|
|
6868
6952
|
materializeId: function(id) {
|
@@ -6908,13 +6992,18 @@ define("ember-data/system/model/model",
|
|
6908
6992
|
this.reconnectRelationships();
|
6909
6993
|
}
|
6910
6994
|
|
6995
|
+
if (get(this, 'isNew')) {
|
6996
|
+
this.clearRelationships();
|
6997
|
+
}
|
6998
|
+
|
6911
6999
|
if (!get(this, 'isValid')) {
|
6912
7000
|
this._inFlightAttributes = {};
|
6913
7001
|
}
|
6914
7002
|
|
6915
7003
|
this.send('rolledBack');
|
6916
7004
|
|
6917
|
-
this.
|
7005
|
+
this._notifyProperties(Ember.keys(this._data));
|
7006
|
+
|
6918
7007
|
},
|
6919
7008
|
|
6920
7009
|
toStringExtension: function() {
|
@@ -6965,7 +7054,9 @@ define("ember-data/system/model/model",
|
|
6965
7054
|
App.ModelViewRoute = Ember.Route.extend({
|
6966
7055
|
actions: {
|
6967
7056
|
reload: function() {
|
6968
|
-
this.controller.get('model').reload()
|
7057
|
+
this.controller.get('model').reload().then(function(model) {
|
7058
|
+
// do something with the reloaded model
|
7059
|
+
});
|
6969
7060
|
}
|
6970
7061
|
}
|
6971
7062
|
});
|
@@ -7126,7 +7217,7 @@ define("ember-data/system/model/model",
|
|
7126
7217
|
|
7127
7218
|
__exports__["default"] = Model;
|
7128
7219
|
});
|
7129
|
-
|
7220
|
+
enifed("ember-data/system/model/states",
|
7130
7221
|
["exports"],
|
7131
7222
|
function(__exports__) {
|
7132
7223
|
"use strict";
|
@@ -7847,7 +7938,7 @@ define("ember-data/system/model/states",
|
|
7847
7938
|
|
7848
7939
|
__exports__["default"] = RootState;
|
7849
7940
|
});
|
7850
|
-
|
7941
|
+
enifed("ember-data/system/promise_proxies",
|
7851
7942
|
["exports"],
|
7852
7943
|
function(__exports__) {
|
7853
7944
|
"use strict";
|
@@ -7933,13 +8024,38 @@ define("ember-data/system/promise_proxies",
|
|
7933
8024
|
to the underlying manyArray.
|
7934
8025
|
Right now we proxy:
|
7935
8026
|
`reload()`
|
8027
|
+
`createRecord()`
|
8028
|
+
`on()`
|
8029
|
+
`one()`
|
8030
|
+
`trigger()`
|
8031
|
+
`off()`
|
8032
|
+
`has()`
|
7936
8033
|
*/
|
7937
8034
|
|
8035
|
+
function proxyToContent(method) {
|
8036
|
+
return function() {
|
8037
|
+
var content = get(this, 'content');
|
8038
|
+
return content[method].apply(content, arguments);
|
8039
|
+
};
|
8040
|
+
}
|
8041
|
+
|
7938
8042
|
var PromiseManyArray = PromiseArray.extend({
|
7939
8043
|
reload: function() {
|
7940
8044
|
//I don't think this should ever happen right now, but worth guarding if we refactor the async relationships
|
7941
8045
|
return get(this, 'content').reload();
|
7942
|
-
}
|
8046
|
+
},
|
8047
|
+
|
8048
|
+
createRecord: proxyToContent('createRecord'),
|
8049
|
+
|
8050
|
+
on: proxyToContent('on'),
|
8051
|
+
|
8052
|
+
one: proxyToContent('one'),
|
8053
|
+
|
8054
|
+
trigger: proxyToContent('trigger'),
|
8055
|
+
|
8056
|
+
off: proxyToContent('off'),
|
8057
|
+
|
8058
|
+
has: proxyToContent('has')
|
7943
8059
|
});
|
7944
8060
|
|
7945
8061
|
var promiseManyArray = function(promise, label) {
|
@@ -7956,7 +8072,7 @@ define("ember-data/system/promise_proxies",
|
|
7956
8072
|
__exports__.promiseObject = promiseObject;
|
7957
8073
|
__exports__.promiseManyArray = promiseManyArray;
|
7958
8074
|
});
|
7959
|
-
|
8075
|
+
enifed("ember-data/system/record_array_manager",
|
7960
8076
|
["ember-data/system/record_arrays","ember-data/system/map","exports"],
|
7961
8077
|
function(__dependency1__, __dependency2__, __exports__) {
|
7962
8078
|
"use strict";
|
@@ -7972,6 +8088,7 @@ define("ember-data/system/record_array_manager",
|
|
7972
8088
|
var OrderedSet = __dependency2__.OrderedSet;
|
7973
8089
|
var get = Ember.get;
|
7974
8090
|
var forEach = Ember.EnumerableUtils.forEach;
|
8091
|
+
var indexOf = Ember.EnumerableUtils.indexOf;
|
7975
8092
|
|
7976
8093
|
/**
|
7977
8094
|
@class RecordArrayManager
|
@@ -8224,6 +8341,19 @@ define("ember-data/system/record_array_manager",
|
|
8224
8341
|
this.updateFilter(array, type, filter);
|
8225
8342
|
},
|
8226
8343
|
|
8344
|
+
/**
|
8345
|
+
Unregister a FilteredRecordArray.
|
8346
|
+
So manager will not update this array.
|
8347
|
+
|
8348
|
+
@method unregisterFilteredRecordArray
|
8349
|
+
@param {DS.RecordArray} array
|
8350
|
+
*/
|
8351
|
+
unregisterFilteredRecordArray: function(array) {
|
8352
|
+
var recordArrays = this.filteredRecordArrays.get(array.type);
|
8353
|
+
var index = indexOf(recordArrays, array);
|
8354
|
+
recordArrays.splice(index, 1);
|
8355
|
+
},
|
8356
|
+
|
8227
8357
|
// Internally, we maintain a map of all unloaded IDs requested by
|
8228
8358
|
// a ManyArray. As the adapter loads data into the store, the
|
8229
8359
|
// store notifies any interested ManyArrays. When the ManyArray's
|
@@ -8269,7 +8399,7 @@ define("ember-data/system/record_array_manager",
|
|
8269
8399
|
return result;
|
8270
8400
|
}
|
8271
8401
|
});
|
8272
|
-
|
8402
|
+
enifed("ember-data/system/record_arrays",
|
8273
8403
|
["ember-data/system/record_arrays/record_array","ember-data/system/record_arrays/filtered_record_array","ember-data/system/record_arrays/adapter_populated_record_array","ember-data/system/record_arrays/many_array","exports"],
|
8274
8404
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
8275
8405
|
"use strict";
|
@@ -8287,7 +8417,7 @@ define("ember-data/system/record_arrays",
|
|
8287
8417
|
__exports__.AdapterPopulatedRecordArray = AdapterPopulatedRecordArray;
|
8288
8418
|
__exports__.ManyArray = ManyArray;
|
8289
8419
|
});
|
8290
|
-
|
8420
|
+
enifed("ember-data/system/record_arrays/adapter_populated_record_array",
|
8291
8421
|
["ember-data/system/record_arrays/record_array","exports"],
|
8292
8422
|
function(__dependency1__, __exports__) {
|
8293
8423
|
"use strict";
|
@@ -8299,7 +8429,7 @@ define("ember-data/system/record_arrays/adapter_populated_record_array",
|
|
8299
8429
|
var get = Ember.get;
|
8300
8430
|
|
8301
8431
|
function cloneNull(source) {
|
8302
|
-
var clone =
|
8432
|
+
var clone = Ember.create(null);
|
8303
8433
|
for (var key in source) {
|
8304
8434
|
clone[key] = source[key];
|
8305
8435
|
}
|
@@ -8350,7 +8480,7 @@ define("ember-data/system/record_arrays/adapter_populated_record_array",
|
|
8350
8480
|
}
|
8351
8481
|
});
|
8352
8482
|
});
|
8353
|
-
|
8483
|
+
enifed("ember-data/system/record_arrays/filtered_record_array",
|
8354
8484
|
["ember-data/system/record_arrays/record_array","exports"],
|
8355
8485
|
function(__dependency1__, __exports__) {
|
8356
8486
|
"use strict";
|
@@ -8418,10 +8548,23 @@ define("ember-data/system/record_arrays/filtered_record_array",
|
|
8418
8548
|
|
8419
8549
|
updateFilter: Ember.observer(function() {
|
8420
8550
|
Ember.run.once(this, this._updateFilter);
|
8421
|
-
}, 'filterFunction')
|
8551
|
+
}, 'filterFunction'),
|
8552
|
+
|
8553
|
+
/**
|
8554
|
+
@method _unregisterFromManager
|
8555
|
+
@private
|
8556
|
+
*/
|
8557
|
+
_unregisterFromManager: function(){
|
8558
|
+
this.manager.unregisterFilteredRecordArray(this);
|
8559
|
+
},
|
8560
|
+
|
8561
|
+
willDestroy: function(){
|
8562
|
+
this._unregisterFromManager();
|
8563
|
+
this._super();
|
8564
|
+
}
|
8422
8565
|
});
|
8423
8566
|
});
|
8424
|
-
|
8567
|
+
enifed("ember-data/system/record_arrays/many_array",
|
8425
8568
|
["ember-data/system/record_arrays/record_array","exports"],
|
8426
8569
|
function(__dependency1__, __exports__) {
|
8427
8570
|
"use strict";
|
@@ -8482,17 +8625,19 @@ define("ember-data/system/record_arrays/many_array",
|
|
8482
8625
|
*/
|
8483
8626
|
isPolymorphic: false,
|
8484
8627
|
|
8485
|
-
|
8628
|
+
/**
|
8629
|
+
The loading state of this array
|
8486
8630
|
|
8631
|
+
@property {Boolean} isLoaded
|
8632
|
+
*/
|
8487
8633
|
isLoaded: false,
|
8488
8634
|
|
8489
8635
|
/**
|
8490
8636
|
The relationship which manages this array.
|
8491
8637
|
|
8492
|
-
@property {
|
8638
|
+
@property {ManyRelationship} relationship
|
8493
8639
|
@private
|
8494
8640
|
*/
|
8495
|
-
|
8496
8641
|
relationship: null,
|
8497
8642
|
|
8498
8643
|
|
@@ -8558,14 +8703,14 @@ define("ember-data/system/record_arrays/many_array",
|
|
8558
8703
|
var record;
|
8559
8704
|
|
8560
8705
|
|
8561
|
-
record = store.createRecord
|
8706
|
+
record = store.createRecord(type, hash);
|
8562
8707
|
this.pushObject(record);
|
8563
8708
|
|
8564
8709
|
return record;
|
8565
8710
|
}
|
8566
8711
|
});
|
8567
8712
|
});
|
8568
|
-
|
8713
|
+
enifed("ember-data/system/record_arrays/record_array",
|
8569
8714
|
["ember-data/system/promise_proxies","exports"],
|
8570
8715
|
function(__dependency1__, __exports__) {
|
8571
8716
|
"use strict";
|
@@ -8773,7 +8918,7 @@ define("ember-data/system/record_arrays/record_array",
|
|
8773
8918
|
}
|
8774
8919
|
});
|
8775
8920
|
});
|
8776
|
-
|
8921
|
+
enifed("ember-data/system/relationship-meta",
|
8777
8922
|
["ember-inflector/system","exports"],
|
8778
8923
|
function(__dependency1__, __exports__) {
|
8779
8924
|
"use strict";
|
@@ -8808,7 +8953,7 @@ define("ember-data/system/relationship-meta",
|
|
8808
8953
|
|
8809
8954
|
__exports__.relationshipFromMeta = relationshipFromMeta;
|
8810
8955
|
});
|
8811
|
-
|
8956
|
+
enifed("ember-data/system/relationships",
|
8812
8957
|
["./relationships/belongs_to","./relationships/has_many","ember-data/system/relationships/ext","exports"],
|
8813
8958
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
8814
8959
|
"use strict";
|
@@ -8823,7 +8968,7 @@ define("ember-data/system/relationships",
|
|
8823
8968
|
__exports__.belongsTo = belongsTo;
|
8824
8969
|
__exports__.hasMany = hasMany;
|
8825
8970
|
});
|
8826
|
-
|
8971
|
+
enifed("ember-data/system/relationships/belongs_to",
|
8827
8972
|
["ember-data/system/model","exports"],
|
8828
8973
|
function(__dependency1__, __exports__) {
|
8829
8974
|
"use strict";
|
@@ -8929,7 +9074,7 @@ define("ember-data/system/relationships/belongs_to",
|
|
8929
9074
|
|
8930
9075
|
__exports__["default"] = belongsTo;
|
8931
9076
|
});
|
8932
|
-
|
9077
|
+
enifed("ember-data/system/relationships/ext",
|
8933
9078
|
["ember-data/system/relationship-meta","ember-data/system/model","ember-data/system/map"],
|
8934
9079
|
function(__dependency1__, __dependency2__, __dependency3__) {
|
8935
9080
|
"use strict";
|
@@ -9040,10 +9185,10 @@ define("ember-data/system/relationships/ext",
|
|
9040
9185
|
},
|
9041
9186
|
|
9042
9187
|
inverseMap: Ember.computed(function() {
|
9043
|
-
return
|
9188
|
+
return Ember.create(null);
|
9044
9189
|
}),
|
9045
9190
|
|
9046
|
-
|
9191
|
+
/**
|
9047
9192
|
Find the relationship which is the inverse of the one asked for.
|
9048
9193
|
|
9049
9194
|
For example, if you define models like this:
|
@@ -9371,7 +9516,7 @@ define("ember-data/system/relationships/ext",
|
|
9371
9516
|
});
|
9372
9517
|
|
9373
9518
|
var fields = Ember.get(App.Blog, 'fields');
|
9374
|
-
fields.forEach(function(
|
9519
|
+
fields.forEach(function(kind, field) {
|
9375
9520
|
console.log(field, kind);
|
9376
9521
|
});
|
9377
9522
|
|
@@ -9480,7 +9625,7 @@ define("ember-data/system/relationships/ext",
|
|
9480
9625
|
|
9481
9626
|
});
|
9482
9627
|
});
|
9483
|
-
|
9628
|
+
enifed("ember-data/system/relationships/has_many",
|
9484
9629
|
["ember-data/system/model","exports"],
|
9485
9630
|
function(__dependency1__, __exports__) {
|
9486
9631
|
"use strict";
|
@@ -9615,7 +9760,7 @@ define("ember-data/system/relationships/has_many",
|
|
9615
9760
|
|
9616
9761
|
__exports__["default"] = hasMany;
|
9617
9762
|
});
|
9618
|
-
|
9763
|
+
enifed("ember-data/system/relationships/relationship",
|
9619
9764
|
["ember-data/system/promise_proxies","ember-data/system/map","exports"],
|
9620
9765
|
function(__dependency1__, __dependency2__, __exports__) {
|
9621
9766
|
"use strict";
|
@@ -9629,7 +9774,6 @@ define("ember-data/system/relationships/relationship",
|
|
9629
9774
|
this.key = relationshipMeta.key;
|
9630
9775
|
this.inverseKey = inverseKey;
|
9631
9776
|
this.record = record;
|
9632
|
-
this.key = relationshipMeta.key;
|
9633
9777
|
this.isAsync = relationshipMeta.options.async;
|
9634
9778
|
this.relationshipMeta = relationshipMeta;
|
9635
9779
|
//This probably breaks for polymorphic relationship in complex scenarios, due to
|
@@ -9663,20 +9807,24 @@ define("ember-data/system/relationships/relationship",
|
|
9663
9807
|
},
|
9664
9808
|
|
9665
9809
|
removeRecords: function(records){
|
9666
|
-
var
|
9667
|
-
|
9668
|
-
|
9669
|
-
|
9810
|
+
var length = Ember.get(records, 'length');
|
9811
|
+
var record;
|
9812
|
+
for (var i = 0; i < length; i++){
|
9813
|
+
record = records[i];
|
9814
|
+
this.removeRecord(record);
|
9815
|
+
}
|
9670
9816
|
},
|
9671
9817
|
|
9672
9818
|
addRecords: function(records, idx){
|
9673
|
-
var
|
9674
|
-
|
9675
|
-
|
9819
|
+
var length = Ember.get(records, 'length');
|
9820
|
+
var record;
|
9821
|
+
for (var i = 0; i < length; i++){
|
9822
|
+
record = records[i];
|
9823
|
+
this.addRecord(record, idx);
|
9676
9824
|
if (idx !== undefined) {
|
9677
9825
|
idx++;
|
9678
9826
|
}
|
9679
|
-
}
|
9827
|
+
}
|
9680
9828
|
},
|
9681
9829
|
|
9682
9830
|
addRecord: function(record, idx) {
|
@@ -9729,7 +9877,7 @@ define("ember-data/system/relationships/relationship",
|
|
9729
9877
|
},
|
9730
9878
|
|
9731
9879
|
updateLink: function(link) {
|
9732
|
-
|
9880
|
+
if (link !== this.link) {
|
9733
9881
|
this.link = link;
|
9734
9882
|
this.linkPromise = null;
|
9735
9883
|
this.record.notifyPropertyChange(this.key);
|
@@ -9766,7 +9914,7 @@ define("ember-data/system/relationships/relationship",
|
|
9766
9914
|
this.manyArray.isPolymorphic = this.isPolymorphic;
|
9767
9915
|
};
|
9768
9916
|
|
9769
|
-
ManyRelationship.prototype =
|
9917
|
+
ManyRelationship.prototype = Ember.create(Relationship.prototype);
|
9770
9918
|
ManyRelationship.prototype.constructor = ManyRelationship;
|
9771
9919
|
ManyRelationship.prototype._super$constructor = Relationship;
|
9772
9920
|
|
@@ -9864,7 +10012,9 @@ define("ember-data/system/relationships/relationship",
|
|
9864
10012
|
});
|
9865
10013
|
} else {
|
9866
10014
|
|
9867
|
-
this.manyArray.
|
10015
|
+
if (!this.manyArray.get('isDestroyed')) {
|
10016
|
+
this.manyArray.set('isLoaded', true);
|
10017
|
+
}
|
9868
10018
|
return this.manyArray;
|
9869
10019
|
}
|
9870
10020
|
};
|
@@ -9876,7 +10026,7 @@ define("ember-data/system/relationships/relationship",
|
|
9876
10026
|
this.inverseRecord = null;
|
9877
10027
|
};
|
9878
10028
|
|
9879
|
-
BelongsToRelationship.prototype =
|
10029
|
+
BelongsToRelationship.prototype = Ember.create(Relationship.prototype);
|
9880
10030
|
BelongsToRelationship.prototype.constructor = BelongsToRelationship;
|
9881
10031
|
BelongsToRelationship.prototype._super$constructor = Relationship;
|
9882
10032
|
|
@@ -9916,9 +10066,9 @@ define("ember-data/system/relationships/relationship",
|
|
9916
10066
|
|
9917
10067
|
BelongsToRelationship.prototype._super$removeRecordFromOwn = Relationship.prototype.removeRecordFromOwn;
|
9918
10068
|
BelongsToRelationship.prototype.removeRecordFromOwn = function(record) {
|
9919
|
-
if (!this.members.has(record)){ return;}
|
9920
|
-
this._super$removeRecordFromOwn(record);
|
10069
|
+
if (!this.members.has(record)) { return; }
|
9921
10070
|
this.inverseRecord = null;
|
10071
|
+
this._super$removeRecordFromOwn(record);
|
9922
10072
|
};
|
9923
10073
|
|
9924
10074
|
BelongsToRelationship.prototype.findRecord = function() {
|
@@ -9932,7 +10082,9 @@ define("ember-data/system/relationships/relationship",
|
|
9932
10082
|
BelongsToRelationship.prototype.fetchLink = function() {
|
9933
10083
|
var self = this;
|
9934
10084
|
return this.store.findBelongsTo(this.record, this.link, this.relationshipMeta).then(function(record){
|
9935
|
-
|
10085
|
+
if (record) {
|
10086
|
+
self.addRecord(record);
|
10087
|
+
}
|
9936
10088
|
return record;
|
9937
10089
|
});
|
9938
10090
|
};
|
@@ -9992,7 +10144,7 @@ define("ember-data/system/relationships/relationship",
|
|
9992
10144
|
__exports__.BelongsToRelationship = BelongsToRelationship;
|
9993
10145
|
__exports__.createRelationshipFor = createRelationshipFor;
|
9994
10146
|
});
|
9995
|
-
|
10147
|
+
enifed("ember-data/system/store",
|
9996
10148
|
["ember-data/system/adapter","ember-inflector/system/string","ember-data/system/map","ember-data/system/promise_proxies","exports"],
|
9997
10149
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __exports__) {
|
9998
10150
|
"use strict";
|
@@ -10073,14 +10225,6 @@ define("ember-data/system/store",
|
|
10073
10225
|
});
|
10074
10226
|
```
|
10075
10227
|
|
10076
|
-
If your application has multiple `DS.Store` instances (an unusual case), you can
|
10077
|
-
specify which store should be used:
|
10078
|
-
|
10079
|
-
```javascript
|
10080
|
-
store.find('person', 123).then(function (person) {
|
10081
|
-
});
|
10082
|
-
```
|
10083
|
-
|
10084
10228
|
By default, the store will talk to your backend using a standard
|
10085
10229
|
REST mechanism. You can customize how the store talks to your
|
10086
10230
|
backend by specifying a custom adapter:
|
@@ -10420,6 +10564,25 @@ define("ember-data/system/store",
|
|
10420
10564
|
return this.findById(type, coerceId(id), preload);
|
10421
10565
|
},
|
10422
10566
|
|
10567
|
+
/**
|
10568
|
+
This method returns a fresh record for a given type and id combination.
|
10569
|
+
|
10570
|
+
If a record is available for the given type/id combination, then it will fetch this record from the store then reload it. If there's no record corresponding in the store it will simply call store.find.
|
10571
|
+
|
10572
|
+
@method fetch
|
10573
|
+
@param {String or subclass of DS.Model} type
|
10574
|
+
@param {Object|String|Integer|null} id
|
10575
|
+
@param {Object} preload - optional set of attributes and relationships passed in either as IDs or as actual models
|
10576
|
+
@return {Promise} promise
|
10577
|
+
*/
|
10578
|
+
fetch: function(type, id, preload) {
|
10579
|
+
if (this.hasRecordForId(type, id)) {
|
10580
|
+
return this.getById(type, id).reload();
|
10581
|
+
} else {
|
10582
|
+
return this.find(type, id, preload);
|
10583
|
+
}
|
10584
|
+
},
|
10585
|
+
|
10423
10586
|
/**
|
10424
10587
|
This method returns a record for a given type and id combination.
|
10425
10588
|
|
@@ -10494,7 +10657,7 @@ define("ember-data/system/store",
|
|
10494
10657
|
},
|
10495
10658
|
|
10496
10659
|
scheduleFetchMany: function(records) {
|
10497
|
-
return
|
10660
|
+
return Promise.all(map(records, this.scheduleFetch, this));
|
10498
10661
|
},
|
10499
10662
|
|
10500
10663
|
scheduleFetch: function(record) {
|
@@ -10693,7 +10856,7 @@ define("ember-data/system/store",
|
|
10693
10856
|
*/
|
10694
10857
|
findMany: function(records) {
|
10695
10858
|
var store = this;
|
10696
|
-
return Promise.all(
|
10859
|
+
return Promise.all(map(records, function(record) {
|
10697
10860
|
return store._findByRecord(record);
|
10698
10861
|
}));
|
10699
10862
|
},
|
@@ -10810,14 +10973,17 @@ define("ember-data/system/store",
|
|
10810
10973
|
},
|
10811
10974
|
|
10812
10975
|
/**
|
10813
|
-
This method returns a filtered array that contains all of the
|
10814
|
-
for a given type.
|
10976
|
+
This method returns a filtered array that contains all of the
|
10977
|
+
known records for a given type in the store.
|
10815
10978
|
|
10816
|
-
Note that because it's just a filter,
|
10817
|
-
created records of the type
|
10979
|
+
Note that because it's just a filter, the result will contain any
|
10980
|
+
locally created records of the type, however, it will not make a
|
10981
|
+
request to the backend to retrieve additional records. If you
|
10982
|
+
would like to request all the records from the backend please use
|
10983
|
+
[store.find](#method_find).
|
10818
10984
|
|
10819
10985
|
Also note that multiple calls to `all` for a given type will always
|
10820
|
-
return the same RecordArray
|
10986
|
+
return the same `RecordArray`.
|
10821
10987
|
|
10822
10988
|
Example
|
10823
10989
|
|
@@ -10873,10 +11039,18 @@ define("ember-data/system/store",
|
|
10873
11039
|
remains up to date as new records are loaded into the store or created
|
10874
11040
|
locally.
|
10875
11041
|
|
10876
|
-
The
|
11042
|
+
The filter function takes a materialized record, and returns true
|
10877
11043
|
if the record should be included in the filter and false if it should
|
10878
11044
|
not.
|
10879
11045
|
|
11046
|
+
Example
|
11047
|
+
|
11048
|
+
```javascript
|
11049
|
+
store.filter('post', function(post) {
|
11050
|
+
return post.get('unread');
|
11051
|
+
});
|
11052
|
+
```
|
11053
|
+
|
10880
11054
|
The filter function is called once on all records for the type when
|
10881
11055
|
it is created, and then once on each newly loaded or created record.
|
10882
11056
|
|
@@ -10884,14 +11058,19 @@ define("ember-data/system/store",
|
|
10884
11058
|
filter function will be invoked again to determine whether it should
|
10885
11059
|
still be in the array.
|
10886
11060
|
|
10887
|
-
Optionally you can pass a query which
|
10888
|
-
|
10889
|
-
|
11061
|
+
Optionally you can pass a query, which is the equivalent of calling
|
11062
|
+
[find](#method_find) with that same query, to fetch additional records
|
11063
|
+
from the server. The results returned by the server could then appear
|
11064
|
+
in the filter if they match the filter function.
|
11065
|
+
|
11066
|
+
The query itself is not used to filter records, it's only sent to your
|
11067
|
+
server for you to be able to do server-side filtering. The filter
|
11068
|
+
function will be applied on the returned results regardless.
|
10890
11069
|
|
10891
11070
|
Example
|
10892
11071
|
|
10893
11072
|
```javascript
|
10894
|
-
store.filter('post', {unread: true}, function(post) {
|
11073
|
+
store.filter('post', { unread: true }, function(post) {
|
10895
11074
|
return post.get('unread');
|
10896
11075
|
}).then(function(unreadPosts) {
|
10897
11076
|
unreadPosts.get('length'); // 5
|
@@ -11134,9 +11313,9 @@ define("ember-data/system/store",
|
|
11134
11313
|
if (typeMap) { return typeMap; }
|
11135
11314
|
|
11136
11315
|
typeMap = {
|
11137
|
-
idToRecord:
|
11316
|
+
idToRecord: Ember.create(null),
|
11138
11317
|
records: [],
|
11139
|
-
metadata:
|
11318
|
+
metadata: Ember.create(null),
|
11140
11319
|
type: type
|
11141
11320
|
};
|
11142
11321
|
|
@@ -11270,6 +11449,7 @@ define("ember-data/system/store",
|
|
11270
11449
|
// merged into the existing data, not replace it.
|
11271
11450
|
|
11272
11451
|
var type = this.modelFor(typeName);
|
11452
|
+
var filter = Ember.EnumerableUtils.filter;
|
11273
11453
|
|
11274
11454
|
// If the payload contains relationships that are specified as
|
11275
11455
|
// IDs, normalizeRelationships will convert them into DS.Model instances
|
@@ -11278,6 +11458,7 @@ define("ember-data/system/store",
|
|
11278
11458
|
|
11279
11459
|
data = normalizeRelationships(this, type, data);
|
11280
11460
|
|
11461
|
+
|
11281
11462
|
// Actually load the record into the store.
|
11282
11463
|
|
11283
11464
|
this._load(type, data, _partial);
|
@@ -11407,7 +11588,6 @@ define("ember-data/system/store",
|
|
11407
11588
|
@return {DS.Model} the record that was updated.
|
11408
11589
|
*/
|
11409
11590
|
update: function(type, data) {
|
11410
|
-
|
11411
11591
|
return this.push(type, data, true);
|
11412
11592
|
},
|
11413
11593
|
|
@@ -11612,7 +11792,7 @@ define("ember-data/system/store",
|
|
11612
11792
|
if (isNone(id) || id instanceof Model) {
|
11613
11793
|
return;
|
11614
11794
|
}
|
11615
|
-
|
11795
|
+
|
11616
11796
|
var type;
|
11617
11797
|
|
11618
11798
|
if (typeof id === 'number' || typeof id === 'string') {
|
@@ -11633,10 +11813,11 @@ define("ember-data/system/store",
|
|
11633
11813
|
}
|
11634
11814
|
|
11635
11815
|
function deserializeRecordIds(store, data, key, relationship, ids) {
|
11636
|
-
if (
|
11816
|
+
if (isNone(ids)) {
|
11637
11817
|
return;
|
11638
11818
|
}
|
11639
|
-
|
11819
|
+
|
11820
|
+
for (var i=0, l=ids.length; i<l; i++) {
|
11640
11821
|
deserializeRecordId(store, ids, i, relationship, ids[i]);
|
11641
11822
|
}
|
11642
11823
|
}
|
@@ -11767,6 +11948,11 @@ define("ember-data/system/store",
|
|
11767
11948
|
|
11768
11949
|
return promise.then(function(adapterPayload) {
|
11769
11950
|
var payload = serializer.extract(store, relationship.type, adapterPayload, null, 'findBelongsTo');
|
11951
|
+
|
11952
|
+
if (!payload) {
|
11953
|
+
return null;
|
11954
|
+
}
|
11955
|
+
|
11770
11956
|
var record = store.push(relationship.type, payload);
|
11771
11957
|
return record;
|
11772
11958
|
}, null, "DS: Extract payload of " + record + " : " + relationship.type);
|
@@ -11831,7 +12017,9 @@ define("ember-data/system/store",
|
|
11831
12017
|
return record;
|
11832
12018
|
}, function(reason) {
|
11833
12019
|
if (reason instanceof InvalidError) {
|
11834
|
-
|
12020
|
+
var errors = serializer.extractErrors(store, type, reason.errors, get(record, 'id'));
|
12021
|
+
store.recordWasInvalid(record, errors);
|
12022
|
+
reason = new InvalidError(errors);
|
11835
12023
|
} else {
|
11836
12024
|
store.recordWasError(record, reason);
|
11837
12025
|
}
|
@@ -11866,7 +12054,7 @@ define("ember-data/system/store",
|
|
11866
12054
|
__exports__.Store = Store;
|
11867
12055
|
__exports__["default"] = Store;
|
11868
12056
|
});
|
11869
|
-
|
12057
|
+
enifed("ember-data/transforms",
|
11870
12058
|
["ember-data/transforms/base","ember-data/transforms/number","ember-data/transforms/date","ember-data/transforms/string","ember-data/transforms/boolean","exports"],
|
11871
12059
|
function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__, __exports__) {
|
11872
12060
|
"use strict";
|
@@ -11882,7 +12070,7 @@ define("ember-data/transforms",
|
|
11882
12070
|
__exports__.StringTransform = StringTransform;
|
11883
12071
|
__exports__.BooleanTransform = BooleanTransform;
|
11884
12072
|
});
|
11885
|
-
|
12073
|
+
enifed("ember-data/transforms/base",
|
11886
12074
|
["exports"],
|
11887
12075
|
function(__exports__) {
|
11888
12076
|
"use strict";
|
@@ -11958,7 +12146,7 @@ define("ember-data/transforms/base",
|
|
11958
12146
|
deserialize: Ember.required()
|
11959
12147
|
});
|
11960
12148
|
});
|
11961
|
-
|
12149
|
+
enifed("ember-data/transforms/boolean",
|
11962
12150
|
["ember-data/transforms/base","exports"],
|
11963
12151
|
function(__dependency1__, __exports__) {
|
11964
12152
|
"use strict";
|
@@ -12005,7 +12193,7 @@ define("ember-data/transforms/boolean",
|
|
12005
12193
|
}
|
12006
12194
|
});
|
12007
12195
|
});
|
12008
|
-
|
12196
|
+
enifed("ember-data/transforms/date",
|
12009
12197
|
["ember-data/transforms/base","exports"],
|
12010
12198
|
function(__dependency1__, __exports__) {
|
12011
12199
|
"use strict";
|
@@ -12057,7 +12245,6 @@ define("ember-data/transforms/date",
|
|
12057
12245
|
}
|
12058
12246
|
|
12059
12247
|
__exports__["default"] = Transform.extend({
|
12060
|
-
|
12061
12248
|
deserialize: function(serialized) {
|
12062
12249
|
var type = typeof serialized;
|
12063
12250
|
|
@@ -12083,7 +12270,7 @@ define("ember-data/transforms/date",
|
|
12083
12270
|
}
|
12084
12271
|
});
|
12085
12272
|
});
|
12086
|
-
|
12273
|
+
enifed("ember-data/transforms/number",
|
12087
12274
|
["ember-data/transforms/base","exports"],
|
12088
12275
|
function(__dependency1__, __exports__) {
|
12089
12276
|
"use strict";
|
@@ -12122,7 +12309,7 @@ define("ember-data/transforms/number",
|
|
12122
12309
|
}
|
12123
12310
|
});
|
12124
12311
|
});
|
12125
|
-
|
12312
|
+
enifed("ember-data/transforms/string",
|
12126
12313
|
["ember-data/transforms/base","exports"],
|
12127
12314
|
function(__dependency1__, __exports__) {
|
12128
12315
|
"use strict";
|
@@ -12159,7 +12346,7 @@ define("ember-data/transforms/string",
|
|
12159
12346
|
}
|
12160
12347
|
});
|
12161
12348
|
});
|
12162
|
-
|
12349
|
+
enifed("ember-inflector",
|
12163
12350
|
["./system","./helpers","./ext/string","exports"],
|
12164
12351
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
12165
12352
|
"use strict";
|
@@ -12180,7 +12367,7 @@ define("ember-inflector",
|
|
12180
12367
|
__exports__.pluralize = pluralize;
|
12181
12368
|
__exports__.singularize = singularize;
|
12182
12369
|
});
|
12183
|
-
|
12370
|
+
enifed("ember-inflector/ext/string",
|
12184
12371
|
["../system/string"],
|
12185
12372
|
function(__dependency1__) {
|
12186
12373
|
"use strict";
|
@@ -12209,7 +12396,7 @@ define("ember-inflector/ext/string",
|
|
12209
12396
|
};
|
12210
12397
|
}
|
12211
12398
|
});
|
12212
|
-
|
12399
|
+
enifed("ember-inflector/helpers",
|
12213
12400
|
["./system/string"],
|
12214
12401
|
function(__dependency1__) {
|
12215
12402
|
"use strict";
|
@@ -12248,7 +12435,7 @@ define("ember-inflector/helpers",
|
|
12248
12435
|
*/
|
12249
12436
|
Ember.Handlebars.helper('pluralize', pluralize);
|
12250
12437
|
});
|
12251
|
-
|
12438
|
+
enifed("ember-inflector/system",
|
12252
12439
|
["./system/inflector","./system/string","./system/inflections","exports"],
|
12253
12440
|
function(__dependency1__, __dependency2__, __dependency3__, __exports__) {
|
12254
12441
|
"use strict";
|
@@ -12267,7 +12454,7 @@ define("ember-inflector/system",
|
|
12267
12454
|
__exports__.pluralize = pluralize;
|
12268
12455
|
__exports__.defaultRules = defaultRules;
|
12269
12456
|
});
|
12270
|
-
|
12457
|
+
enifed("ember-inflector/system/inflections",
|
12271
12458
|
["exports"],
|
12272
12459
|
function(__exports__) {
|
12273
12460
|
"use strict";
|
@@ -12350,7 +12537,7 @@ define("ember-inflector/system/inflections",
|
|
12350
12537
|
]
|
12351
12538
|
};
|
12352
12539
|
});
|
12353
|
-
|
12540
|
+
enifed("ember-inflector/system/inflector",
|
12354
12541
|
["exports"],
|
12355
12542
|
function(__exports__) {
|
12356
12543
|
"use strict";
|
@@ -12651,7 +12838,7 @@ define("ember-inflector/system/inflector",
|
|
12651
12838
|
|
12652
12839
|
__exports__["default"] = Inflector;
|
12653
12840
|
});
|
12654
|
-
|
12841
|
+
enifed("ember-inflector/system/string",
|
12655
12842
|
["./inflector","exports"],
|
12656
12843
|
function(__dependency1__, __exports__) {
|
12657
12844
|
"use strict";
|