Commit c74c465d authored by Xiaowu Zhang's avatar Xiaowu Zhang

merge indexedDB branch

parents 86eaa055 4ed7981c
...@@ -2427,6 +2427,9 @@ function restCommandRejecter(param, args) { ...@@ -2427,6 +2427,9 @@ function restCommandRejecter(param, args) {
if (arg.columnNumber !== undefined && arg.columnNumber !== null) { if (arg.columnNumber !== undefined && arg.columnNumber !== null) {
current_priority.columnNumber = arg.columnNumber; current_priority.columnNumber = arg.columnNumber;
} }
if (arg.fileName !== undefined && arg.fileName !== null) {
current_priority.fileName = arg.fileName;
}
if (arg.filename !== undefined && arg.filename !== null) { if (arg.filename !== undefined && arg.filename !== null) {
current_priority.filename = arg.filename; current_priority.filename = arg.filename;
} }
...@@ -3659,7 +3662,7 @@ function enableRestParamChecker(jio, shared) { ...@@ -3659,7 +3662,7 @@ function enableRestParamChecker(jio, shared) {
} }
}); });
["getAttachment", "removeAttachment"].forEach(function (method) { ["removeAttachment"].forEach(function (method) {
shared.on(method, function (param) { shared.on(method, function (param) {
if (!checkId(param)) { if (!checkId(param)) {
checkAttachmentId(param); checkAttachmentId(param);
...@@ -3667,6 +3670,26 @@ function enableRestParamChecker(jio, shared) { ...@@ -3667,6 +3670,26 @@ function enableRestParamChecker(jio, shared) {
}); });
}); });
["getAttachment"].forEach(function (method) {
shared.on(method, function (param) {
if (param.storage_spec.type !== "indexeddb" &&
param.storage_spec.type !== "dav" &&
(param.kwargs._start !== undefined
|| param.kwargs._end !== undefined)) {
restCommandRejecter(param, [
'bad_request',
'unsupport',
'_start, _end not support'
]);
return false;
}
if (!checkId(param)) {
checkAttachmentId(param);
}
});
});
["check", "repair"].forEach(function (method) { ["check", "repair"].forEach(function (method) {
shared.on(method, function (param) { shared.on(method, function (param) {
if (param.kwargs._id !== undefined) { if (param.kwargs._id !== undefined) {
......
...@@ -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;
......
This diff is collapsed.
...@@ -96,7 +96,7 @@ function enableRestParamChecker(jio, shared) { ...@@ -96,7 +96,7 @@ function enableRestParamChecker(jio, shared) {
} }
}); });
["getAttachment", "removeAttachment"].forEach(function (method) { ["removeAttachment"].forEach(function (method) {
shared.on(method, function (param) { shared.on(method, function (param) {
if (!checkId(param)) { if (!checkId(param)) {
checkAttachmentId(param); checkAttachmentId(param);
...@@ -104,6 +104,26 @@ function enableRestParamChecker(jio, shared) { ...@@ -104,6 +104,26 @@ function enableRestParamChecker(jio, shared) {
}); });
}); });
["getAttachment"].forEach(function (method) {
shared.on(method, function (param) {
if (param.storage_spec.type !== "indexeddb" &&
param.storage_spec.type !== "dav" &&
(param.kwargs._start !== undefined
|| param.kwargs._end !== undefined)) {
restCommandRejecter(param, [
'bad_request',
'unsupport',
'_start, _end not support'
]);
return false;
}
if (!checkId(param)) {
checkAttachmentId(param);
}
});
});
["check", "repair"].forEach(function (method) { ["check", "repair"].forEach(function (method) {
shared.on(method, function (param) { shared.on(method, function (param) {
if (param.kwargs._id !== undefined) { if (param.kwargs._id !== undefined) {
......
This diff is collapsed.
This diff is collapsed.
...@@ -57,7 +57,15 @@ ...@@ -57,7 +57,15 @@
<script src="../src/jio.storage/querystorage.js"></script> <script src="../src/jio.storage/querystorage.js"></script>
<script src="../test/jio.storage/querystorage.tests.js"></script> <script src="../test/jio.storage/querystorage.tests.js"></script>
<script src="../src/jio.storage/replicatestorage.js"></script> <script src="../src/jio.storage/replicatestorage.js"></script>
<script src="../test/jio.storage/replicatestorage.tests.js"></script> <script src="../test/jio.storage/replicatestorage.tests.js"></script>
<!--
<script src="../src/jio.storage/indexeddbstorage.js"></script>
<script src="../test/jio.storage/indexeddbstorage.tests.js"></script>
-->
</body> </body>
</html> </html>
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