Fix an issue when deleting a key from the proxy

pull/1/head
yflory 8 years ago
parent 82f3d5f852
commit d95a3ac92e

@ -143,7 +143,7 @@ define([
});
}).on('ready', function () {
if (JSON.stringify(rt.proxy) === '{}') {
if (!rt.proxy[Cryptpad.storageKey] || !Cryptpad.isArray(rt.proxy[Cryptpad.storageKey])) {
var oldStore = Cryptpad.getStore(true);
oldStore.get(Cryptpad.storageKey, function (err, s) {
rt.proxy.filesData = s;

@ -213,6 +213,7 @@ define([
for (var e in root) {
if (isFile(root[e])) {
if (compareFiles(href, root[e])) {
root[e] = undefined;
delete root[e];
}
} else {
@ -256,6 +257,7 @@ define([
} else if (path[0] === UNSORTED) {
parentEl.splice(key, 1);
} else {
parentEl[key] = undefined;
delete parentEl[key];
}
checkDeletedFiles();
@ -387,7 +389,6 @@ define([
log("A file with the same name already exist at the new location. Rename the file and try again.");
return;
}
newParent[newName] = element;
if (!keepOld) { deleteFromObject(elementPath); }
if(cb) { cb(); }
@ -454,8 +455,9 @@ define([
if (index > -1) {
array.splice(index, 1);
}
// Remove the array is empty to have a cleaner object in chainpad
// Remove the array if empty to have a cleaner object in chainpad
if (array.length === 0) {
files[TRASH][name] = undefined;
delete files[TRASH][name];
}
};
@ -512,6 +514,7 @@ define([
logError("Unable to locate the element to remove from trash: ", path);
return;
}
parentEl[name] = undefined;
delete parentEl[name];
}
checkDeletedFiles();
@ -543,6 +546,7 @@ define([
return;
}
parentEl[newName] = element;
parentEl[oldName] = undefined;
delete parentEl[oldName];
cb();
};
@ -612,6 +616,7 @@ define([
for (var el in element) {
if (!isFile(element[el]) && !isFolder(element[el])) {
debug("An element in ROOT was not a folder nor a file. ", element[el]);
element[el] = undefined;
delete element[el];
} else if (isFolder(element[el])) {
fixRoot(element[el]);
@ -630,6 +635,7 @@ define([
for (var el in tr) {
if (!$.isArray(tr[el])) {
debug("An element in TRASH root is not an array. ", tr[el]);
tr[el] = undefined;
delete tr[el];
} else {
toClean = [];

@ -4,6 +4,7 @@
<meta content="text/html; charset=utf-8" http-equiv="content-type"/>
<link rel="stylesheet" href="/bower_components/components-font-awesome/css/font-awesome.min.css">
<script src="/bower_components/jquery/dist/jquery.min.js"></script>
<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="/bower_components/bootstrap/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="file.css" />
</head>

@ -8,8 +8,6 @@ define([
'json.sortify',
'/common/cryptpad-common.js',
'/file/fileObject.js',
'/bower_components/jquery/dist/jquery.min.js',
'/bower_components/bootstrap/dist/js/bootstrap.min.js',
'/customize/pad.js'
], function (Config, Listmap, Crypto, TextPatcher, Messages, JSONSortify, Cryptpad, FO) {
var module = window.MODULE = {};
@ -1316,25 +1314,33 @@ define([
}
});
files.on('change', [], function () {
var onRefresh = {
refresh: function() {
if (onRefresh.to) {
window.clearTimeout(onRefresh.to);
}
onRefresh.to = window.setTimeout(refresh, 500);
}
};
files.on('change', [], function (o, n, p) {
var path = arguments[2];
if ((filesOp.isPathInUnsorted(currentPath) && filesOp.isPathInUnsorted(path)) ||
(path.length >= currentPath.length && filesOp.isSubpath(path, currentPath)) ||
(filesOp.isPathInTrash(currentPath) && filesOp.isPathInTrash(path))) {
// Reload after 50ms to make sure all the change events have been received
window.setTimeout(refresh, 200);
// Reload after a few ms to make sure all the change events have been received
onRefresh.refresh();
} else if (path.length && path[0] === FILES_DATA) {
refreshFilesData();
}
module.resetTree();
return false;
}).on('remove', [], function () {
}).on('remove', [], function (o, p) {
var path = arguments[1];
if ((filesOp.isPathInUnsorted(currentPath) && filesOp.isPathInUnsorted(path)) ||
(path.length >= currentPath.length && filesOp.isSubpath(path, currentPath)) ||
(filesOp.isPathInTrash(currentPath) && filesOp.isPathInTrash(path))) {
// Reload after 50ms to make sure all the change events have been received
window.setTimeout(refresh, 200);
// Reload after a few to make sure all the change events have been received
onRefresh.to = window.setTimeout(refresh, 500);
}
module.resetTree();
return false;
@ -1373,7 +1379,7 @@ define([
readOnly: false,
validateKey: secret.keys.validateKey || undefined,
crypto: Crypto.createEncryptor(secret.keys),
//logging: true
logging: false
};
var rt = window.rt = module.rt = Listmap.create(listmapConfig);

Loading…
Cancel
Save