scratch – Blame information for rev 58

Subversion Repositories:
Rev:
Rev Author Line No. Line
58 office 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 },
46 // jshint camelcase:true
47  
48 plugins: {
49 base64: {
50 shouldInit: isSupported,
51 init: function (trumbowyg) {
52 var btnDef = {
53 isSupported: isSupported,
54 fn: function () {
55 trumbowyg.saveRange();
56  
57 var file;
58 var $modal = trumbowyg.openModalInsert(
59 // Title
60 trumbowyg.lang.base64,
61  
62 // Fields
63 {
64 file: {
65 type: 'file',
66 required: true,
67 attributes: {
68 accept: 'image/*'
69 }
70 },
71 alt: {
72 label: 'description',
73 value: trumbowyg.getRangeText()
74 }
75 },
76  
77 // Callback
78 function (values) {
79 var fReader = new FileReader();
80  
81 fReader.onloadend = function (e) {
82 if (isValidImage(e.target.result)) {
83 trumbowyg.execCmd('insertImage', fReader.result);
84 $(['img[src="', fReader.result, '"]:not([alt])'].join(''), trumbowyg.$box).attr('alt', values.alt);
85 trumbowyg.closeModal();
86 } else {
87 trumbowyg.addErrorOnModalField(
88 $('input[type=file]', $modal),
89 trumbowyg.lang.errInvalidImage
90 );
91 }
92 };
93  
94 fReader.readAsDataURL(file);
95 }
96 );
97  
98 $('input[type=file]').on('change', function (e) {
99 file = e.target.files[0];
100 });
101 }
102 };
103  
104 trumbowyg.addBtnDef('base64', btnDef);
105 }
106 }
107 }
108 });
109 })(jQuery);