Merge branch 'staging' into evilham

pull/1/head
ansuz 7 years ago
commit 11b8b380fd

@ -237,6 +237,14 @@ define([
!secret.hashData.present); !secret.hashData.present);
}, "test support for trailing slashes in version 1 hash failed to parse"); }, "test support for trailing slashes in version 1 hash failed to parse");
assert(function (cb) {
var secret = Cryptpad.parsePadUrl('/invite/#/1/ilrOtygzDVoUSRpOOJrUuQ/e8jvf36S3chzkkcaMrLSW7PPrz7VDp85lIFNI26dTmr=/');
var hd = secret.hashData;
cb(hd.channel === "ilrOtygzDVoUSRpOOJrUuQ" &&
hd.pubkey === "e8jvf36S3chzkkcaMrLSW7PPrz7VDp85lIFNI26dTmr=" &&
hd.type === 'invite');
}, "test support for invite urls");
assert(function (cb) { assert(function (cb) {
// TODO // TODO
return cb(true); return cb(true);
@ -278,7 +286,7 @@ define([
// recreate a _mostly_ equivalent DOM // recreate a _mostly_ equivalent DOM
var dom = Flat.toDOM(flat); var dom = Flat.toDOM(flat);
// assume we don't care about comments // assume we don't care about comments
var bodyText = document.body.outerHTML.replace(/<!\-\-[\s\S]*?\-\->/g, '') var bodyText = document.body.outerHTML.replace(/<!\-\-[\s\S]*?\-\->/g, '');
// check for equality // check for equality
cb(dom.outerHTML === bodyText); cb(dom.outerHTML === bodyText);
}); });

@ -526,7 +526,8 @@ define([
// them. // them.
var win; var win;
$('.tippy-popper').each(function (i, el) { $('.tippy-popper').each(function (i, el) {
win = win || $('#pad-iframe')[0].contentWindow; win = win || $('#pad-iframe').length? $('#pad-iframe')[0].contentWindow: undefined;
if (!win) { return; }
if (win.$('[aria-describedby=' + el.getAttribute('id') + ']').length === 0) { if (win.$('[aria-describedby=' + el.getAttribute('id') + ']').length === 0) {
el.remove(); el.remove();
} }

@ -4,7 +4,8 @@ define([
var Nacl = window.nacl; var Nacl = window.nacl;
var Thumb = { var Thumb = {
dimension: 100, dimension: 100,
padDimension: 200 padDimension: 200,
UPDATE_INTERVAL: 5000
}; };
var supportedTypes = [ var supportedTypes = [
@ -43,7 +44,7 @@ define([
} }
}; };
var getResizedDimensions = function (img, type) { var getResizedDimensions = Thumb.getResizedDimensions = function (img, type) {
var h = type === 'video' ? img.videoHeight : img.height; var h = type === 'video' ? img.videoHeight : img.height;
var w = type === 'video' ? img.videoWidth : img.width; var w = type === 'video' ? img.videoWidth : img.width;

@ -285,7 +285,7 @@ define([
SFUI.setPadThumbnail(href, b64); SFUI.setPadThumbnail(href, b64);
}); });
}; };
window.setInterval(mkThumbnail, 5000); window.setInterval(mkThumbnail, Thumb.UPDATE_INTERVAL);
} }
if (newPad) { if (newPad) {

@ -921,6 +921,7 @@ define([
return count; return count;
}; };
var joined = false;
metadataMgr.onChange(function () { metadataMgr.onChange(function () {
var newdata = metadataMgr.getMetadata().users; var newdata = metadataMgr.getMetadata().users;
var netfluxIds = Object.keys(newdata); var netfluxIds = Object.keys(newdata);
@ -949,7 +950,7 @@ define([
return; return;
} }
for (var k in newdata) { for (var k in newdata) {
if (k !== userNetfluxId && netfluxIds.indexOf(k) !== -1) { if (joined && k !== userNetfluxId && netfluxIds.indexOf(k) !== -1) {
if (typeof oldUserData[k] === "undefined") { if (typeof oldUserData[k] === "undefined") {
// if the same uid is already present in the userdata, don't notify // if the same uid is already present in the userdata, don't notify
if (!userPresent(k, newdata[k], oldUserData)) { if (!userPresent(k, newdata[k], oldUserData)) {
@ -960,6 +961,7 @@ define([
} }
} }
} }
joined = true;
oldUserData = JSON.parse(JSON.stringify(newdata)); oldUserData = JSON.parse(JSON.stringify(newdata));
}); });
} }

@ -14,6 +14,8 @@ define([
'/poll/render.js', '/poll/render.js',
'/common/diffMarked.js', '/common/diffMarked.js',
'/common/sframe-common-codemirror.js', '/common/sframe-common-codemirror.js',
'/common/sframe-common-interface.js',
'/common/common-thumbnail.js',
'cm/lib/codemirror', 'cm/lib/codemirror',
'cm/addon/display/placeholder', 'cm/addon/display/placeholder',
@ -41,6 +43,8 @@ define([
Renderer, Renderer,
DiffMd, DiffMd,
SframeCM, SframeCM,
SFUI,
Thumb,
CMeditor) CMeditor)
{ {
var Messages = Cryptpad.Messages; var Messages = Cryptpad.Messages;
@ -790,6 +794,51 @@ define([
updateComments(); updateComments();
}; };
var initThumbnails = function () {
var oldThumbnailState;
var privateDat = metadataMgr.getPrivateData();
var hash = privateDat.availableHashes.editHash ||
privateDat.availableHashes.viewHash;
var href = privateDat.pathname + '#' + hash;
var $el = $('.cp-app-poll-realtime');
//var $el = $('#cp-app-poll-table');
var options = {
getContainer: function () { return $el[0]; },
filter: function (el, before) {
if (before) {
$el.parents().css('overflow', 'visible');
$el.css('max-height', Math.max(600, $(el).width()) + 'px');
$el.find('tr td:first-child, tr td:last-child, tr td:nth-last-child(2)')
.css('position', 'static');
$el.find('#cp-app-poll-comments').css('display', 'none');
$el.find('#cp-app-poll-table-container').css('text-align', 'center');
$el.find('#cp-app-poll-table-scroll').css('margin', 'auto');
$el.find('#cp-app-poll-table-scroll').css('max-width', '100%');
return;
}
$el.parents().css('overflow', '');
$el.css('max-height', '');
$el.find('#cp-app-poll-comments').css('display', '');
$el.find('#cp-app-poll-table-container').css('text-align', '');
$el.find('#cp-app-poll-table-scroll').css('margin', '');
$el.find('#cp-app-poll-table-scroll').css('max-width', '');
$el.find('tr td:first-child, tr td:last-child, tr td:nth-last-child(2)')
.css('position', '');
}
};
var mkThumbnail = function () {
if (!hash) { return; }
if (!APP.proxy) { return; }
var content = JSON.stringify(APP.proxy.content);
if (content === oldThumbnailState) { return; }
Thumb.fromDOM(options, function (err, b64) {
oldThumbnailState = content;
SFUI.setPadThumbnail(href, b64);
});
};
window.setInterval(mkThumbnail, Thumb.UPDATE_INTERVAL);
};
var checkDeletedCells = function () { var checkDeletedCells = function () {
// faster than forEach? // faster than forEach?
var c; var c;
@ -938,6 +987,7 @@ define([
var $table = APP.$table = $('#cp-app-poll-table-scroll').find('table'); var $table = APP.$table = $('#cp-app-poll-table-scroll').find('table');
updateDisplayedTable(); updateDisplayedTable();
updateDescription(null, APP.proxy.description || ''); updateDescription(null, APP.proxy.description || '');
initThumbnails();
// Initialize author name for comments. // Initialize author name for comments.
// Disable name modification for logged in users // Disable name modification for logged in users

@ -10,6 +10,7 @@ define([
'/common/cryptget.js', '/common/cryptget.js',
'/bower_components/nthen/index.js', '/bower_components/nthen/index.js',
'/common/sframe-common.js', '/common/sframe-common.js',
'/common/sframe-common-interface.js',
'/api/config', '/api/config',
'/common/common-realtime.js', '/common/common-realtime.js',
'/customize/pages.js', '/customize/pages.js',
@ -36,6 +37,7 @@ define([
Cryptget, Cryptget,
nThen, nThen,
SFCommon, SFCommon,
SFUI,
ApiConfig, ApiConfig,
CommonRealtime, CommonRealtime,
Pages, Pages,
@ -372,6 +374,27 @@ define([
onLocal(); onLocal();
}; };
var initThumbnails = function () {
var oldThumbnailState;
var privateDat = metadataMgr.getPrivateData();
var hash = privateDat.availableHashes.editHash ||
privateDat.availableHashes.viewHash;
var href = privateDat.pathname + '#' + hash;
var mkThumbnail = function () {
if (!hash) { return; }
if (initializing) { return; }
if (!APP.realtime) { return; }
var content = APP.realtime.getUserDoc();
if (content === oldThumbnailState) { return; }
var D = Thumb.getResizedDimensions($canvas[0], 'pad');
Thumb.fromCanvas($canvas[0], D, function (err, b64) {
oldThumbnailState = content;
SFUI.setPadThumbnail(href, b64);
});
};
window.setInterval(mkThumbnail, Thumb.UPDATE_INTERVAL);
};
config.onInit = function (info) { config.onInit = function (info) {
updateLocalPalette(palette); updateLocalPalette(palette);
readOnly = metadataMgr.getPrivateData().readOnly; readOnly = metadataMgr.getPrivateData().readOnly;
@ -532,6 +555,10 @@ define([
initializing = false; initializing = false;
config.onLocal(); config.onLocal();
Cryptpad.removeLoadingScreen(); Cryptpad.removeLoadingScreen();
initThumbnails();
if (readOnly) { return; } if (readOnly) { return; }
if (isNew) { if (isNew) {
common.openTemplatePicker(); common.openTemplatePicker();

Loading…
Cancel
Save