Merge branch 'soon' into staging

pull/1/head
ansuz 4 years ago
commit 6d6bd9908e

@ -1,3 +1,20 @@
# 4.3.1 (WIP)
This minor release addresses some bugs discovered after deploying and tagging 4.3.0
* better isLoggedIn() check
* fix templates in sheets
* include onlyOffice version along with checkpoint hashes
* send feedback when opening the readme
* so we can decide whether to remove it
* handle decryption errors for blobs
* prompted by a badly formed sheet checkpoint
* fix broken team creation
* CKEditor
* broken table of contents scrollTo
* show the link bubble for links inside of comments
* fix title reset in polls
# 4.3.0 (D) # 4.3.0 (D)
## Goals ## Goals

@ -62,7 +62,7 @@ define([
var imprintUrl = AppConfig.imprint && (typeof(AppConfig.imprint) === "boolean" ? var imprintUrl = AppConfig.imprint && (typeof(AppConfig.imprint) === "boolean" ?
'/imprint.html' : AppConfig.imprint); '/imprint.html' : AppConfig.imprint);
Pages.versionString = "v4.3.0"; Pages.versionString = "v4.3.1";
// used for the about menu // used for the about menu
Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined; Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined;

2
package-lock.json generated

@ -1,6 +1,6 @@
{ {
"name": "cryptpad", "name": "cryptpad",
"version": "4.3.0", "version": "4.3.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
"dependencies": { "dependencies": {

@ -1,7 +1,7 @@
{ {
"name": "cryptpad", "name": "cryptpad",
"description": "realtime collaborative visual editor with zero knowlege server", "description": "realtime collaborative visual editor with zero knowlege server",
"version": "4.3.0", "version": "4.3.1",
"license": "AGPL-3.0+", "license": "AGPL-3.0+",
"repository": { "repository": {
"type": "git", "type": "git",

@ -369,7 +369,8 @@ define([
content.hashes[i] = { content.hashes[i] = {
file: data.url, file: data.url,
hash: ev.hash, hash: ev.hash,
index: ev.index index: ev.index,
version: NEW_VERSION
}; };
oldHashes = JSON.parse(JSON.stringify(content.hashes)); oldHashes = JSON.parse(JSON.stringify(content.hashes));
content.locks = {}; content.locks = {};
@ -596,7 +597,13 @@ define([
if (arrayBuffer) { if (arrayBuffer) {
var u8 = new Uint8Array(arrayBuffer); var u8 = new Uint8Array(arrayBuffer);
FileCrypto.decrypt(u8, key, function (err, decrypted) { FileCrypto.decrypt(u8, key, function (err, decrypted) {
if (err) { return void console.error(err); } if (err) {
if (err === "DECRYPTION_ERROR") {
console.warn(err);
return void onCpError(err);
}
return void console.error(err);
}
var blob = new Blob([decrypted.content], {type: 'plain/text'}); var blob = new Blob([decrypted.content], {type: 'plain/text'});
if (cb) { if (cb) {
return cb(blob, getFileType()); return cb(blob, getFileType());
@ -890,7 +897,7 @@ define([
var handleNewLocks = function (o, n) { var handleNewLocks = function (o, n) {
var hasNew = false; var hasNew = false;
// Check if we have at least one new lock // Check if we have at least one new lock
Object.keys(n).some(function (id) { Object.keys(n || {}).some(function (id) {
if (typeof(n[id]) !== "object") { return; } // Ignore old format if (typeof(n[id]) !== "object") { return; } // Ignore old format
// n[id] = { uid: lock, uid2: lock2 }; // n[id] = { uid: lock, uid2: lock2 };
return Object.keys(n[id]).some(function (uid) { return Object.keys(n[id]).some(function (uid) {
@ -902,7 +909,7 @@ define([
}); });
}); });
// Remove old locks // Remove old locks
Object.keys(o).forEach(function (id) { Object.keys(o || {}).forEach(function (id) {
if (typeof(o[id]) !== "object") { return; } // Ignore old format if (typeof(o[id]) !== "object") { return; } // Ignore old format
Object.keys(o[id]).forEach(function (uid) { Object.keys(o[id]).forEach(function (uid) {
// Removed lock // Removed lock

@ -652,6 +652,7 @@ define([
if (data.expire) { pad.expire = data.expire; } if (data.expire) { pad.expire = data.expire; }
if (data.password) { pad.password = data.password; } if (data.password) { pad.password = data.password; }
if (data.channel || secret) { pad.channel = data.channel || secret.channel; } if (data.channel || secret) { pad.channel = data.channel || secret.channel; }
if (data.readme) { pad.readme = 1; }
var s = getStore(data.teamId); var s = getStore(data.teamId);
if (!s || !s.manager) { return void cb({ error: 'ENOTFOUND' }); } if (!s || !s.manager) { return void cb({ error: 'ENOTFOUND' }); }
@ -839,6 +840,7 @@ define([
channel: channel, channel: channel,
title: data.driveReadmeTitle, title: data.driveReadmeTitle,
owners: [ store.proxy.edPublic ], owners: [ store.proxy.edPublic ],
readme: true
}; };
Store.addPad(clientId, fileData, cb); Store.addPad(clientId, fileData, cb);
}, { }, {
@ -1155,6 +1157,12 @@ define([
pad.owners = owners; pad.owners = owners;
} }
pad.expire = expire; pad.expire = expire;
if (pad.readme) {
delete pad.readme;
Feedback.send('OPEN_README');
}
if (h.mode === 'view') { return; } if (h.mode === 'view') { return; }
// If we only have rohref, it means we have a stronger href // If we only have rohref, it means we have a stronger href

@ -1166,6 +1166,7 @@ define([
var $drawer = APP.toolbar.$drawer; var $drawer = APP.toolbar.$drawer;
metadataMgr.onChange(function () { metadataMgr.onChange(function () {
if (!APP.proxy) { return; }
var md = copyObject(metadataMgr.getMetadata()); var md = copyObject(metadataMgr.getMetadata());
APP.proxy.metadata = md; APP.proxy.metadata = md;
}); });
@ -1365,6 +1366,8 @@ define([
$('#cp-app-poll-comments-add-title').remove(); $('#cp-app-poll-comments-add-title').remove();
} }
common.getPadAttribute('userid', function (e, userid) {
if (e) { console.error(e); }
var rt = APP.rt = Listmap.create(listmapConfig); var rt = APP.rt = Listmap.create(listmapConfig);
APP.proxy = rt.proxy; APP.proxy = rt.proxy;
@ -1373,16 +1376,14 @@ define([
.on('ready', function (info) { .on('ready', function (info) {
if (!firstConnection) { return; } // TODO fix this issue in listmap if (!firstConnection) { return; } // TODO fix this issue in listmap
firstConnection = false; firstConnection = false;
common.getPadAttribute('userid', function (e, userid) {
if (e) { console.error(e); }
APP.userid = userid; APP.userid = userid;
onReady(info, userid); onReady(info, userid);
});
}) })
.on('disconnect', onDisconnect) .on('disconnect', onDisconnect)
.on('reconnect', onReconnect) .on('reconnect', onReconnect)
.on('error', onError); .on('error', onError);
}); });
});
}; };
main(); main();
}); });

Loading…
Cancel
Save