add support for thumbnails in metadata

This commit is contained in:
ansuz 2017-08-18 12:47:04 +02:00
parent a5cd915b06
commit b17044ad98

View File

@ -6,6 +6,23 @@ define([
var Nacl = window.nacl; var Nacl = window.nacl;
var module = {}; var module = {};
var blobToArrayBuffer = function (blob, cb) {
var reader = new FileReader();
reader.onloadend = function () {
cb(void 0, this.result);
};
reader.readAsArrayBuffer(blob);
};
var arrayBufferToString = function (AB) {
try {
return Nacl.util.encodeBase64(new Uint8Array(AB));
} catch (e) {
console.error(e);
return null;
}
};
module.create = function (common, config) { module.create = function (common, config) {
var File = {}; var File = {};
@ -227,19 +244,33 @@ define([
queue.next(); queue.next();
}; };
var handleFile = File.handleFile = function (file, e) { var handleFile = File.handleFile = function (file, e, thumbnail) {
var reader = new FileReader(); var thumb;
reader.onloadend = function () { var finish = function (arrayBuffer) {
var metadata = {
name: file.name,
type: file.type,
};
if (thumb) { metadata.thumbnail = thumb; }
queue.push({ queue.push({
blob: this.result, blob: arrayBuffer,
metadata: { metadata: metadata,
name: file.name,
type: file.type,
},
dropEvent: e dropEvent: e
}); });
}; };
reader.readAsArrayBuffer(file);
var processFile = function () {
blobToArrayBuffer(file, function (e, buffer) {
finish(buffer);
});
};
if (!thumbnail) { return void processFile(); }
blobToArrayBuffer(thumbnail, function (e, buffer) {
if (e) { console.error(e); }
thumb = arrayBufferToString(buffer);
processFile();
});
}; };
var onFileDrop = File.onFileDrop = function (file, e) { var onFileDrop = File.onFileDrop = function (file, e) {