diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2016-02-03 09:03:43 +0100 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2016-02-03 09:03:43 +0100 |
commit | d4b356e0e9e1de237c9a86c8a576291a3508aec4 (patch) | |
tree | 08abafedf15a509a68f3b12c279f5746cb78e0fe /core/js/oc-backbone-webdav.js | |
parent | 77942ad38afb982c3b7efa841a9bb0b46a0c039a (diff) | |
parent | 5e08f1df78652e7a16de00041d376f55a4d2009e (diff) | |
download | nextcloud-server-d4b356e0e9e1de237c9a86c8a576291a3508aec4.tar.gz nextcloud-server-d4b356e0e9e1de237c9a86c8a576291a3508aec4.zip |
Merge pull request #21961 from owncloud/comments-gui
Comments GUI in files sidebar
Diffstat (limited to 'core/js/oc-backbone-webdav.js')
-rw-r--r-- | core/js/oc-backbone-webdav.js | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/core/js/oc-backbone-webdav.js b/core/js/oc-backbone-webdav.js index 7c32116f011..ba678a32fcf 100644 --- a/core/js/oc-backbone-webdav.js +++ b/core/js/oc-backbone-webdav.js @@ -76,6 +76,11 @@ * @param {Object} davProperties properties mapping */ function parsePropFindResult(result, davProperties) { + if (_.isArray(result)) { + return _.map(result, function(subResult) { + return parsePropFindResult(subResult, davProperties); + }); + } var props = { href: result.href }; @@ -87,7 +92,7 @@ for (var key in propStat.properties) { var propKey = key; - if (davProperties[key]) { + if (key in davProperties) { propKey = davProperties[key]; } props[propKey] = propStat.properties[key]; @@ -151,15 +156,10 @@ if (isSuccessStatus(response.status)) { if (_.isFunction(options.success)) { var propsMapping = _.invert(options.davProperties); - var results; + var results = parsePropFindResult(response.body, propsMapping); if (options.depth > 0) { - results = _.map(response.body, function(data) { - return parsePropFindResult(data, propsMapping); - }); // discard root entry results.shift(); - } else { - results = parsePropFindResult(response.body, propsMapping); } options.success(results); @@ -217,7 +217,13 @@ options.success(responseJson); return; } - options.success(result.body); + // if multi-status, parse + if (result.status === 207) { + var propsMapping = _.invert(options.davProperties); + options.success(parsePropFindResult(result.body, propsMapping)); + } else { + options.success(result.body); + } } }); } @@ -249,7 +255,7 @@ * DAV transport */ function davSync(method, model, options) { - var params = {type: methodMap[method]}; + var params = {type: methodMap[method] || method}; var isCollection = (model instanceof Backbone.Collection); if (method === 'update' && (model.usePUT || (model.collection && model.collection.usePUT))) { |