From 52be5501d6ce0ec96e379acbcf847d7ad24ab2e0 Mon Sep 17 00:00:00 2001 From: ansuz Date: Tue, 26 Sep 2017 14:34:54 +0200 Subject: [PATCH 1/4] remove invalid test --- www/drive/tests.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/www/drive/tests.js b/www/drive/tests.js index 5861e5410..eaae78e13 100644 --- a/www/drive/tests.js +++ b/www/drive/tests.js @@ -243,6 +243,7 @@ define([ }, "DRIVE4: migration and fixFiles with a pad in trash not root"); // Pad attributes migration +/* assert(function (cb) { console.log('START PAD ATTRIBUTES'); var files = JSON.parse(JSON.stringify(example)); @@ -253,6 +254,7 @@ define([ return cb(files.filesData[id1].userid === 'value' && files.filesData[id1].previewMode); }, "PAD ATTRIBUTES"); +*/ // userObject Tests From 345bfc1cea00f8d00bf693881ce0233059d51ec2 Mon Sep 17 00:00:00 2001 From: yflory Date: Tue, 26 Sep 2017 14:36:49 +0200 Subject: [PATCH 2/4] Remove migration for pad attributes --- www/common/migrate-user-object.js | 32 ++----------------------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/www/common/migrate-user-object.js b/www/common/migrate-user-object.js index 5ac2ceac7..c9c3bbd01 100644 --- a/www/common/migrate-user-object.js +++ b/www/common/migrate-user-object.js @@ -7,41 +7,13 @@ define([], function () { return function (userObject, Cryptpad) { var version = userObject.version || 0; + // DEPRECATED // Migration 1: pad attributes moved to filesData var migratePadAttributesToData = function () { - var files = userObject && userObject.drive; - if (!files) { return; } - - var migratePadAttributes = function (el, id, parsed) { - // Migrate old pad attributes - ['userid', 'previewMode'].forEach(function (attr) { - var key = parsed.hash + '.' + attr; - var key2 = parsed.hash.slice(0,-1) + '.' + attr;// old pads not ending with / - if (typeof(files[key]) !== "undefined" || typeof(files[key2]) !== "undefined") { - console.log("Migrating pad attribute", attr, "for pad", id); - el[attr] = files[key] || files[key2]; - delete files[key]; - delete files[key2]; - } - }); - }; - var filesData = files.filesData; - if (!filesData) { return; } - - var el, parsed; - for (var id in filesData) { - id = Number(id); - el = filesData[id]; - parsed = el.href && Cryptpad.parsePadUrl(el.href); - if (!parsed) { continue; } - migratePadAttributes(el, id, parsed); - } - // Migration done + return true; }; if (version < 1) { migratePadAttributesToData(); - Cryptpad.feedback('Migrate-1', true); - userObject.version = version = 1; } // Migration 2: global attributes from root to 'settings' subobjects From 748172585e62a684fb2188e906113fa02a442095 Mon Sep 17 00:00:00 2001 From: ansuz Date: Tue, 26 Sep 2017 15:00:25 +0200 Subject: [PATCH 3/4] update for modified id --- www/whiteboard/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/whiteboard/inner.js b/www/whiteboard/inner.js index 459744e01..96ca8c8e5 100644 --- a/www/whiteboard/inner.js +++ b/www/whiteboard/inner.js @@ -516,7 +516,7 @@ define([ canvas.on('mouse:up', onLocal); - $('#clear').on('click', function () { + $('#cp-app-whiteboard-clear').on('click', function () { canvas.clear(); onLocal(); }); From 9571b3c018ac21354b33e9c8f68add462c2ba9db Mon Sep 17 00:00:00 2001 From: ansuz Date: Tue, 26 Sep 2017 15:16:17 +0200 Subject: [PATCH 4/4] persist whiteboard content across sessions --- www/whiteboard/inner.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/www/whiteboard/inner.js b/www/whiteboard/inner.js index 96ca8c8e5..cd14ef9f3 100644 --- a/www/whiteboard/inner.js +++ b/www/whiteboard/inner.js @@ -433,6 +433,7 @@ define([ var userDoc = APP.realtime.getUserDoc(); var isNew = false; + var newDoc = ''; if (userDoc === "" || userDoc === "{}") { isNew = true; } if (userDoc !== "") { @@ -448,15 +449,19 @@ define([ Cryptpad.errorLoadingScreen(errorText); throw new Error(errorText); } + newDoc = hjson.content; } else { Title.updateTitle(Cryptpad.initialName || Title.defaultTitle); } + if (newDoc) { + canvas.loadFromJSON(newDoc); + canvas.renderAll(); + } - Cryptpad.removeLoadingScreen(); setEditable(!readOnly); initializing = false; config.onLocal(); - + Cryptpad.removeLoadingScreen(); if (readOnly) { return; } if (isNew) { common.openTemplatePicker();