|
@@ -176,36 +176,71 @@ Template.editor.onRendered(() => {
|
|
const $summernote = getSummernote(this);
|
|
const $summernote = getSummernote(this);
|
|
if (files && files.length > 0) {
|
|
if (files && files.length > 0) {
|
|
const image = files[0];
|
|
const image = files[0];
|
|
- const reader = new FileReader();
|
|
|
|
|
|
+ const currentCard = Cards.findOne(Session.get('currentCard'));
|
|
const MAX_IMAGE_PIXEL = Utils.MAX_IMAGE_PIXEL;
|
|
const MAX_IMAGE_PIXEL = Utils.MAX_IMAGE_PIXEL;
|
|
const COMPRESS_RATIO = Utils.IMAGE_COMPRESS_RATIO;
|
|
const COMPRESS_RATIO = Utils.IMAGE_COMPRESS_RATIO;
|
|
- const processData = function(dataURL) {
|
|
|
|
|
|
+ const insertImage = src => {
|
|
const img = document.createElement('img');
|
|
const img = document.createElement('img');
|
|
- img.src = dataURL;
|
|
|
|
|
|
+ img.src = src;
|
|
img.setAttribute('width', '100%');
|
|
img.setAttribute('width', '100%');
|
|
$summernote.summernote('insertNode', img);
|
|
$summernote.summernote('insertNode', img);
|
|
};
|
|
};
|
|
- reader.onload = function(e) {
|
|
|
|
- const dataurl = e && e.target && e.target.result;
|
|
|
|
- if (dataurl !== undefined) {
|
|
|
|
- if (MAX_IMAGE_PIXEL) {
|
|
|
|
|
|
+ const processData = function(fileObj) {
|
|
|
|
+ Utils.processUploadedAttachment(
|
|
|
|
+ currentCard,
|
|
|
|
+ fileObj,
|
|
|
|
+ attachment => {
|
|
|
|
+ if (
|
|
|
|
+ attachment &&
|
|
|
|
+ attachment._id &&
|
|
|
|
+ attachment.isImage()
|
|
|
|
+ ) {
|
|
|
|
+ attachment.one('uploaded', function() {
|
|
|
|
+ const maxTry = 3;
|
|
|
|
+ const checkItvl = 500;
|
|
|
|
+ let retry = 0;
|
|
|
|
+ const checkUrl = function() {
|
|
|
|
+ // even though uploaded event fired, attachment.url() is still null somehow //TODO
|
|
|
|
+ const url = attachment.url();
|
|
|
|
+ if (url) {
|
|
|
|
+ insertImage(url);
|
|
|
|
+ } else {
|
|
|
|
+ retry++;
|
|
|
|
+ if (retry < maxTry) {
|
|
|
|
+ setTimeout(checkUrl, checkItvl);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+ checkUrl();
|
|
|
|
+ });
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ );
|
|
|
|
+ };
|
|
|
|
+ if (MAX_IMAGE_PIXEL) {
|
|
|
|
+ const reader = new FileReader();
|
|
|
|
+ reader.onload = function(e) {
|
|
|
|
+ const dataurl = e && e.target && e.target.result;
|
|
|
|
+ if (dataurl !== undefined) {
|
|
// need to shrink image
|
|
// need to shrink image
|
|
Utils.shrinkImage({
|
|
Utils.shrinkImage({
|
|
dataurl,
|
|
dataurl,
|
|
maxSize: MAX_IMAGE_PIXEL,
|
|
maxSize: MAX_IMAGE_PIXEL,
|
|
ratio: COMPRESS_RATIO,
|
|
ratio: COMPRESS_RATIO,
|
|
- callback(changed) {
|
|
|
|
- if (changed !== false && !!changed) {
|
|
|
|
- processData(changed);
|
|
|
|
|
|
+ toBlob: true,
|
|
|
|
+ callback(blob) {
|
|
|
|
+ if (blob !== false) {
|
|
|
|
+ blob.name = image.name;
|
|
|
|
+ processData(blob);
|
|
}
|
|
}
|
|
},
|
|
},
|
|
});
|
|
});
|
|
- } else {
|
|
|
|
- processData(dataurl);
|
|
|
|
}
|
|
}
|
|
- }
|
|
|
|
- };
|
|
|
|
- reader.readAsDataURL(image);
|
|
|
|
|
|
+ };
|
|
|
|
+ reader.readAsDataURL(image);
|
|
|
|
+ } else {
|
|
|
|
+ processData(image);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
},
|
|
},
|
|
onPaste() {
|
|
onPaste() {
|