X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/25ef3491bd9ae007ff1fc2b0d7943e6eaaccf775..0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6:/src/data/Api.js diff --git a/src/data/Api.js b/src/data/Api.js index ded82ee0..bef8db03 100644 --- a/src/data/Api.js +++ b/src/data/Api.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.0.3 - * Copyright(c) 2006-2009 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** @@ -65,8 +65,7 @@ restActions : { /** * Returns true if supplied action-name is a valid API action defined in {@link #actions} constants - * @param {String} action - * @param {String[]}(Optional) List of available CRUD actions. Pass in list when executing multiple times for efficiency. + * @param {String} action Action to test for availability. * @return {Boolean} */ isAction : function(action) { @@ -98,7 +97,7 @@ restActions : { /** * Returns true if the supplied API is valid; that is, check that all keys match defined actions * otherwise returns an array of mistakes. - * @return {String[]||true} + * @return {String[]|true} */ isValid : function(api){ var invalid = []; @@ -169,7 +168,8 @@ new Ext.data.HttpProxy({ proxy.api[action] = proxy.api[action] || proxy.url || proxy.directFn; if (typeof(proxy.api[action]) == 'string') { proxy.api[action] = { - url: proxy.api[action] + url: proxy.api[action], + method: (proxy.restful === true) ? Ext.data.Api.restActions[action] : undefined }; } } @@ -183,7 +183,8 @@ new Ext.data.HttpProxy({ restify : function(proxy) { proxy.restful = true; for (var verb in this.restActions) { - proxy.api[this.actions[verb]].method = this.restActions[verb]; + proxy.api[this.actions[verb]].method || + (proxy.api[this.actions[verb]].method = this.restActions[verb]); } // TODO: perhaps move this interceptor elsewhere? like into DataProxy, perhaps? Placed here // to satisfy initial 3.0 final release of REST features. @@ -195,16 +196,18 @@ new Ext.data.HttpProxy({ }); switch (response.status) { - case 200: // standard 200 response, send control back to HttpProxy#onWrite + case 200: // standard 200 response, send control back to HttpProxy#onWrite by returning true from this intercepted #onWrite return true; break; case 201: // entity created but no response returned - //res[reader.meta.successProperty] = true; - res.success = true; + if (Ext.isEmpty(res.raw.responseText)) { + res.success = true; + } else { + //if the response contains data, treat it like a 200 + return true; + } break; case 204: // no-content. Create a fake response. - //res[reader.meta.successProperty] = true; - //res[reader.meta.root] = null; res.success = true; res.data = null; break; @@ -212,13 +215,6 @@ new Ext.data.HttpProxy({ return true; break; } - /* - if (res[reader.meta.successProperty] === true) { - this.fireEvent("write", this, action, res[reader.meta.root], res, rs, o.request.arg); - } else { - this.fireEvent('exception', this, 'remote', action, o, res, rs); - } - */ if (res.success === true) { this.fireEvent("write", this, action, res.data, res, rs, o.request.arg); } else { @@ -255,7 +251,7 @@ Ext.data.Response.prototype = { return this.success; }, getStatus : function() { - return this.status + return this.status; }, getRoot : function() { return this.root;