Use the old store format

This commit is contained in:
yflory 2016-11-16 18:11:44 +01:00
parent da19608269
commit aa14ea7ac4
2 changed files with 56 additions and 25 deletions

View File

@ -214,16 +214,20 @@ define([
var unsortedFiles = getUnsortedFiles().slice(); var unsortedFiles = getUnsortedFiles().slice();
var trashFiles = getTrashFiles().slice(); var trashFiles = getTrashFiles().slice();
var toRemove = []; var toRemove = [];
Object.keys(files[FILES_DATA]).forEach(function (f) { files[FILES_DATA].forEach(function (arr) {
var f = arr.href;
if (rootFiles.indexOf(f) === -1 if (rootFiles.indexOf(f) === -1
&& unsortedFiles.indexOf(f) === -1 && unsortedFiles.indexOf(f) === -1
&& trashFiles.indexOf(f) === -1) { && trashFiles.indexOf(f) === -1) {
toRemove.push(f); toRemove.push(arr);
} }
}); });
toRemove.forEach(function (f) { toRemove.forEach(function (f) {
debug("Removing", f, "from filesData"); var idx = files[FILES_DATA].indexOf(f);
delete files[FILES_DATA][f]; if (idx !== -1) {
debug("Removing", f, "from filesData");
files[FILES_DATA].splice(idx, 1);
}
}); });
}; };
@ -267,13 +271,28 @@ define([
return findElement(files, parentPath); return findElement(files, parentPath);
}; };
var getFileData = exp.getFileData = function (file) {
if (!file) { return; }
var res;
files[FILES_DATA].some(function(arr) {
var href = arr.href;
if (href === file) {
res = arr;
return true;
}
return false;
});
return res;
};
// Data from filesData // Data from filesData
var getTitle = exp.getTitle = function (href) { var getTitle = exp.getTitle = function (href) {
if (!href || !files[FILES_DATA][href]) { var data = getFileData(href);
if (!href || !data) {
error("getTitle called with a non-existing href: ", href); error("getTitle called with a non-existing href: ", href);
return; return;
} }
return files[FILES_DATA][href].title; return data.title;
}; };
var pushToTrash = function (name, element, path) { var pushToTrash = function (name, element, path) {
@ -518,8 +537,8 @@ define([
}; };
var addPad = exp.addPad = function (href, data) { var addPad = exp.addPad = function (href, data) {
if (Object.keys(files[FILES_DATA]).indexOf(href) === -1) { if (!getFileData(href)) {
files[FILES_DATA][href] = data; files[FILES_DATA].push(data);
} }
var unsortedFiles = getUnsortedFiles().slice(); var unsortedFiles = getUnsortedFiles().slice();
var rootFiles = getRootFiles().slice(); var rootFiles = getRootFiles().slice();
@ -548,7 +567,7 @@ define([
if (typeof(files[ROOT]) !== "object") { debug("ROOT was not an object"); files[ROOT] = {}; } if (typeof(files[ROOT]) !== "object") { debug("ROOT was not an object"); files[ROOT] = {}; }
if (typeof(files[TRASH]) !== "object") { debug("TRASH was not an object"); files[TRASH] = {}; } if (typeof(files[TRASH]) !== "object") { debug("TRASH was not an object"); files[TRASH] = {}; }
if (typeof(files[FILES_DATA]) !== "object") { debug("FILES_DATA was not an object"); files[FILES_DATA] = {}; } if (!$.isArray(files[FILES_DATA])) { debug("FILES_DATA was not an array"); files[FILES_DATA] = []; }
if (!$.isArray(files[UNSORTED])) { debug("UNSORTED was not an array"); files[UNSORTED] = []; } if (!$.isArray(files[UNSORTED])) { debug("UNSORTED was not an array"); files[UNSORTED] = []; }
var fixRoot = function (element) { var fixRoot = function (element) {
@ -600,19 +619,26 @@ define([
var rootFiles = getRootFiles().slice(); var rootFiles = getRootFiles().slice();
var unsortedFiles = getUnsortedFiles().slice(); var unsortedFiles = getUnsortedFiles().slice();
var trashFiles = getTrashFiles().slice(); var trashFiles = getTrashFiles().slice();
for (var el in fd) { var toClean = [];
if (typeof(fd[el]) !== "object") { fd.forEach(function (el, idx) {
debug("An element in filesData was not an object.", fd[el]); if (typeof(el) !== "object") {
delete fd[el]; debug("An element in filesData was not an object.", el);
toClean.push(el);
} else { } else {
if (rootFiles.indexOf(el) === -1 if (rootFiles.indexOf(el.href) === -1
&& unsortedFiles.indexOf(el) === -1 && unsortedFiles.indexOf(el.href) === -1
&& trashFiles.indexOf(el) === -1) { && trashFiles.indexOf(el.href) === -1) {
debug("An element in filesData was not in ROOT, UNSORTED or TRASH.", el); debug("An element in filesData was not in ROOT, UNSORTED or TRASH.", el);
files[UNSORTED].push(el); files[UNSORTED].push(el.href);
} }
} }
} });
toClean.forEach(function (el) {
var idx = fd.indexOf(el);
if (idx !== -1) {
fd.splice(idx, 1);
}
});
}; };
fixFilesData(files[FILES_DATA]); fixFilesData(files[FILES_DATA]);

View File

@ -365,7 +365,7 @@ define([
}; };
var openFile = function (fileEl) { var openFile = function (fileEl) {
window.location.hash = fileEl; window.open(fileEl);
}; };
var refresh = function () { var refresh = function () {
@ -611,11 +611,11 @@ define([
$span.html(''); $span.html('');
$span.append($name); $span.append($name);
if (typeof(files[FILES_DATA][element]) === "undefined") { if (!filesOp.getFileData(element)) {
return; return;
} }
var hrefData = Cryptpad.parsePadUrl(element); var hrefData = Cryptpad.parsePadUrl(element);
var data = files[FILES_DATA][element]; var data = filesOp.getFileData(element);
var type = Messages.type[hrefData.type] || hrefData.type; var type = Messages.type[hrefData.type] || hrefData.type;
var $title = $('<span>', {'class': 'title listElement', title: data.title}).text(data.title); var $title = $('<span>', {'class': 'title listElement', title: data.title}).text(data.title);
var $type = $('<span>', {'class': 'date listElement', title: type}).text(type); var $type = $('<span>', {'class': 'date listElement', title: type}).text(type);
@ -820,7 +820,11 @@ define([
var $fhType = $('<span>', {'class': 'date'}).text(Messages.table_type); var $fhType = $('<span>', {'class': 'date'}).text(Messages.table_type);
var $fhAdate = $('<span>', {'class': 'date'}).text(Messages.fm_lastAccess); var $fhAdate = $('<span>', {'class': 'date'}).text(Messages.fm_lastAccess);
var $fhCdate = $('<span>', {'class': 'date'}).text(Messages.fm_creation); var $fhCdate = $('<span>', {'class': 'date'}).text(Messages.fm_creation);
$fihElement.append($fhName).append($fhTitle).append($fhType).append($fhAdate).append($fhCdate); $fihElement.append($fhName);
if (displayTitle) {
$fihElement.append($fhTitle);
}
$fihElement.append($fhType).append($fhAdate).append($fhCdate);
return $fileHeader; return $fileHeader;
}; };
@ -830,12 +834,13 @@ define([
// Unsorted element are represented by "href" in an array: they don't have a filename // Unsorted element are represented by "href" in an array: they don't have a filename
// and they don't hav a hierarchical structure (folder/subfolders) // and they don't hav a hierarchical structure (folder/subfolders)
var displayUnsorted = function ($container, $fileHeader) { var displayUnsorted = function ($container) {
var unsorted = files[UNSORTED]; var unsorted = files[UNSORTED];
if (allFilesSorted()) { return; } if (allFilesSorted()) { return; }
var $fileHeader = getFileListHeader(false);
$container.append($fileHeader); $container.append($fileHeader);
unsorted.forEach(function (href, idx) { unsorted.forEach(function (href, idx) {
var file = files[FILES_DATA][href]; var file = filesOp.getFileData(href);
if (!file) { if (!file) {
debug("getUnsortedFiles returns an element not present in filesData: ", href); debug("getUnsortedFiles returns an element not present in filesData: ", href);
return; return;
@ -939,7 +944,7 @@ define([
var $fileHeader = getFileListHeader(true); var $fileHeader = getFileListHeader(true);
if (isUnsorted) { if (isUnsorted) {
displayUnsorted($list, $fileHeader); displayUnsorted($list);
} else if (isTrashRoot) { } else if (isTrashRoot) {
displayTrashRoot($list, $folderHeader, $fileHeader); displayTrashRoot($list, $folderHeader, $fileHeader);
} else { } else {