Commit 8f7bb38d authored by Xiaowu Zhang's avatar Xiaowu Zhang

add _start&__end support for davstorage

parent 86dd0f68
...@@ -184,8 +184,15 @@ ...@@ -184,8 +184,15 @@
* An ajax object to do the good request according to the auth type * An ajax object to do the good request according to the auth type
*/ */
var ajax = { var ajax = {
"none": function (method, type, url, data) { "none": function (method, type, url, data, start, end) {
var headers = {}; var headers = {};
if (start !== undefined) {
if (end !== undefined) {
headers = {"Range" : "bytes=" + start + "-" + end};
} else {
headers = {"Range" : "bytes=" + start + "-"};
}
}
if (method === "PROPFIND") { if (method === "PROPFIND") {
headers.Depth = "1"; headers.Depth = "1";
} }
...@@ -197,8 +204,15 @@ ...@@ -197,8 +204,15 @@
"headers": headers "headers": headers
}); });
}, },
"basic": function (method, type, url, data, login) { "basic": function (method, type, url, data, start, end, login) {
var headers = {"Authorization": "Basic " + login}; var headers = {"Authorization": "Basic " + login};
if (start !== undefined) {
if (end !== undefined) {
headers.Range = "bytes=" + start + "-" + end;
} else {
headers.Range = "bytes=" + start + "-";
}
}
if (method === "PROPFIND") { if (method === "PROPFIND") {
headers.Depth = "1"; headers.Depth = "1";
} }
...@@ -253,6 +267,8 @@ ...@@ -253,6 +267,8 @@
this._url + '/' + idsToFileName(param._id, param._attachment) + this._url + '/' + idsToFileName(param._id, param._attachment) +
"?_=" + Date.now(), "?_=" + Date.now(),
param._blob, param._blob,
undefined,
undefined,
this._login this._login
); );
}; };
...@@ -263,6 +279,8 @@ ...@@ -263,6 +279,8 @@
"text", "text",
this._url + '/' + idsToFileName(param._id), this._url + '/' + idsToFileName(param._id),
null, null,
undefined,
undefined,
this._login this._login
).then(function (e) { ).then(function (e) {
try { try {
...@@ -286,6 +304,8 @@ ...@@ -286,6 +304,8 @@
"blob", "blob",
this._url + '/' + idsToFileName(param._id, param._attachment), this._url + '/' + idsToFileName(param._id, param._attachment),
null, null,
param._start,
param._end - 1,
this._login this._login
); );
}; };
...@@ -296,6 +316,8 @@ ...@@ -296,6 +316,8 @@
null, null,
this._url + '/' + idsToFileName(param._id) + "?_=" + Date.now(), this._url + '/' + idsToFileName(param._id) + "?_=" + Date.now(),
null, null,
undefined,
undefined,
this._login this._login
); );
}; };
...@@ -307,6 +329,8 @@ ...@@ -307,6 +329,8 @@
this._url + '/' + idsToFileName(param._id, param._attachment) + this._url + '/' + idsToFileName(param._id, param._attachment) +
"?_=" + Date.now(), "?_=" + Date.now(),
null, null,
undefined,
undefined,
this._login this._login
); );
}; };
...@@ -317,6 +341,8 @@ ...@@ -317,6 +341,8 @@
"text", "text",
this._url + '/', this._url + '/',
null, null,
undefined,
undefined,
this._login this._login
).then(function (e) { ).then(function (e) {
var i, rows = [], row, responses = new DOMParser().parseFromString( var i, rows = [], row, responses = new DOMParser().parseFromString(
...@@ -346,7 +372,9 @@ ...@@ -346,7 +372,9 @@
row.id = row.id[0]; row.id = row.id[0];
} }
if (row !== undefined) { if (row !== undefined) {
rows[rows.length] = row; if (row.id !== "") {
rows[rows.length] = row;
}
} }
} }
return {"target": {"response": { return {"target": {"response": {
...@@ -631,7 +659,18 @@ ...@@ -631,7 +659,18 @@
); );
} }
}; };
if (param._start < 0 || param._end < 0) {
command.reject(405,
"invalide _start,_end",
"_start and _end must be positive");
return;
}
if (param._start > param._end) {
command.reject(405,
"invalide _start,_end",
"start is great then end");
return;
}
this._get(param). this._get(param).
then(o.getAttachment). then(o.getAttachment).
then(o.success, o.reject, o.notifyProgress); then(o.success, o.reject, o.notifyProgress);
...@@ -833,10 +872,12 @@ ...@@ -833,10 +872,12 @@
} }
e.target.response.rows.forEach(function (row) { e.target.response.rows.forEach(function (row) {
requests[requests.length] = that._get({"_id": row.id}). if (row.id !== "") {
then(function (e) { requests[requests.length] = that._get({"_id": row.id}).
row.doc = e.target.response; then(function (e) {
}); row.doc = e.target.response;
});
}
}); });
o.count = 0; o.count = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment