Commit c74c465d authored by Xiaowu Zhang's avatar Xiaowu Zhang

merge indexedDB branch

parents 86eaa055 4ed7981c
......@@ -2427,6 +2427,9 @@ function restCommandRejecter(param, args) {
if (arg.columnNumber !== undefined && arg.columnNumber !== null) {
current_priority.columnNumber = arg.columnNumber;
}
if (arg.fileName !== undefined && arg.fileName !== null) {
current_priority.fileName = arg.fileName;
}
if (arg.filename !== undefined && arg.filename !== null) {
current_priority.filename = arg.filename;
}
......@@ -3659,8 +3662,28 @@ function enableRestParamChecker(jio, shared) {
}
});
["getAttachment", "removeAttachment"].forEach(function (method) {
["removeAttachment"].forEach(function (method) {
shared.on(method, function (param) {
if (!checkId(param)) {
checkAttachmentId(param);
}
});
});
["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);
}
......
......@@ -184,8 +184,15 @@
* An ajax object to do the good request according to the auth type
*/
var ajax = {
"none": function (method, type, url, data) {
"none": function (method, type, url, data, start, end) {
var headers = {};
if (start !== undefined) {
if (end !== undefined) {
headers = {"Range" : "bytes=" + start + "-" + end};
} else {
headers = {"Range" : "bytes=" + start + "-"};
}
}
if (method === "PROPFIND") {
headers.Depth = "1";
}
......@@ -197,8 +204,15 @@
"headers": headers
});
},
"basic": function (method, type, url, data, login) {
"basic": function (method, type, url, data, start, end, 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") {
headers.Depth = "1";
}
......@@ -253,6 +267,8 @@
this._url + '/' + idsToFileName(param._id, param._attachment) +
"?_=" + Date.now(),
param._blob,
undefined,
undefined,
this._login
);
};
......@@ -263,6 +279,8 @@
"text",
this._url + '/' + idsToFileName(param._id),
null,
undefined,
undefined,
this._login
).then(function (e) {
try {
......@@ -286,6 +304,8 @@
"blob",
this._url + '/' + idsToFileName(param._id, param._attachment),
null,
param._start,
param._end - 1,
this._login
);
};
......@@ -296,6 +316,8 @@
null,
this._url + '/' + idsToFileName(param._id) + "?_=" + Date.now(),
null,
undefined,
undefined,
this._login
);
};
......@@ -307,6 +329,8 @@
this._url + '/' + idsToFileName(param._id, param._attachment) +
"?_=" + Date.now(),
null,
undefined,
undefined,
this._login
);
};
......@@ -317,6 +341,8 @@
"text",
this._url + '/',
null,
undefined,
undefined,
this._login
).then(function (e) {
var i, rows = [], row, responses = new DOMParser().parseFromString(
......@@ -346,9 +372,11 @@
row.id = row.id[0];
}
if (row !== undefined) {
if (row.id !== "") {
rows[rows.length] = row;
}
}
}
return {"target": {"response": {
"total_rows": rows.length,
"rows": rows
......@@ -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).
then(o.getAttachment).
then(o.success, o.reject, o.notifyProgress);
......@@ -833,10 +872,12 @@
}
e.target.response.rows.forEach(function (row) {
if (row.id !== "") {
requests[requests.length] = that._get({"_id": row.id}).
then(function (e) {
row.doc = e.target.response;
});
}
});
o.count = 0;
......
This diff is collapsed.
......@@ -96,7 +96,7 @@ function enableRestParamChecker(jio, shared) {
}
});
["getAttachment", "removeAttachment"].forEach(function (method) {
["removeAttachment"].forEach(function (method) {
shared.on(method, function (param) {
if (!checkId(param)) {
checkAttachmentId(param);
......@@ -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) {
shared.on(method, function (param) {
if (param.kwargs._id !== undefined) {
......
This diff is collapsed.
This diff is collapsed.
......@@ -57,7 +57,15 @@
<script src="../src/jio.storage/querystorage.js"></script>
<script src="../test/jio.storage/querystorage.tests.js"></script>
<script src="../src/jio.storage/replicatestorage.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>
</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