Improve media-tag export in pad to work with existing CSP

This commit is contained in:
yflory 2017-10-23 10:55:40 +02:00
parent 3e4faf1be1
commit c1d05a00ba
3 changed files with 19 additions and 5 deletions

View File

@ -207,6 +207,13 @@ define([], function () {
return Array.prototype.slice.call(A);
};
Util.blobToImage = function (blob, cb) {
var reader = new FileReader();
reader.onloadend = function() {
cb(reader.result);
};
reader.readAsDataURL(blob);
};
Util.blobURLToImage = function (url, cb) {
var xhr = new XMLHttpRequest();
xhr.onload = function() {

View File

@ -1498,10 +1498,15 @@ define([
if (decrypted.callback) {
var cb = decrypted.callback;
cb(function (mediaObject) {
if (mediaObject.type !== 'download') { return; }
var root = mediaObject.rootElement;
var root = mediaObject.element;
if (!root) { return; }
if (mediaObject.type === 'image') {
$(root).data('blob', decrypted.blob);
}
if (mediaObject.type !== 'download') { return; }
var metadata = decrypted.metadata;
var title = '';

View File

@ -477,9 +477,11 @@ define([
var exportMediaTags = function (inner, cb) {
var $clone = $(inner).clone();
nThen(function (waitFor) {
$clone.find('media-tag > img').each(function (i, el) {
Util.blobURLToImage($(el).attr('src'), waitFor(function (imgSrc) {
$(el).attr('src', imgSrc);
$(inner).find('media-tag').each(function (i, el) {
if (!$(el).data('blob')) { return; }
Util.blobToImage($(el).data('blob'), waitFor(function (imgSrc) {
$clone.find('media-tag[src="' + $(el).attr('src') + '"] img')
.attr('src', imgSrc);
}));
});
}).nThen(function () {