Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging
This commit is contained in:
@@ -3,14 +3,19 @@ define([
|
||||
'/api/config',
|
||||
'/common/cryptpad-common.js',
|
||||
'/common/common-util.js',
|
||||
'/common/common-hash.js',
|
||||
'/common/media-tag.js',
|
||||
'/common/tippy.min.js',
|
||||
'/customize/application_config.js',
|
||||
'/file/file-crypto.js',
|
||||
'/bower_components/localforage/dist/localforage.min.js',
|
||||
|
||||
'/bower_components/tweetnacl/nacl-fast.min.js',
|
||||
'css!/common/tippy.css',
|
||||
], function ($, Config, Cryptpad, Util, MediaTag, Tippy, AppConfig) {
|
||||
], function ($, Config, Cryptpad, Util, Hash, MediaTag, Tippy, AppConfig, FileCrypto, localForage) {
|
||||
var UI = {};
|
||||
var Messages = Cryptpad.Messages;
|
||||
var Nacl = window.nacl;
|
||||
|
||||
/**
|
||||
* Requirements from cryptpad-common.js
|
||||
@@ -28,6 +33,40 @@ define([
|
||||
* - createDropdown
|
||||
*/
|
||||
|
||||
var addThumbnail = function (err, thumb, $span, cb) {
|
||||
var img = new Image();
|
||||
img.src = 'data:;base64,'+thumb;
|
||||
$span.find('.cp-icon').hide();
|
||||
$span.prepend(img);
|
||||
cb($(img));
|
||||
};
|
||||
UI.displayThumbnail = function (href, $container, cb) {
|
||||
cb = cb || $.noop;
|
||||
var parsed = Hash.parsePadUrl(href);
|
||||
if (parsed.type !== 'file') { return; }
|
||||
var k ='thumbnail-' + href;
|
||||
var whenNewThumb = function () {
|
||||
var secret = Hash.getSecrets('file', parsed.hash);
|
||||
var hexFileName = Util.base64ToHex(secret.channel);
|
||||
var src = Hash.getBlobPathFromHex(hexFileName);
|
||||
var cryptKey = secret.keys && secret.keys.fileKeyStr;
|
||||
var key = Nacl.util.decodeBase64(cryptKey);
|
||||
FileCrypto.fetchDecryptedMetadata(src, key, function (e, metadata) {
|
||||
if (!metadata.thumbnail) {
|
||||
return void localForage.setItem(k, 'EMPTY');
|
||||
}
|
||||
localForage.setItem(k, metadata.thumbnail, function (err) {
|
||||
addThumbnail(err, metadata.thumbnail, $container, cb);
|
||||
});
|
||||
});
|
||||
};
|
||||
localForage.getItem(k, function (err, v) {
|
||||
if (!v) { return void whenNewThumb(); }
|
||||
if (v === 'EMPTY') { return; }
|
||||
addThumbnail(err, v, $container, cb);
|
||||
});
|
||||
};
|
||||
|
||||
UI.updateTags = function (common, href) {
|
||||
var sframeChan = common.getSframeChannel();
|
||||
sframeChan.query('Q_TAGS_GET', href || null, function (err, res) {
|
||||
@@ -92,7 +131,7 @@ define([
|
||||
target: data.target
|
||||
};
|
||||
if (data.filter && !data.filter(file)) {
|
||||
Cryptpad.log('TODO: invalid avatar (type or size)');
|
||||
Cryptpad.log('Invalid avatar (type or size)');
|
||||
return;
|
||||
}
|
||||
data.FM.handleFile(file, ev);
|
||||
@@ -398,9 +437,6 @@ define([
|
||||
}, LIMIT_REFRESH_RATE * 3);
|
||||
|
||||
updateUsage();
|
||||
/*getProxy().on('change', ['drive'], function () {
|
||||
updateUsage();
|
||||
}); TODO*/
|
||||
cb(null, $container);
|
||||
};
|
||||
|
||||
|
||||
@@ -80,6 +80,7 @@ define([
|
||||
funcs.createButton = callWithCommon(UI.createButton);
|
||||
funcs.createUsageBar = callWithCommon(UI.createUsageBar);
|
||||
funcs.updateTags = callWithCommon(UI.updateTags);
|
||||
funcs.displayThumbnail = UI.displayThumbnail;
|
||||
|
||||
// History
|
||||
funcs.getHistory = callWithCommon(History.create);
|
||||
|
||||
@@ -443,7 +443,7 @@ define([
|
||||
$shareBlock.find('a.cp-toolbar-share-view-embed').click(function () {
|
||||
var url = origin + pathname + '#' + hashes.viewHash;
|
||||
var parsed = Cryptpad.parsePadUrl(url);
|
||||
url = origin + parsed.getUrl({embed: true});
|
||||
url = origin + parsed.getUrl({embed: true, present: true});
|
||||
// Alertify content
|
||||
var $content = $('<div>');
|
||||
$('<input>', {'style':'display:none;'}).appendTo($content);
|
||||
|
||||
Reference in New Issue
Block a user