activeadmin_trumbowyg 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +3 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +20 -0
- data/README.md +60 -0
- data/Rakefile +3 -0
- data/activeadmin_trumbowyg.gemspec +19 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ar.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/bg.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/by.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ca.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/cs.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/da.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/de.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/el.min.js +12 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/es.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/es_ar.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fa.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fi.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/fr.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/he.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/hr.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/hu.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/id.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/it.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ja.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ko.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/mn.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/my.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/nl.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/no_nb.min.js +10 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ph.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/pl.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/pt.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/pt_br.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ro.min.js +12 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/rs.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/rs_latin.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ru.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sk.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/sv.min.js +12 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/tr.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/ua.min.js +8 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/vi.min.js +9 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/zh_cn.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/langs/zh_tw.min.js +11 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.js +121 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.js +179 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.js +176 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/sass/trumbowyg.colors.scss +49 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.css +43 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css +2 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.js +965 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/sass/trumbowyg.emoji.scss +56 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css +47 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css +2 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js +83 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.js +101 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.js +41 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js +123 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/trumbowyg.table.js +154 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/table/trumbowyg.table.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/template/trumbowyg.template.js +58 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/template/trumbowyg.template.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.js +242 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.min.js +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/trumbowyg.js +1688 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/trumbowyg.min.js +2 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/ui/icons.svg +1 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/ui/sass/trumbowyg.scss +796 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/ui/trumbowyg.css +584 -0
- data/app/assets/javascripts/activeadmin/trumbowyg/ui/trumbowyg.min.css +2 -0
- data/app/assets/javascripts/activeadmin/trumbowyg_input.js +7 -0
- data/app/assets/stylesheets/activeadmin/_trumbowyg_input.sass +48 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ar.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/bg.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/by.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ca.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/cs.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/da.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/de.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/el.min.js +12 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/es.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/es_ar.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/fa.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/fi.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/fr.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/he.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/hr.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/hu.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/id.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/it.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ja.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ko.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/mn.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/my.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/nl.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/no_nb.min.js +10 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ph.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/pl.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/pt.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/pt_br.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ro.min.js +12 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/rs.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/rs_latin.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ru.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/sk.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/sv.min.js +12 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/tr.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/ua.min.js +8 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/vi.min.js +9 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/zh_cn.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/langs/zh_tw.min.js +11 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.js +121 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/base64/trumbowyg.base64.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.js +179 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.js +176 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/colors/trumbowyg.colors.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/colors/ui/sass/trumbowyg.colors.scss +49 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.css +43 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/colors/ui/trumbowyg.colors.min.css +2 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.js +965 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/emoji/trumbowyg.emoji.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/emoji/ui/sass/trumbowyg.emoji.scss +56 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.css +47 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/emoji/ui/trumbowyg.emoji.min.css +2 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.js +83 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/insertaudio/trumbowyg.insertaudio.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.js +101 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/noembed/trumbowyg.noembed.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.js +41 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/pasteimage/trumbowyg.pasteimage.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.js +123 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/preformatted/trumbowyg.preformatted.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/table/trumbowyg.table.js +154 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/table/trumbowyg.table.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/template/trumbowyg.template.js +58 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/template/trumbowyg.template.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.js +242 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/upload/trumbowyg.upload.min.js +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.js +1688 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/trumbowyg.min.js +2 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/ui/icons.svg +1 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/ui/sass/trumbowyg.scss +796 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/ui/trumbowyg.css +584 -0
- data/app/assets/stylesheets/activeadmin/trumbowyg/ui/trumbowyg.min.css +2 -0
- data/lib/activeadmin/trumbowyg/engine.rb +9 -0
- data/lib/activeadmin/trumbowyg/version.rb +5 -0
- data/lib/activeadmin/trumbowyg.rb +1 -0
- data/lib/activeadmin_trumbowyg.rb +3 -0
- data/lib/formtastic/inputs/trumbowyg_input.rb +12 -0
- data/screenshot.jpg +0 -0
- metadata +217 -0
|
@@ -0,0 +1,121 @@
|
|
|
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);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(e){"use strict";var a=function(){return"undefined"!=typeof FileReader},r=function(e){return/^data:image\/[a-z]?/i.test(e)};e.extend(!0,e.trumbowyg,{langs:{en:{base64:"Image as base64",file:"File",errFileReaderNotSupported:"FileReader is not supported by your browser.",errInvalidImage:"Invalid image file."},fr:{base64:"Image en base64",file:"Fichier"},cs:{base64:"Vložit obrázek",file:"Soubor"},zh_cn:{base64:"图片(Base64编码)",file:"文件"},nl:{errFileReaderNotSupported:"Uw browser ondersteunt deze functionaliteit niet.",errInvalidImage:"De gekozen afbeelding is ongeldig."},ru:{base64:"Изображение как код в base64",file:"Файл",errFileReaderNotSupported:"FileReader не поддерживается вашим браузером.",errInvalidImage:"Недопустимый файл изображения."},ja:{base64:"画像 (Base64形式)",file:"ファイル",errFileReaderNotSupported:"あなたのブラウザーはFileReaderをサポートしていません",errInvalidImage:"画像形式が正しくありません"}},plugins:{base64:{shouldInit:a,init:function(i){var t={isSupported:a,fn:function(){i.saveRange();var a,t=i.openModalInsert(i.lang.base64,{file:{type:"file",required:!0,attributes:{accept:"image/*"}},alt:{label:"description",value:i.getRangeText()}},function(n){var l=new FileReader;l.onloadend=function(a){r(a.target.result)?(i.execCmd("insertImage",l.result),e(['img[src="',l.result,'"]:not([alt])'].join(""),i.$box).attr("alt",n.alt),i.closeModal()):i.addErrorOnModalField(e("input[type=file]",t),i.lang.errInvalidImage)},l.readAsDataURL(a)});e("input[type=file]").on("change",function(e){a=e.target.files[0]})}};i.addBtnDef("base64",t)}}}})}(jQuery);
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/* ===========================================================
|
|
2
|
+
* trumbowyg.cleanpaste.js v1.0
|
|
3
|
+
* Font Clean paste plugin for Trumbowyg
|
|
4
|
+
* http://alex-d.github.com/Trumbowyg
|
|
5
|
+
* ===========================================================
|
|
6
|
+
* Author : Eric Radin
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* This plugin will perform a "cleaning" on any paste, in particular
|
|
11
|
+
* it will clean pasted content of microsoft word document tags and classes.
|
|
12
|
+
*/
|
|
13
|
+
(function ($) {
|
|
14
|
+
'use strict';
|
|
15
|
+
|
|
16
|
+
function reverse(sentString) {
|
|
17
|
+
var theString = '';
|
|
18
|
+
for (var i = sentString.length - 1; i >= 0; i -= 1) {
|
|
19
|
+
theString += sentString.charAt(i);
|
|
20
|
+
}
|
|
21
|
+
return theString;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function checkValidTags(snippet) {
|
|
25
|
+
var theString = snippet;
|
|
26
|
+
|
|
27
|
+
// Replace uppercase element names with lowercase
|
|
28
|
+
theString = theString.replace(/<[^> ]*/g, function (match) {
|
|
29
|
+
return match.toLowerCase();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Replace uppercase attribute names with lowercase
|
|
33
|
+
theString = theString.replace(/<[^>]*>/g, function (match) {
|
|
34
|
+
match = match.replace(/ [^=]+=/g, function (match2) {
|
|
35
|
+
return match2.toLowerCase();
|
|
36
|
+
});
|
|
37
|
+
return match;
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Put quotes around unquoted attributes
|
|
41
|
+
theString = theString.replace(/<[^>]*>/g, function (match) {
|
|
42
|
+
match = match.replace(/( [^=]+=)([^"][^ >]*)/g, '$1\"$2\"');
|
|
43
|
+
return match;
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return theString;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function cleanIt(htmlBefore, htmlAfter) {
|
|
50
|
+
var matchedHead = '';
|
|
51
|
+
var matchedTail = '';
|
|
52
|
+
var afterStart;
|
|
53
|
+
var afterFinish;
|
|
54
|
+
var newSnippet;
|
|
55
|
+
|
|
56
|
+
// we need to extract the inserted block
|
|
57
|
+
for (afterStart = 0; htmlAfter.charAt(afterStart) === htmlBefore.charAt(afterStart); afterStart += 1) {
|
|
58
|
+
matchedHead += htmlAfter.charAt(afterStart);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// If afterStart is inside a HTML tag, move to opening brace of tag
|
|
62
|
+
for (var i = afterStart; i >= 0; i -= 1) {
|
|
63
|
+
if (htmlBefore.charAt(i) === '<') {
|
|
64
|
+
afterStart = i;
|
|
65
|
+
matchedHead = htmlBefore.substring(0, afterStart);
|
|
66
|
+
break;
|
|
67
|
+
} else if (htmlBefore.charAt(i) === '>') {
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// now reverse string and work from the end in
|
|
73
|
+
htmlAfter = reverse(htmlAfter);
|
|
74
|
+
htmlBefore = reverse(htmlBefore);
|
|
75
|
+
|
|
76
|
+
// Find end of both strings that matches
|
|
77
|
+
for (afterFinish = 0; htmlAfter.charAt(afterFinish) === htmlBefore.charAt(afterFinish); afterFinish += 1) {
|
|
78
|
+
matchedTail += htmlAfter.charAt(afterFinish);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// If afterFinish is inside a HTML tag, move to closing brace of tag
|
|
82
|
+
for (var j = afterFinish; j >= 0; j -= 1) {
|
|
83
|
+
if (htmlBefore.charAt(j) === '>') {
|
|
84
|
+
afterFinish = j;
|
|
85
|
+
matchedTail = htmlBefore.substring(0, afterFinish);
|
|
86
|
+
break;
|
|
87
|
+
} else if (htmlBefore.charAt(j) === '<') {
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
matchedTail = reverse(matchedTail);
|
|
93
|
+
|
|
94
|
+
// If there's no difference in pasted content
|
|
95
|
+
if (afterStart === (htmlAfter.length - afterFinish)) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
htmlAfter = reverse(htmlAfter);
|
|
100
|
+
newSnippet = htmlAfter.substring(afterStart, htmlAfter.length - afterFinish);
|
|
101
|
+
|
|
102
|
+
// first make sure all tags and attributes are made valid
|
|
103
|
+
newSnippet = checkValidTags(newSnippet);
|
|
104
|
+
|
|
105
|
+
// Replace opening bold tags with strong
|
|
106
|
+
newSnippet = newSnippet.replace(/<b(\s+|>)/g, '<strong$1');
|
|
107
|
+
// Replace closing bold tags with closing strong
|
|
108
|
+
newSnippet = newSnippet.replace(/<\/b(\s+|>)/g, '</strong$1');
|
|
109
|
+
|
|
110
|
+
// Replace italic tags with em
|
|
111
|
+
newSnippet = newSnippet.replace(/<i(\s+|>)/g, '<em$1');
|
|
112
|
+
// Replace closing italic tags with closing em
|
|
113
|
+
newSnippet = newSnippet.replace(/<\/i(\s+|>)/g, '</em$1');
|
|
114
|
+
|
|
115
|
+
// strip out comments -cgCraft
|
|
116
|
+
newSnippet = newSnippet.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g, '');
|
|
117
|
+
|
|
118
|
+
// strip out -cgCraft
|
|
119
|
+
newSnippet = newSnippet.replace(/ /gi, ' ');
|
|
120
|
+
// strip out extra spaces -cgCraft
|
|
121
|
+
newSnippet = newSnippet.replace(/ <\//gi, '</');
|
|
122
|
+
|
|
123
|
+
while (newSnippet.indexOf(' ') !== -1) {
|
|
124
|
+
var anArray = newSnippet.split(' ');
|
|
125
|
+
newSnippet = anArray.join(' ');
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// strip -cgCraft
|
|
129
|
+
newSnippet = newSnippet.replace(/^\s*|\s*$/g, '');
|
|
130
|
+
|
|
131
|
+
// Strip out unaccepted attributes
|
|
132
|
+
newSnippet = newSnippet.replace(/<[^>]*>/g, function (match) {
|
|
133
|
+
match = match.replace(/ ([^=]+)="[^"]*"/g, function (match2, attributeName) {
|
|
134
|
+
if (['alt', 'href', 'src', 'title'].indexOf(attributeName) !== -1) {
|
|
135
|
+
return match2;
|
|
136
|
+
}
|
|
137
|
+
return '';
|
|
138
|
+
});
|
|
139
|
+
return match;
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
// Final cleanout for MS Word crud
|
|
143
|
+
newSnippet = newSnippet.replace(/<\?xml[^>]*>/g, '');
|
|
144
|
+
newSnippet = newSnippet.replace(/<[^ >]+:[^>]*>/g, '');
|
|
145
|
+
newSnippet = newSnippet.replace(/<\/[^ >]+:[^>]*>/g, '');
|
|
146
|
+
|
|
147
|
+
// remove unwanted tags
|
|
148
|
+
newSnippet = newSnippet.replace(/<(div|span|style|meta|link){1}.*?>/gi, '');
|
|
149
|
+
|
|
150
|
+
htmlAfter = matchedHead + newSnippet + matchedTail;
|
|
151
|
+
return htmlAfter;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
// clean editor
|
|
155
|
+
// this will clean the inserted contents
|
|
156
|
+
// it does a compare, before and after paste to determine the
|
|
157
|
+
// pasted contents
|
|
158
|
+
$.extend(true, $.trumbowyg, {
|
|
159
|
+
plugins: {
|
|
160
|
+
cleanPaste: {
|
|
161
|
+
init: function (trumbowyg) {
|
|
162
|
+
trumbowyg.pasteHandlers.push(function () {
|
|
163
|
+
try {
|
|
164
|
+
var contentBefore = trumbowyg.$ed.html();
|
|
165
|
+
setTimeout(function () {
|
|
166
|
+
var contentAfter = trumbowyg.$ed.html();
|
|
167
|
+
contentAfter = cleanIt(contentBefore, contentAfter);
|
|
168
|
+
trumbowyg.$ed.html(contentAfter);
|
|
169
|
+
}, 0);
|
|
170
|
+
} catch (c) {
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
})(jQuery);
|
|
178
|
+
|
|
179
|
+
|
data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/cleanpaste/trumbowyg.cleanpaste.min.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(r){"use strict";function e(r){for(var e="",t=r.length-1;t>=0;t-=1)e+=r.charAt(t);return e}function t(r){var e=r;return e=e.replace(/<[^> ]*/g,function(r){return r.toLowerCase()}),e=e.replace(/<[^>]*>/g,function(r){return r=r.replace(/ [^=]+=/g,function(r){return r.toLowerCase()})}),e=e.replace(/<[^>]*>/g,function(r){return r=r.replace(/( [^=]+=)([^"][^ >]*)/g,'$1"$2"')})}function n(r,n){var a,c,i,l="",s="";for(a=0;n.charAt(a)===r.charAt(a);a+=1)l+=n.charAt(a);for(var u=a;u>=0;u-=1){if("<"===r.charAt(u)){a=u,l=r.substring(0,a);break}if(">"===r.charAt(u))break}for(n=e(n),r=e(r),c=0;n.charAt(c)===r.charAt(c);c+=1)s+=n.charAt(c);for(var g=c;g>=0;g-=1){if(">"===r.charAt(g)){c=g,s=r.substring(0,c);break}if("<"===r.charAt(g))break}if(s=e(s),a===n.length-c)return!1;for(n=e(n),i=n.substring(a,n.length-c),i=t(i),i=i.replace(/<b(\s+|>)/g,"<strong$1"),i=i.replace(/<\/b(\s+|>)/g,"</strong$1"),i=i.replace(/<i(\s+|>)/g,"<em$1"),i=i.replace(/<\/i(\s+|>)/g,"</em$1"),i=i.replace(/<!(?:--[\s\S]*?--\s*)?>\s*/g,""),i=i.replace(/ /gi," "),i=i.replace(/ <\//gi,"</");-1!==i.indexOf(" ");){var o=i.split(" ");i=o.join(" ")}return i=i.replace(/^\s*|\s*$/g,""),i=i.replace(/<[^>]*>/g,function(r){return r=r.replace(/ ([^=]+)="[^"]*"/g,function(r,e){return-1!==["alt","href","src","title"].indexOf(e)?r:""})}),i=i.replace(/<\?xml[^>]*>/g,""),i=i.replace(/<[^ >]+:[^>]*>/g,""),i=i.replace(/<\/[^ >]+:[^>]*>/g,""),i=i.replace(/<(div|span|style|meta|link){1}.*?>/gi,""),n=l+i+s}r.extend(!0,r.trumbowyg,{plugins:{cleanPaste:{init:function(r){r.pasteHandlers.push(function(){try{var e=r.$ed.html();setTimeout(function(){var t=r.$ed.html();t=n(e,t),r.$ed.html(t)},0)}catch(t){}})}}}})}(jQuery);
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/* ===========================================================
|
|
2
|
+
* trumbowyg.colors.js v1.2
|
|
3
|
+
* Colors picker plugin for Trumbowyg
|
|
4
|
+
* http://alex-d.github.com/Trumbowyg
|
|
5
|
+
* ===========================================================
|
|
6
|
+
* Author : Alexandre Demode (Alex-D)
|
|
7
|
+
* Twitter : @AlexandreDemode
|
|
8
|
+
* Website : alex-d.fr
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
(function ($) {
|
|
12
|
+
'use strict';
|
|
13
|
+
|
|
14
|
+
$.extend(true, $.trumbowyg, {
|
|
15
|
+
langs: {
|
|
16
|
+
// jshint camelcase:false
|
|
17
|
+
cs: {
|
|
18
|
+
foreColor: 'Barva textu',
|
|
19
|
+
backColor: 'Barva pozadí'
|
|
20
|
+
},
|
|
21
|
+
en: {
|
|
22
|
+
foreColor: 'Text color',
|
|
23
|
+
backColor: 'Background color'
|
|
24
|
+
},
|
|
25
|
+
fr: {
|
|
26
|
+
foreColor: 'Couleur du texte',
|
|
27
|
+
backColor: 'Couleur de fond'
|
|
28
|
+
},
|
|
29
|
+
sk: {
|
|
30
|
+
foreColor: 'Farba textu',
|
|
31
|
+
backColor: 'Farba pozadia'
|
|
32
|
+
},
|
|
33
|
+
zh_cn: {
|
|
34
|
+
foreColor: '文字颜色',
|
|
35
|
+
backColor: '背景颜色'
|
|
36
|
+
},
|
|
37
|
+
ru: {
|
|
38
|
+
foreColor: 'Цвет текста',
|
|
39
|
+
backColor: 'Цвет выделения текста'
|
|
40
|
+
},
|
|
41
|
+
ja: {
|
|
42
|
+
foreColor: '文字色',
|
|
43
|
+
backColor: '背景色'
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
// jshint camelcase:true
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
function hex(x) {
|
|
51
|
+
return ('0' + parseInt(x).toString(16)).slice(-2);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function colorToHex(rgb) {
|
|
55
|
+
if (rgb.search('rgb') === -1) {
|
|
56
|
+
return rgb.replace('#', '');
|
|
57
|
+
} else if (rgb === 'rgba(0, 0, 0, 0)') {
|
|
58
|
+
return 'transparent';
|
|
59
|
+
} else {
|
|
60
|
+
rgb = rgb.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/);
|
|
61
|
+
return hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function colorTagHandler(element, trumbowyg) {
|
|
66
|
+
var tags = [];
|
|
67
|
+
|
|
68
|
+
if(!element.style){
|
|
69
|
+
return tags;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// background color
|
|
73
|
+
if (element.style.backgroundColor !== '') {
|
|
74
|
+
var backColor = colorToHex(element.style.backgroundColor);
|
|
75
|
+
if (trumbowyg.o.plugins.colors.colorList.indexOf(backColor) >= 0) {
|
|
76
|
+
tags.push('backColor' + backColor);
|
|
77
|
+
} else {
|
|
78
|
+
tags.push('backColorFree');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// text color
|
|
83
|
+
var foreColor;
|
|
84
|
+
if (element.style.color !== '') {
|
|
85
|
+
foreColor = colorToHex(element.style.color);
|
|
86
|
+
} else if (element.hasAttribute('color')) {
|
|
87
|
+
foreColor = colorToHex(element.getAttribute('color'));
|
|
88
|
+
}
|
|
89
|
+
if (foreColor) {
|
|
90
|
+
if (trumbowyg.o.plugins.colors.colorList.indexOf(foreColor) >= 0) {
|
|
91
|
+
tags.push('foreColor' + foreColor);
|
|
92
|
+
} else {
|
|
93
|
+
tags.push('foreColorFree');
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return tags;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
var defaultOptions = {
|
|
101
|
+
colorList: ['ffffff', '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646', 'ffff00', 'f2f2f2', '7f7f7f', 'ddd9c3', 'c6d9f0', 'dbe5f1', 'f2dcdb', 'ebf1dd', 'e5e0ec', 'dbeef3', 'fdeada', 'fff2ca', 'd8d8d8', '595959', 'c4bd97', '8db3e2', 'b8cce4', 'e5b9b7', 'd7e3bc', 'ccc1d9', 'b7dde8', 'fbd5b5', 'ffe694', 'bfbfbf', '3f3f3f', '938953', '548dd4', '95b3d7', 'd99694', 'c3d69b', 'b2a2c7', 'b7dde8', 'fac08f', 'f2c314', 'a5a5a5', '262626', '494429', '17365d', '366092', '953734', '76923c', '5f497a', '92cddc', 'e36c09', 'c09100', '7f7f7f', '0c0c0c', '1d1b10', '0f243e', '244061', '632423', '4f6128', '3f3151', '31859b', '974806', '7f6000']
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
// Add all colors in two dropdowns
|
|
105
|
+
$.extend(true, $.trumbowyg, {
|
|
106
|
+
plugins: {
|
|
107
|
+
color: {
|
|
108
|
+
init: function (trumbowyg) {
|
|
109
|
+
trumbowyg.o.plugins.colors = trumbowyg.o.plugins.colors || defaultOptions;
|
|
110
|
+
var foreColorBtnDef = {
|
|
111
|
+
dropdown: buildDropdown('foreColor', trumbowyg)
|
|
112
|
+
},
|
|
113
|
+
backColorBtnDef = {
|
|
114
|
+
dropdown: buildDropdown('backColor', trumbowyg)
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
trumbowyg.addBtnDef('foreColor', foreColorBtnDef);
|
|
118
|
+
trumbowyg.addBtnDef('backColor', backColorBtnDef);
|
|
119
|
+
},
|
|
120
|
+
tagHandler: colorTagHandler
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
function buildDropdown(fn, trumbowyg) {
|
|
126
|
+
var dropdown = [];
|
|
127
|
+
|
|
128
|
+
$.each(trumbowyg.o.plugins.colors.colorList, function (i, color) {
|
|
129
|
+
var btn = fn + color,
|
|
130
|
+
btnDef = {
|
|
131
|
+
fn: fn,
|
|
132
|
+
forceCss: true,
|
|
133
|
+
param: '#' + color,
|
|
134
|
+
style: 'background-color: #' + color + ';'
|
|
135
|
+
};
|
|
136
|
+
trumbowyg.addBtnDef(btn, btnDef);
|
|
137
|
+
dropdown.push(btn);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
var removeColorButtonName = fn + 'Remove',
|
|
141
|
+
removeColorBtnDef = {
|
|
142
|
+
fn: 'removeFormat',
|
|
143
|
+
param: fn,
|
|
144
|
+
style: 'background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);'
|
|
145
|
+
};
|
|
146
|
+
trumbowyg.addBtnDef(removeColorButtonName, removeColorBtnDef);
|
|
147
|
+
dropdown.push(removeColorButtonName);
|
|
148
|
+
|
|
149
|
+
// add free color btn
|
|
150
|
+
var freeColorButtonName = fn + 'Free',
|
|
151
|
+
freeColorBtnDef = {
|
|
152
|
+
fn: function () {
|
|
153
|
+
trumbowyg.openModalInsert(trumbowyg.lang[fn],
|
|
154
|
+
{
|
|
155
|
+
color: {
|
|
156
|
+
label: fn,
|
|
157
|
+
value: '#FFFFFF'
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
// callback
|
|
161
|
+
function (values) {
|
|
162
|
+
trumbowyg.execCmd(fn, values.color);
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
);
|
|
166
|
+
},
|
|
167
|
+
text: '#',
|
|
168
|
+
// style adjust for displaying the text
|
|
169
|
+
style: 'text-indent: 0;line-height: 20px;padding: 0 5px;'
|
|
170
|
+
};
|
|
171
|
+
trumbowyg.addBtnDef(freeColorButtonName, freeColorBtnDef);
|
|
172
|
+
dropdown.push(freeColorButtonName);
|
|
173
|
+
|
|
174
|
+
return dropdown;
|
|
175
|
+
}
|
|
176
|
+
})(jQuery);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
!function(o){"use strict";function r(o){return("0"+parseInt(o).toString(16)).slice(-2)}function e(o){return-1===o.search("rgb")?o.replace("#",""):"rgba(0, 0, 0, 0)"===o?"transparent":(o=o.match(/^rgba?\((\d+),\s*(\d+),\s*(\d+)(?:,\s*(\d+))?\)$/),r(o[1])+r(o[2])+r(o[3]))}function f(o,r){var f=[];if(!o.style)return f;if(""!==o.style.backgroundColor){var c=e(o.style.backgroundColor);r.o.plugins.colors.colorList.indexOf(c)>=0?f.push("backColor"+c):f.push("backColorFree")}var a;return""!==o.style.color?a=e(o.style.color):o.hasAttribute("color")&&(a=e(o.getAttribute("color"))),a&&(r.o.plugins.colors.colorList.indexOf(a)>=0?f.push("foreColor"+a):f.push("foreColorFree")),f}function c(r,e){var f=[];o.each(e.o.plugins.colors.colorList,function(o,c){var a=r+c,d={fn:r,forceCss:!0,param:"#"+c,style:"background-color: #"+c+";"};e.addBtnDef(a,d),f.push(a)});var c=r+"Remove",a={fn:"removeFormat",param:r,style:"background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAG0lEQVQIW2NkQAAfEJMRmwBYhoGBYQtMBYoAADziAp0jtJTgAAAAAElFTkSuQmCC);"};e.addBtnDef(c,a),f.push(c);var d=r+"Free",l={fn:function(){e.openModalInsert(e.lang[r],{color:{label:r,value:"#FFFFFF"}},function(o){return e.execCmd(r,o.color),!0})},text:"#",style:"text-indent: 0;line-height: 20px;padding: 0 5px;"};return e.addBtnDef(d,l),f.push(d),f}o.extend(!0,o.trumbowyg,{langs:{cs:{foreColor:"Barva textu",backColor:"Barva pozadí"},en:{foreColor:"Text color",backColor:"Background color"},fr:{foreColor:"Couleur du texte",backColor:"Couleur de fond"},sk:{foreColor:"Farba textu",backColor:"Farba pozadia"},zh_cn:{foreColor:"文字颜色",backColor:"背景颜色"},ru:{foreColor:"Цвет текста",backColor:"Цвет выделения текста"},ja:{foreColor:"文字色",backColor:"背景色"}}});var a={colorList:["ffffff","000000","eeece1","1f497d","4f81bd","c0504d","9bbb59","8064a2","4bacc6","f79646","ffff00","f2f2f2","7f7f7f","ddd9c3","c6d9f0","dbe5f1","f2dcdb","ebf1dd","e5e0ec","dbeef3","fdeada","fff2ca","d8d8d8","595959","c4bd97","8db3e2","b8cce4","e5b9b7","d7e3bc","ccc1d9","b7dde8","fbd5b5","ffe694","bfbfbf","3f3f3f","938953","548dd4","95b3d7","d99694","c3d69b","b2a2c7","b7dde8","fac08f","f2c314","a5a5a5","262626","494429","17365d","366092","953734","76923c","5f497a","92cddc","e36c09","c09100","7f7f7f","0c0c0c","1d1b10","0f243e","244061","632423","4f6128","3f3151","31859b","974806","7f6000"]};o.extend(!0,o.trumbowyg,{plugins:{color:{init:function(o){o.o.plugins.colors=o.o.plugins.colors||a;var r={dropdown:c("foreColor",o)},e={dropdown:c("backColor",o)};o.addBtnDef("foreColor",r),o.addBtnDef("backColor",e)},tagHandler:f}}})}(jQuery);
|
data/app/assets/stylesheets/activeadmin/trumbowyg/plugins/colors/ui/sass/trumbowyg.colors.scss
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trumbowyg v2.8.1 - A lightweight WYSIWYG editor
|
|
3
|
+
* Default stylesheet for Trumbowyg editor plugin
|
|
4
|
+
* ------------------------
|
|
5
|
+
* @link http://alex-d.github.io/Trumbowyg
|
|
6
|
+
* @license MIT
|
|
7
|
+
* @author Alexandre Demode (Alex-D)
|
|
8
|
+
* Twitter : @AlexandreDemode
|
|
9
|
+
* Website : alex-d.fr
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
.trumbowyg-dropdown-foreColor,
|
|
13
|
+
.trumbowyg-dropdown-backColor {
|
|
14
|
+
width: 276px;
|
|
15
|
+
padding: 7px 5px;
|
|
16
|
+
|
|
17
|
+
svg {
|
|
18
|
+
display: none !important;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
button {
|
|
22
|
+
display: block;
|
|
23
|
+
position: relative;
|
|
24
|
+
float: left;
|
|
25
|
+
text-indent: -9999px;
|
|
26
|
+
height: 20px;
|
|
27
|
+
width: 20px;
|
|
28
|
+
border: 1px solid #333;
|
|
29
|
+
padding: 0;
|
|
30
|
+
margin: 2px;
|
|
31
|
+
|
|
32
|
+
&:hover,
|
|
33
|
+
&:focus {
|
|
34
|
+
&::after {
|
|
35
|
+
content: " ";
|
|
36
|
+
display: block;
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: -5px;
|
|
39
|
+
left: -5px;
|
|
40
|
+
height: 27px;
|
|
41
|
+
width: 27px;
|
|
42
|
+
background: inherit;
|
|
43
|
+
border: 1px solid #FFF;
|
|
44
|
+
box-shadow: #000 0 0 2px;
|
|
45
|
+
z-index: 10;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trumbowyg v2.8.1 - A lightweight WYSIWYG editor
|
|
3
|
+
* Trumbowyg plugin stylesheet
|
|
4
|
+
* ------------------------
|
|
5
|
+
* @link http://alex-d.github.io/Trumbowyg
|
|
6
|
+
* @license MIT
|
|
7
|
+
* @author Alexandre Demode (Alex-D)
|
|
8
|
+
* Twitter : @AlexandreDemode
|
|
9
|
+
* Website : alex-d.fr
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
.trumbowyg-dropdown-foreColor,
|
|
13
|
+
.trumbowyg-dropdown-backColor {
|
|
14
|
+
width: 276px;
|
|
15
|
+
padding: 7px 5px; }
|
|
16
|
+
.trumbowyg-dropdown-foreColor svg,
|
|
17
|
+
.trumbowyg-dropdown-backColor svg {
|
|
18
|
+
display: none !important; }
|
|
19
|
+
.trumbowyg-dropdown-foreColor button,
|
|
20
|
+
.trumbowyg-dropdown-backColor button {
|
|
21
|
+
display: block;
|
|
22
|
+
position: relative;
|
|
23
|
+
float: left;
|
|
24
|
+
text-indent: -9999px;
|
|
25
|
+
height: 20px;
|
|
26
|
+
width: 20px;
|
|
27
|
+
border: 1px solid #333;
|
|
28
|
+
padding: 0;
|
|
29
|
+
margin: 2px; }
|
|
30
|
+
.trumbowyg-dropdown-foreColor button:hover::after, .trumbowyg-dropdown-foreColor button:focus::after,
|
|
31
|
+
.trumbowyg-dropdown-backColor button:hover::after,
|
|
32
|
+
.trumbowyg-dropdown-backColor button:focus::after {
|
|
33
|
+
content: " ";
|
|
34
|
+
display: block;
|
|
35
|
+
position: absolute;
|
|
36
|
+
top: -5px;
|
|
37
|
+
left: -5px;
|
|
38
|
+
height: 27px;
|
|
39
|
+
width: 27px;
|
|
40
|
+
background: inherit;
|
|
41
|
+
border: 1px solid #FFF;
|
|
42
|
+
box-shadow: #000 0 0 2px;
|
|
43
|
+
z-index: 10; }
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/** Trumbowyg v2.8.1 - A lightweight WYSIWYG editor - alex-d.github.io/Trumbowyg - License MIT - Author : Alexandre Demode (Alex-D) / alex-d.fr */
|
|
2
|
+
.trumbowyg-dropdown-backColor,.trumbowyg-dropdown-foreColor{width:276px;padding:7px 5px}.trumbowyg-dropdown-backColor svg,.trumbowyg-dropdown-foreColor svg{display:none!important}.trumbowyg-dropdown-backColor button,.trumbowyg-dropdown-foreColor button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.trumbowyg-dropdown-backColor button:focus::after,.trumbowyg-dropdown-backColor button:hover::after,.trumbowyg-dropdown-foreColor button:focus::after,.trumbowyg-dropdown-foreColor button:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;border:1px solid #FFF;box-shadow:#000 0 0 2px;z-index:10}
|