manual merge of staging into framework

pull/1/head
Caleb James DeLisle 7 years ago
commit 342b6012f7

@ -40,7 +40,7 @@ The CSS inside of loading.js is precompiled in order to save 200ish milliseconds
}
#cp-loading-tip {
position: fixed;
z-index: 100000; // loading tip
z-index: 10000000; // loading tip
top: 80%;
left: 0;
right: 0;

@ -36,7 +36,7 @@ define([], function () {
}
#cp-loading-tip {
position: fixed;
z-index: 100000;
z-index: 10000000;
top: 80%;
left: 0;
right: 0;

@ -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

@ -155,7 +155,9 @@ define([], function () {
// Do not remove wcObject, it allows us to use a new 'wc' without changing the handler if we
// want to keep the same chainpad (realtime) object
try {
if (window.Cryptpad_SUPPRESS_MSG) { return; }
wcObject.wc.bcast(message).then(function() {
if (window.Cryptpad_SUPPRESS_ACK) { return; }
cb();
}, function(err) {
// The message has not been sent, display the error.

@ -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

@ -365,11 +365,9 @@ define([
var mediaMap = {};
var restoreMediaTags = function (tempDom) {
var pattern = /(<media-tag contenteditable="false" data-crypto-key="([^"]*)" src="([^"]*)" tabindex="1">)<\/media-tag>/i;
var tags = tempDom.querySelectorAll('media-tag:empty');
Array.prototype.slice.call(tags).forEach(function (tag) {
if (pattern.length !== 4) { return; }
var src = pattern[3];
var src = tag.getAttribute('src');
if (mediaMap[src]) {
mediaMap[src].forEach(function (n) {
tag.appendChild(n);

@ -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();
@ -516,7 +521,7 @@ define([
canvas.on('mouse:up', onLocal);
$('#clear').on('click', function () {
$('#cp-app-whiteboard-clear').on('click', function () {
canvas.clear();
onLocal();
});

Loading…
Cancel
Save