Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7ecf97d

Browse files
committed
Closes#249
Stable Version 1.5.0.
1 parent0c9d4e4 commit7ecf97d

File tree

12 files changed

+196
-68
lines changed

12 files changed

+196
-68
lines changed

‎CHANGELOG.md‎

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
1-
#####1.4.3 - 30 November 2014
1+
#####1.5.0 - 01 December 2014
2+
3+
######Backwards compatible API changes
4+
- Added DSHttpAdapter.getPath and DSLocalStorageAdapter.getPath
25

36
######Backwards compatible bug fixes
4-
-#253 - Injecting an item with relationships a second time breaks relationships
7+
- Removed console.logs left over from a previous commit
8+
9+
#####1.4.3 - 30 November 2014
510

611
######Backwards compatible bug fixes
7-
-Fixed "allowSimpleWhere" default not being set
12+
-#253 - Injecting an item with relationships a second time breaks relationships
813

914
#####1.4.2 - 18 November 2014
1015

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Unlike Backbone and Ember Models, angular-data does not require the use of gette
88

99
Supporting relations, computed properties, model lifecycle control and a slew of other features, angular-data is the tool for giving your data the respect it deserves.
1010

11-
__Latest Release:__[1.4.3](https://github.com/jmdobry/angular-data/releases/tag/1.4.3)
11+
__Latest Release:__[1.5.0](https://github.com/jmdobry/angular-data/releases/tag/1.5.0)
1212

1313
Angular-data is finally 1.0.!
1414

‎bower.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author":"Jason Dobry",
33
"name":"angular-data",
44
"description":"Data store for Angular.js.",
5-
"version":"1.4.3",
5+
"version":"1.5.0",
66
"homepage":"http://angular-data.pseudobry.com/",
77
"repository": {
88
"type":"git",

‎dist/angular-data.js‎

Lines changed: 91 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
*@author Jason Dobry <jason.dobry@gmail.com>
33
*@file angular-data.js
4-
*@version 1.4.3 - Homepage <http://angular-data.pseudobry.com/>
4+
*@version 1.5.0 - 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
*
@@ -1891,6 +1891,36 @@ function DSHttpAdapterProvider() {
18911891

18921892
this.$get=['$http','$log','DSUtils',function($http,$log,DSUtils){
18931893

1894+
/**
1895+
*@doc method
1896+
*@id DSHttpAdapter.methods:getPath
1897+
*@name getPath
1898+
*@description
1899+
* Return the path that would be used by this adapter for a given operation.
1900+
*
1901+
* ## Signature:
1902+
* ```js
1903+
* DSHttpAdapter.getPath(method, resourceConfig, id|attrs|params, options))
1904+
* ```
1905+
*
1906+
*@param {string} method The name of the method .
1907+
*@param {object} resourceConfig The object returned by DS.defineResource.
1908+
*@param {string|object} id|attrs|params The id, attrs, or params that you would pass into the method.
1909+
*@param {object} options Configuration options.
1910+
*@returns {string} The path.
1911+
*/
1912+
functiongetPath(method,resourceConfig,id,options){
1913+
options=options||{};
1914+
varargs=[
1915+
options.baseUrl||resourceConfig.baseUrl,
1916+
resourceConfig.getEndpoint((DSUtils.isString(id)||DSUtils.isNumber(id)||method==='create') ?id :null,options)
1917+
];
1918+
if(method==='find'||method==='update'||method==='destroy'){
1919+
args.push(id);
1920+
}
1921+
returnDSUtils.makePath.apply(DSUtils,args);
1922+
}
1923+
18941924
/**
18951925
*@doc interface
18961926
*@id DSHttpAdapter
@@ -1909,6 +1939,8 @@ function DSHttpAdapterProvider() {
19091939
*/
19101940
defaults:defaults,
19111941

1942+
getPath:getPath,
1943+
19121944
/**
19131945
*@doc method
19141946
*@id DSHttpAdapter.methods:HTTP
@@ -2072,7 +2104,7 @@ function DSHttpAdapterProvider() {
20722104
find:function(resourceConfig,id,options){
20732105
options=options||{};
20742106
returnthis.GET(
2075-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(id,options),id),
2107+
getPath('find',resourceConfig,id,options),
20762108
options
20772109
);
20782110
},
@@ -2109,7 +2141,7 @@ function DSHttpAdapterProvider() {
21092141
DSUtils.deepMixIn(options.params,params);
21102142
}
21112143
returnthis.GET(
2112-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(null,options)),
2144+
getPath('findAll',resourceConfig,params,options),
21132145
options
21142146
);
21152147
},
@@ -2141,7 +2173,7 @@ function DSHttpAdapterProvider() {
21412173
create:function(resourceConfig,attrs,options){
21422174
options=options||{};
21432175
returnthis.POST(
2144-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(attrs,options)),
2176+
getPath('create',resourceConfig,attrs,options),
21452177
attrs,
21462178
options
21472179
);
@@ -2175,7 +2207,7 @@ function DSHttpAdapterProvider() {
21752207
update:function(resourceConfig,id,attrs,options){
21762208
options=options||{};
21772209
returnthis.PUT(
2178-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(id,options),id),
2210+
getPath('update',resourceConfig,id,options),
21792211
attrs,
21802212
options
21812213
);
@@ -2214,7 +2246,7 @@ function DSHttpAdapterProvider() {
22142246
DSUtils.deepMixIn(options.params,params);
22152247
}
22162248
returnthis.PUT(
2217-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(null,options)),
2249+
getPath('updateAll',resourceConfig,attrs,options),
22182250
attrs,
22192251
options
22202252
);
@@ -2247,7 +2279,7 @@ function DSHttpAdapterProvider() {
22472279
destroy:function(resourceConfig,id,options){
22482280
options=options||{};
22492281
returnthis.DEL(
2250-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(id,options),id),
2282+
getPath('destroy',resourceConfig,id,options),
22512283
options
22522284
);
22532285
},
@@ -2284,7 +2316,7 @@ function DSHttpAdapterProvider() {
22842316
DSUtils.deepMixIn(options.params,params);
22852317
}
22862318
returnthis.DEL(
2287-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(null,options)),
2319+
getPath('destroyAll',resourceConfig,params,options),
22882320
options
22892321
);
22902322
}
@@ -2304,6 +2336,36 @@ function DSLocalStorageAdapterProvider() {
23042336

23052337
this.$get=['$q','DSUtils','DSErrors',function($q,DSUtils){
23062338

2339+
/**
2340+
*@doc method
2341+
*@id DSLocalStorageAdapter.methods:getPath
2342+
*@name getPath
2343+
*@description
2344+
* Return the path that would be used by this adapter for a given operation.
2345+
*
2346+
* ## Signature:
2347+
* ```js
2348+
* DSLocalStorageAdapter.getPath(method, resourceConfig, id|attrs|params, options))
2349+
* ```
2350+
*
2351+
*@param {string} method The name of the method .
2352+
*@param {object} resourceConfig The object returned by DS.defineResource.
2353+
*@param {string|object} id|attrs|params The id, attrs, or params that you would pass into the method.
2354+
*@param {object} options Configuration options.
2355+
*@returns {string} The path.
2356+
*/
2357+
functiongetPath(method,resourceConfig,id,options){
2358+
options=options||{};
2359+
varargs=[
2360+
options.baseUrl||resourceConfig.baseUrl,
2361+
resourceConfig.getEndpoint((DSUtils.isString(id)||DSUtils.isNumber(id)||method==='create') ?id :null,options)
2362+
];
2363+
if(method==='find'||method==='update'||method==='destroy'){
2364+
args.push(id);
2365+
}
2366+
returnDSUtils.makePath.apply(DSUtils,args);
2367+
}
2368+
23072369
/**
23082370
*@doc interface
23092371
*@id DSLocalStorageAdapter
@@ -2454,7 +2516,7 @@ function DSLocalStorageAdapterProvider() {
24542516
*/
24552517
find:functionfind(resourceConfig,id,options){
24562518
options=options||{};
2457-
returnthis.GET(DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.endpoint,id)).then(function(item){
2519+
returnthis.GET(getPath('find',resourceConfig,id,options)).then(function(item){
24582520
if(!item){
24592521
return$q.reject(newError('Not Found!'));
24602522
}else{
@@ -2493,7 +2555,7 @@ function DSLocalStorageAdapterProvider() {
24932555
varitems=[];
24942556
varids=DSUtils.keys(_this.getIds(resourceConfig.name,options));
24952557
DSUtils.forEach(ids,function(id){
2496-
varitemJson=localStorage.getItem(DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(id,options),id));
2558+
varitemJson=localStorage.getItem(getPath('find',resourceConfig,id,options));
24972559
if(itemJson){
24982560
items.push(DSUtils.fromJson(itemJson));
24992561
}
@@ -2536,15 +2598,19 @@ function DSLocalStorageAdapterProvider() {
25362598
*/
25372599
create:function(resourceConfig,attrs,options){
25382600
var_this=this;
2539-
attrs[resourceConfig.idAttribute]=attrs[resourceConfig.idAttribute]||DSUtils.guid();
2601+
varid=attrs[resourceConfig.idAttribute];
25402602
options=options||{};
2541-
returnthis.PUT(
2542-
DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(attrs,options),attrs[resourceConfig.idAttribute]),
2543-
attrs
2544-
).then(function(item){
2545-
_this.ensureId(item[resourceConfig.idAttribute],resourceConfig.name,options);
2546-
returnitem;
2547-
});
2603+
return_this.GET(getPath('find',resourceConfig,id,options)).then(function(item){
2604+
if(item){
2605+
DSUtils.deepMixIn(item,attrs);
2606+
}else{
2607+
attrs[resourceConfig.idAttribute]=id=id||DSUtils.guid();
2608+
}
2609+
return_this.PUT(getPath('update',resourceConfig,id,options),item||attrs);
2610+
}).then(function(item){
2611+
_this.ensureId(item[resourceConfig.idAttribute],resourceConfig.name,options);
2612+
returnitem;
2613+
});
25482614
},
25492615

25502616
/**
@@ -2582,9 +2648,13 @@ function DSLocalStorageAdapterProvider() {
25822648
update:function(resourceConfig,id,attrs,options){
25832649
options=options||{};
25842650
var_this=this;
2585-
return_this.find(resourceConfig,id,options).then(function(item){
2651+
return_this.GET(getPath('find',resourceConfig,id,options)).then(function(item){
2652+
item=item||{};
25862653
DSUtils.deepMixIn(item,attrs);
2587-
return_this.PUT(DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(id,options),id),item);
2654+
return_this.PUT(getPath('update',resourceConfig,id,options),item);
2655+
}).then(function(item){
2656+
_this.ensureId(item[resourceConfig.idAttribute],resourceConfig.name,options);
2657+
returnitem;
25882658
});
25892659
},
25902660

@@ -2653,7 +2723,7 @@ function DSLocalStorageAdapterProvider() {
26532723
*/
26542724
destroy:function(resourceConfig,id,options){
26552725
options=options||{};
2656-
returnthis.DEL(DSUtils.makePath(options.baseUrl||resourceConfig.baseUrl,resourceConfig.getEndpoint(id,options),id));
2726+
returnthis.DEL(getPath('destroy',resourceConfig,id,options));
26572727
},
26582728

26592729
/**
@@ -6814,7 +6884,6 @@ function _link(definition, injected, options) {
68146884
* the items that were injected into the data store.
68156885
*/
68166886
functioninject(resourceName,attrs,options){
6817-
console.log('inject',resourceName,attrs);
68186887
varDS=this;
68196888
varIA=DS.errors.IA;
68206889
vardefinition=DS.definitions[resourceName];
@@ -6847,9 +6916,7 @@ function inject(resourceName, attrs, options) {
68476916
resource.collectionModified=DS.utils.updateTimestamp(resource.collectionModified);
68486917
}
68496918

6850-
console.log(options);
68516919
if(options.linkInverse&&typeofoptions.linkInverse==='boolean'){
6852-
console.log('linkInverse',typeofoptions.linkInverse,options.linkInverse);
68536920
if(DS.utils.isArray(injected)){
68546921
if(injected.length){
68556922
DS.linkInverse(definition.name,injected[0][definition.idAttribute]);
@@ -6859,8 +6926,6 @@ function inject(resourceName, attrs, options) {
68596926
}
68606927
}
68616928

6862-
console.log(injected);
6863-
68646929
if(DS.utils.isArray(injected)){
68656930
DS.utils.forEach(injected,function(injectedI){
68666931
_link.call(DS,definition,injectedI,options);
@@ -7072,7 +7137,6 @@ function _link(definition, linked, relations) {
70727137
*@returns {object|array} A reference to the item with its linked relations.
70737138
*/
70747139
functionlink(resourceName,id,relations){
7075-
console.log('link',resourceName,id);
70767140
varDS=this;
70777141
varIA=DS.errors.IA;
70787142
vardefinition=DS.definitions[resourceName];
@@ -7099,8 +7163,6 @@ function link(resourceName, id, relations) {
70997163
}
71007164
}
71017165

7102-
console.log('linked',linked);
7103-
71047166
returnlinked;
71057167
}
71067168

‎dist/angular-data.min.js‎

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎guide/nav.html‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
<iclass="icon-wrench icon-white"></i> API<bclass="caret"></b>
8383
</a>
8484
<ulclass="dropdown-menu">
85-
<liclass="nav-header">Angular-data - 1.4.3</li>
85+
<liclass="nav-header">Angular-data - 1.5.0</li>
8686
<li>
8787
<ahref="/documentation/api/angular-data/angular-data">Overview</a>
8888
</li>

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name":"angular-data",
33
"description":"Data store for Angular.js.",
4-
"version":"1.4.3",
4+
"version":"1.5.0",
55
"homepage":"http://angular-data.pseudobry.com",
66
"repository": {
77
"type":"git",

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp