diff --git a/CHANGELOG.md b/CHANGELOG.md index 137c1665b..700d70409 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,7 @@ As usual, updating from the previous release can be accomplished by: ## Features -* As mentioned above, we've built upon a very helpful PR to introduce author colors in our code editor. It's still experimental, but you can test it out by enabling author colors in a code pad via the pad's properties modal. +* As mentioned above, we've built upon a very helpful [PR](https://github.com/xwiki-labs/cryptpad/pull/522) from members of the Piratenpartei (German Pirate Party) to introduce author colors in our code editor. It's still experimental, but registered users can enable it on pads that they own via the "Author colors" entry in the `...` menu found beneath their user admin menu. * Serverside performance optimizations * Automatically expiring pads work by creating a task to be run at the target date. This process involves a little bit of hashing, so we've changed it to be run in the worker. * The act of deleting a file from the server actually moves it to an archive which is not publicly accessible. These archived files are regularly cleaned up if you run `scripts/evict-inactive.js`. Unfortunately, moving files is more expensive than deletion, so we've noticed spikes in CPU when users delete many files at once (like when emptying the trash from their drive). To avoid such spikes while the server is already under load we've implemented per-user queues for deletion. diff --git a/customize.dist/src/less2/include/markdown.less b/customize.dist/src/less2/include/markdown.less index 1bd592d63..7a8fc0ddf 100644 --- a/customize.dist/src/less2/include/markdown.less +++ b/customize.dist/src/less2/include/markdown.less @@ -1,3 +1,5 @@ +@import (reference) "./tools.less"; + .markdown_main() { blockquote { background: #e5e5e5; @@ -95,6 +97,7 @@ svg { max-width: 100%; cursor: pointer; + .tools_unselectable(); } } } diff --git a/lib/workers/index.js b/lib/workers/index.js index 6a163cadc..911b34337 100644 --- a/lib/workers/index.js +++ b/lib/workers/index.js @@ -203,6 +203,7 @@ Workers.initialize = function (Env, config, _cb) { Log.info("INSUFFICIENT_MAX_WORKERS", max); limit = 1; } + limit = max; } else { Log.error("INVALID_MAX_WORKERS", '[' + max + ']'); } diff --git a/www/code/inner.js b/www/code/inner.js index 7b654a3b1..3ffb2baef 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -452,6 +452,7 @@ define([ markers.ready(); common.getPadMetadata(null, function (md) { if (md && md.error) { return; } + if (!Array.isArray(md.owners)) { return void markers.setState(false); } if (!common.isOwned(md.owners)) { return; } // We're the owner: add the button and enable the colors if needed mkColorByAuthor(framework, markers); diff --git a/www/code/markers.js b/www/code/markers.js index fb44707e0..326de8be0 100644 --- a/www/code/markers.js +++ b/www/code/markers.js @@ -689,7 +689,7 @@ define([ Markers.create = function (config) { var Env = config; - Env.authormarks = Util.clone(DEFAULT); + Env.authormarks = {}; Env.enabled = false; Env.myAuthorId = 0; diff --git a/www/common/diffMarked.js b/www/common/diffMarked.js index adba02656..fc9c4046c 100644 --- a/www/common/diffMarked.js +++ b/www/common/diffMarked.js @@ -447,7 +447,9 @@ define([ idx = 0; } - common.getMediaTagPreview(mts, idx); + setTimeout(function () { + common.getMediaTagPreview(mts, idx); + }); }; }; @@ -465,10 +467,10 @@ define([ contextMenu.show(e); }); if ($mt.children().length) { - $mt.off('dblclick preview'); + $mt.off('click dblclick preview'); $mt.on('preview', onPreview($mt)); if ($mt.find('img').length) { - $mt.on('dblclick', function () { + $mt.on('click dblclick', function () { $mt.trigger('preview'); }); } @@ -485,10 +487,10 @@ define([ observer.disconnect(); } }); - $mt.off('dblclick preview'); + $mt.off('click dblclick preview'); $mt.on('preview', onPreview($mt)); if ($mt.find('img').length) { - $mt.on('dblclick', function () { + $mt.on('click dblclick', function () { $mt.trigger('preview'); }); } @@ -518,9 +520,9 @@ define([ $(contextMenu.menu).find('li:not(.cp-svg)').hide(); contextMenu.show(e); }); - $el.off('dblclick preview'); + $el.off('dblclick click preview'); $el.on('preview', onPreview($el)); - $el.on('dblclick', function () { + $el.on('dblclick click', function () { $el.trigger('preview'); }); diff --git a/www/common/inner/common-mediatag.js b/www/common/inner/common-mediatag.js index 3e1f2e75b..295d8b6b5 100644 --- a/www/common/inner/common-mediatag.js +++ b/www/common/inner/common-mediatag.js @@ -256,11 +256,9 @@ define([ $inner.append(cfg.svg); if (!cfg.render) { $spinner.hide(); - console.error('here'); locked = false; return; } - console.error('there'); setTimeout(cfg.render); tag = cfg.svg; } else { diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index 681701129..8c30f2886 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -1003,6 +1003,7 @@ define([ if (typeof(SecureModal.cb) !== "function") { return; } SecureModal.cb(data); }; + config.onFileUpload = onFileUpload; config.onClose = function () { SecureModal.$iframe.hide(); };