UNPKG

tinymce-aws-s3-upload-plugin

Version:

This plugin entegrates a Amazon S3 upload button to your TinyMCE.

2 lines (1 loc) 2.65 kB
'use strict';var _typeof='function'==typeof Symbol&&'symbol'==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&'function'==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?'symbol':typeof obj};tinymce.PluginManager.add('AwsS3Upload',function(a,b){var _a$getParam=a.getParam('Awss3UploadSettings'),c=_a$getParam.bucketName,_a$getParam$folderNam=_a$getParam.folderName,h=_a$getParam$folderNam===void 0?'':_a$getParam$folderNam,d=_a$getParam.awsAuth,_a$getParam$buttonTex=_a$getParam.buttonText,i=_a$getParam$buttonTex===void 0?'Upload File':_a$getParam$buttonTex,f=_a$getParam.progress,g=_a$getParam.secondFileSelectedBeforeFirstUpload,j=d.secretAccessKey,k=d.accessKeyId,l=d.region,m=!1;if(!c)return console.log('`bucketName` parameter missing on init AwsS3Upload TinyMCE plugin.'),!1;if(d&&'object'==('undefined'==typeof d?'undefined':_typeof(d))){if(!k)return console.log('`awsAuth` parameter missing `accessKeyId` property on init AwsS3Upload TinyMCE plugin.'),!1;if(!j)return console.log('`awsAuth` parameter missing `secretAccessKey` property on init AwsS3Upload TinyMCE plugin.'),!1;if(!l)return console.log('`awsAuth` parameter missing `secretAccessKey` property on init AwsS3Upload TinyMCE plugin.'),!1;AWS.config.update({region:l,accessKeyId:k,secretAccessKey:j})}var n=a.targetElm,o=document.createElement('input');o.type='file',o.style.cssText='display:none',n.parentNode.insertBefore(o,n);var p=document.createElement('progress');p.max=100,p.value=10,p.style.cssText='display:none',n.parentNode.insertBefore(p,n);var q=new AWS.S3({params:{Bucket:c}});o.addEventListener('change',function(r){r.preventDefault();var s=o.files[0],t=a.contentAreaContainer;if(s){t.parentNode.insertBefore(p,t),f.bar&&'boolean'==typeof f.bar&&(p.style.cssText='display:block;position: absolute;z-index: 9999;width: 120px;height: 15px;right: 10px;top:45px'),m=!0;var u=s.name.split('.').pop(),v=s.name.split('.'+u)[0],w=(h?h+'/':'')+v+'-'+Date.now()+'.'+u,x={Key:w,ContentType:s.type,Body:s,ACL:'public-read'};q.putObject(x).on('httpUploadProgress',function(y){var z=parseInt(100*(y.loaded/y.total));p.value=z,f.callback&&'function'==typeof f.callback&&f.callback(z)}).send(function(y,z){if(m=!1,p.style.cssText='display:none',y)f.errorCallback&&'function'==typeof f.errorCallback&&f.errorCallback(y);else{var A='https://s3-'+l+'.amazonaws.com/'+c+'/'+w;f.successCallback&&'function'==typeof f.successCallback&&f.successCallback(a,A)}})}}),a.addButton('AwsS3UploadButton',{text:i,icon:!1,onclick:function onclick(){m?g.callback&&'function'==typeof g.callback?g.callback():alert('Progress allready'):o.click()}})});