github.com/Azareal/Gosora@v0.0.0-20210729070923-553e66b59003/pubnot/trumbowyg/plugins/base64/trumbowyg.base64.js (about) 1 /* =========================================================== 2 * trumbowyg.base64.js v1.0 3 * Base64 plugin for Trumbowyg 4 * http://alex-d.github.com/Trumbowyg 5 * =========================================================== 6 * Author : Cyril Biencourt (lizardK) 7 */ 8 9 (function ($) { 10 'use strict'; 11 12 var isSupported = function () { 13 return typeof FileReader !== 'undefined'; 14 }; 15 16 var isValidImage = function (type) { 17 return /^data:image\/[a-z]?/i.test(type); 18 }; 19 20 $.extend(true, $.trumbowyg, { 21 langs: { 22 // jshint camelcase:false 23 en: { 24 base64: 'Image as base64', 25 file: 'File', 26 errFileReaderNotSupported: 'FileReader is not supported by your browser.', 27 errInvalidImage: 'Invalid image file.' 28 }, 29 fr: { 30 base64: 'Image en base64', 31 file: 'Fichier' 32 }, 33 cs: { 34 base64: 'Vložit obrázek', 35 file: 'Soubor' 36 }, 37 zh_cn: { 38 base64: '图片(Base64编码)', 39 file: '文件' 40 }, 41 nl: { 42 errFileReaderNotSupported: 'Uw browser ondersteunt deze functionaliteit niet.', 43 errInvalidImage: 'De gekozen afbeelding is ongeldig.' 44 }, 45 ru: { 46 base64: 'Изображение как код в base64', 47 file: 'Файл', 48 errFileReaderNotSupported: 'FileReader не поддерживается вашим браузером.', 49 errInvalidImage: 'Недопустимый файл изображения.' 50 }, 51 ja: { 52 base64: '画像 (Base64形式)', 53 file: 'ファイル', 54 errFileReaderNotSupported: 'あなたのブラウザーはFileReaderをサポートしていません', 55 errInvalidImage: '画像形式が正しくありません' 56 } 57 }, 58 // jshint camelcase:true 59 60 plugins: { 61 base64: { 62 shouldInit: isSupported, 63 init: function (trumbowyg) { 64 var btnDef = { 65 isSupported: isSupported, 66 fn: function () { 67 trumbowyg.saveRange(); 68 69 var file; 70 var $modal = trumbowyg.openModalInsert( 71 // Title 72 trumbowyg.lang.base64, 73 74 // Fields 75 { 76 file: { 77 type: 'file', 78 required: true, 79 attributes: { 80 accept: 'image/*' 81 } 82 }, 83 alt: { 84 label: 'description', 85 value: trumbowyg.getRangeText() 86 } 87 }, 88 89 // Callback 90 function (values) { 91 var fReader = new FileReader(); 92 93 fReader.onloadend = function (e) { 94 if (isValidImage(e.target.result)) { 95 trumbowyg.execCmd('insertImage', fReader.result); 96 $(['img[src="', fReader.result, '"]:not([alt])'].join(''), trumbowyg.$box).attr('alt', values.alt); 97 trumbowyg.closeModal(); 98 } else { 99 trumbowyg.addErrorOnModalField( 100 $('input[type=file]', $modal), 101 trumbowyg.lang.errInvalidImage 102 ); 103 } 104 }; 105 106 fReader.readAsDataURL(file); 107 } 108 ); 109 110 $('input[type=file]').on('change', function (e) { 111 file = e.target.files[0]; 112 }); 113 } 114 }; 115 116 trumbowyg.addBtnDef('base64', btnDef); 117 } 118 } 119 } 120 }); 121 })(jQuery);