summernote-rails 0.6.7.0 → 0.6.9.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 +4 -4
- data/lib/summernote-rails/version.rb +1 -1
- data/vendor/assets/javascripts/summernote/locales/bg-BG.js +99 -0
- data/vendor/assets/javascripts/summernote/locales/fr-FR.js +12 -4
- data/vendor/assets/javascripts/summernote/plugin/summernote-ext-hello.js +6 -6
- data/vendor/assets/javascripts/summernote/plugin/summernote-ext-video.js +3 -3
- data/vendor/assets/javascripts/summernote/summernote.js +208 -108
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5cb15d8591364b1ceb1017edf2162d29900cee9
|
4
|
+
data.tar.gz: 7c2d869058695740d1346e0be7fbbf424ac2a4df
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f1f5990ca679cb884e949d73b2bbc8c1dc5e944f17d9e632b42e52ff90e3910051f122315685704e3345d8b139b2613282ab11e08bc61d1a09e461657a61ad4e
|
7
|
+
data.tar.gz: 962edc4c209758d9aee11d4a6a948163a203ebf482f2112b0bdd7394e737f7ddebf1b2a16366fc3bf1f5109d7880b03f29ca271e4b204e3b0cb5ba80f1996f8b
|
@@ -0,0 +1,99 @@
|
|
1
|
+
(function ($) {
|
2
|
+
$.extend($.summernote.lang, {
|
3
|
+
'bg-BG': {
|
4
|
+
font: {
|
5
|
+
bold: 'Удебелен',
|
6
|
+
italic: 'Наклонен',
|
7
|
+
underline: 'Подчертан',
|
8
|
+
clear: 'Изчисти стиловете',
|
9
|
+
height: 'Височина',
|
10
|
+
name: 'Шрифт',
|
11
|
+
strikethrough: 'Задраскано',
|
12
|
+
subscript: 'Долен индекс',
|
13
|
+
superscript: 'Горен индекс',
|
14
|
+
size: 'Размер на шрифта'
|
15
|
+
},
|
16
|
+
image: {
|
17
|
+
image: 'Изображение',
|
18
|
+
insert: 'Постави картинка',
|
19
|
+
resizeFull: 'Цял размер',
|
20
|
+
resizeHalf: 'Размер на 50%',
|
21
|
+
resizeQuarter: 'Размер на 25%',
|
22
|
+
floatLeft: 'Подравни в ляво',
|
23
|
+
floatRight: 'Подравни в дясно',
|
24
|
+
floatNone: 'Без подравняване',
|
25
|
+
dragImageHere: 'Пуснете изображението тук',
|
26
|
+
selectFromFiles: 'Изберете файл',
|
27
|
+
url: 'URL адрес на изображение',
|
28
|
+
remove: 'Премахни изображение'
|
29
|
+
},
|
30
|
+
link: {
|
31
|
+
link: 'Връзка',
|
32
|
+
insert: 'Добави връзка',
|
33
|
+
unlink: 'Премахни връзка',
|
34
|
+
edit: 'Промени',
|
35
|
+
textToDisplay: 'Текст за показване',
|
36
|
+
url: 'URL адрес',
|
37
|
+
openInNewWindow: 'Отвори в нов прозорец'
|
38
|
+
},
|
39
|
+
table: {
|
40
|
+
table: 'Таблица'
|
41
|
+
},
|
42
|
+
hr: {
|
43
|
+
insert: 'Добави хоризонтална линия'
|
44
|
+
},
|
45
|
+
style: {
|
46
|
+
style: 'Стил',
|
47
|
+
normal: 'Нормален',
|
48
|
+
blockquote: 'Цитат',
|
49
|
+
pre: 'Код',
|
50
|
+
h1: 'Заглавие 1',
|
51
|
+
h2: 'Заглавие 2',
|
52
|
+
h3: 'Заглавие 3',
|
53
|
+
h4: 'Заглавие 4',
|
54
|
+
h5: 'Заглавие 5',
|
55
|
+
h6: 'Заглавие 6'
|
56
|
+
},
|
57
|
+
lists: {
|
58
|
+
unordered: 'Символен списък',
|
59
|
+
ordered: 'Цифров списък'
|
60
|
+
},
|
61
|
+
options: {
|
62
|
+
help: 'Помощ',
|
63
|
+
fullscreen: 'На цял екран',
|
64
|
+
codeview: 'Преглед на код'
|
65
|
+
},
|
66
|
+
paragraph: {
|
67
|
+
paragraph: 'Параграф',
|
68
|
+
outdent: 'Намаляване на отстъпа',
|
69
|
+
indent: 'Абзац',
|
70
|
+
left: 'Подравняване в ляво',
|
71
|
+
center: 'Център',
|
72
|
+
right: 'Подравняване в дясно',
|
73
|
+
justify: 'Разтягане по ширина'
|
74
|
+
},
|
75
|
+
color: {
|
76
|
+
recent: 'Последния избран цвят',
|
77
|
+
more: 'Още цветове',
|
78
|
+
background: 'Цвят на фона',
|
79
|
+
foreground: 'Цвят на шрифта',
|
80
|
+
transparent: 'Прозрачен',
|
81
|
+
setTransparent: 'Направете прозрачен',
|
82
|
+
reset: 'Възстанови',
|
83
|
+
resetToDefault: 'Възстанови оригиналните'
|
84
|
+
},
|
85
|
+
shortcut: {
|
86
|
+
shortcuts: 'Клавишни комбинации',
|
87
|
+
close: 'Затвори',
|
88
|
+
textFormatting: 'Форматиране на текста',
|
89
|
+
action: 'Действие',
|
90
|
+
paragraphFormatting: 'Форматиране на параграф',
|
91
|
+
documentStyle: 'Стил на документа'
|
92
|
+
},
|
93
|
+
history: {
|
94
|
+
undo: 'Назад',
|
95
|
+
redo: 'Напред'
|
96
|
+
}
|
97
|
+
}
|
98
|
+
});
|
99
|
+
})(jQuery);
|
@@ -10,7 +10,7 @@
|
|
10
10
|
name: 'Famille de police',
|
11
11
|
strikethrough: 'Barré',
|
12
12
|
superscript: 'Exposant',
|
13
|
-
subscript: '
|
13
|
+
subscript: 'Indice',
|
14
14
|
size: 'Taille de police'
|
15
15
|
},
|
16
16
|
image: {
|
@@ -22,8 +22,15 @@
|
|
22
22
|
floatLeft: 'Aligné à gauche',
|
23
23
|
floatRight: 'Aligné à droite',
|
24
24
|
floatNone: 'Pas d\'alignement',
|
25
|
-
|
25
|
+
shapeRounded: 'Forme: Rectangle arrondie',
|
26
|
+
shapeCircle: 'Forme: Cercle',
|
27
|
+
shapeThumbnail: 'Forme: Vignette',
|
28
|
+
shapeNone: 'Forme: Aucune',
|
29
|
+
dragImageHere: 'Faites glisser une image ou un texte dans ce cadre',
|
30
|
+
dropImage: 'Lachez l\'image ou le texte',
|
26
31
|
selectFromFiles: 'Choisir un fichier',
|
32
|
+
maximumFileSize: 'Taille de fichier maximale',
|
33
|
+
maximumFileSizeError: 'Taille maximale du fichier dépassée',
|
27
34
|
url: 'URL de l\'image',
|
28
35
|
remove: 'Supprimer l\'image'
|
29
36
|
},
|
@@ -40,7 +47,7 @@
|
|
40
47
|
table: 'Tableau'
|
41
48
|
},
|
42
49
|
hr: {
|
43
|
-
insert: 'Insérer une ligne horizontale
|
50
|
+
insert: 'Insérer une ligne horizontale'
|
44
51
|
},
|
45
52
|
style: {
|
46
53
|
style: 'Style',
|
@@ -88,7 +95,8 @@
|
|
88
95
|
textFormatting: 'Mise en forme du texte',
|
89
96
|
action: 'Action',
|
90
97
|
paragraphFormatting: 'Mise en forme des paragraphes',
|
91
|
-
documentStyle: 'Style du document'
|
98
|
+
documentStyle: 'Style du document',
|
99
|
+
extraKeys: 'Touches supplémentaires'
|
92
100
|
},
|
93
101
|
history: {
|
94
102
|
undo: 'Annuler la dernière action',
|
@@ -26,29 +26,29 @@
|
|
26
26
|
* @property {Function} buttons.helloImage function to make button
|
27
27
|
*/
|
28
28
|
buttons: { // buttons
|
29
|
-
hello: function () {
|
29
|
+
hello: function (lang, options) {
|
30
30
|
|
31
|
-
return tmpl.iconButton('
|
31
|
+
return tmpl.iconButton(options.iconPrefix + 'header', {
|
32
32
|
event : 'hello',
|
33
33
|
title: 'hello',
|
34
34
|
hide: true
|
35
35
|
});
|
36
36
|
},
|
37
|
-
helloDropdown: function () {
|
37
|
+
helloDropdown: function (lang, options) {
|
38
38
|
|
39
39
|
|
40
40
|
var list = '<li><a data-event="helloDropdown" href="#" data-value="summernote">summernote</a></li>';
|
41
41
|
list += '<li><a data-event="helloDropdown" href="#" data-value="codemirror">Code Mirror</a></li>';
|
42
42
|
var dropdown = '<ul class="dropdown-menu">' + list + '</ul>';
|
43
43
|
|
44
|
-
return tmpl.iconButton('
|
44
|
+
return tmpl.iconButton(options.iconPrefix + 'header', {
|
45
45
|
title: 'hello',
|
46
46
|
hide: true,
|
47
47
|
dropdown : dropdown
|
48
48
|
});
|
49
49
|
},
|
50
|
-
helloImage : function () {
|
51
|
-
return tmpl.iconButton('
|
50
|
+
helloImage : function (lang, options) {
|
51
|
+
return tmpl.iconButton(options.iconPrefix + 'file-image-o', {
|
52
52
|
event : 'helloImage',
|
53
53
|
title: 'helloImage',
|
54
54
|
hide: true
|
@@ -40,7 +40,7 @@
|
|
40
40
|
var dmRegExp = /.+dailymotion.com\/(video|hub)\/([^_]+)[^#]*(#video=([^_&]+))?/;
|
41
41
|
var dmMatch = url.match(dmRegExp);
|
42
42
|
|
43
|
-
var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)
|
43
|
+
var youkuRegExp = /\/\/v\.youku\.com\/v_show\/id_(\w+)=*\.html/;
|
44
44
|
var youkuMatch = url.match(youkuRegExp);
|
45
45
|
|
46
46
|
var mp4RegExp = /^.+.(mp4|m4v)$/;
|
@@ -204,8 +204,8 @@
|
|
204
204
|
* @property {function(object): string} buttons.video
|
205
205
|
*/
|
206
206
|
buttons: {
|
207
|
-
video: function (lang) {
|
208
|
-
return tmpl.iconButton('
|
207
|
+
video: function (lang, options) {
|
208
|
+
return tmpl.iconButton(options.iconPrefix + 'youtube-play', {
|
209
209
|
event: 'showVideoDialog',
|
210
210
|
title: lang.video.video,
|
211
211
|
hide: true
|
@@ -1,12 +1,12 @@
|
|
1
1
|
/**
|
2
|
-
* Super simple wysiwyg editor on Bootstrap v0.6.
|
2
|
+
* Super simple wysiwyg editor on Bootstrap v0.6.8
|
3
3
|
* http://summernote.org/
|
4
4
|
*
|
5
5
|
* summernote.js
|
6
6
|
* Copyright 2013-2015 Alan Hong. and other contributors
|
7
7
|
* summernote may be freely distributed under the MIT license./
|
8
8
|
*
|
9
|
-
* Date: 2015-
|
9
|
+
* Date: 2015-06-21T11:34Z
|
10
10
|
*/
|
11
11
|
(function (factory) {
|
12
12
|
/* global define */
|
@@ -2271,7 +2271,7 @@
|
|
2271
2271
|
*/
|
2272
2272
|
var defaults = {
|
2273
2273
|
/** @property */
|
2274
|
-
version: '0.6.
|
2274
|
+
version: '0.6.8',
|
2275
2275
|
|
2276
2276
|
/**
|
2277
2277
|
*
|
@@ -2320,6 +2320,72 @@
|
|
2320
2320
|
|
2321
2321
|
iconPrefix: 'fa fa-', // prefix for css icon classes
|
2322
2322
|
|
2323
|
+
icons: {
|
2324
|
+
font: {
|
2325
|
+
bold: 'bold',
|
2326
|
+
italic: 'italic',
|
2327
|
+
underline: 'underline',
|
2328
|
+
clear: 'eraser',
|
2329
|
+
height: 'text-height',
|
2330
|
+
strikethrough: 'strikethrough',
|
2331
|
+
superscript: 'superscript',
|
2332
|
+
subscript: 'subscript'
|
2333
|
+
},
|
2334
|
+
image: {
|
2335
|
+
image: 'picture-o',
|
2336
|
+
floatLeft: 'align-left',
|
2337
|
+
floatRight: 'align-right',
|
2338
|
+
floatNone: 'align-justify',
|
2339
|
+
shapeRounded: 'square',
|
2340
|
+
shapeCircle: 'circle-o',
|
2341
|
+
shapeThumbnail: 'picture-o',
|
2342
|
+
shapeNone: 'times',
|
2343
|
+
remove: 'trash-o'
|
2344
|
+
},
|
2345
|
+
link: {
|
2346
|
+
link: 'link',
|
2347
|
+
unlink: 'unlink',
|
2348
|
+
edit: 'edit'
|
2349
|
+
},
|
2350
|
+
table: {
|
2351
|
+
table: 'table'
|
2352
|
+
},
|
2353
|
+
hr: {
|
2354
|
+
insert: 'minus'
|
2355
|
+
},
|
2356
|
+
style: {
|
2357
|
+
style: 'magic'
|
2358
|
+
},
|
2359
|
+
lists: {
|
2360
|
+
unordered: 'list-ul',
|
2361
|
+
ordered: 'list-ol'
|
2362
|
+
},
|
2363
|
+
options: {
|
2364
|
+
help: 'question',
|
2365
|
+
fullscreen: 'arrows-alt',
|
2366
|
+
codeview: 'code'
|
2367
|
+
},
|
2368
|
+
paragraph: {
|
2369
|
+
paragraph: 'align-left',
|
2370
|
+
outdent: 'outdent',
|
2371
|
+
indent: 'indent',
|
2372
|
+
left: 'align-left',
|
2373
|
+
center: 'align-center',
|
2374
|
+
right: 'align-right',
|
2375
|
+
justify: 'align-justify'
|
2376
|
+
},
|
2377
|
+
color: {
|
2378
|
+
recent: 'font'
|
2379
|
+
},
|
2380
|
+
history: {
|
2381
|
+
undo: 'undo',
|
2382
|
+
redo: 'repeat'
|
2383
|
+
},
|
2384
|
+
misc: {
|
2385
|
+
check: 'check'
|
2386
|
+
}
|
2387
|
+
},
|
2388
|
+
|
2323
2389
|
codemirror: { // codemirror options
|
2324
2390
|
mode: 'text/html',
|
2325
2391
|
htmlMode: true,
|
@@ -2430,8 +2496,6 @@
|
|
2430
2496
|
onCreateLink: function (sLinkUrl) {
|
2431
2497
|
if (sLinkUrl.indexOf('@') !== -1 && sLinkUrl.indexOf(':') === -1) {
|
2432
2498
|
sLinkUrl = 'mailto:' + sLinkUrl;
|
2433
|
-
} else if (sLinkUrl.indexOf('://') === -1) {
|
2434
|
-
sLinkUrl = 'http://' + sLinkUrl;
|
2435
2499
|
}
|
2436
2500
|
|
2437
2501
|
return sLinkUrl;
|
@@ -3852,7 +3916,7 @@
|
|
3852
3916
|
* @param {jQuery} $editable
|
3853
3917
|
*/
|
3854
3918
|
this.unlink = function ($editable) {
|
3855
|
-
var rng = this.createRange();
|
3919
|
+
var rng = this.createRange($editable);
|
3856
3920
|
if (rng.isOnAnchor()) {
|
3857
3921
|
var anchor = dom.ancestor(rng.sc, dom.isAnchor);
|
3858
3922
|
rng = range.createFromNode(anchor);
|
@@ -4088,6 +4152,16 @@
|
|
4088
4152
|
.select();
|
4089
4153
|
}
|
4090
4154
|
};
|
4155
|
+
|
4156
|
+
/**
|
4157
|
+
* returns whether contents is empty or not.
|
4158
|
+
*
|
4159
|
+
* @param {jQuery} $editable
|
4160
|
+
* @return {Boolean}
|
4161
|
+
*/
|
4162
|
+
this.isEmpty = function ($editable) {
|
4163
|
+
return dom.isEmpty($editable[0]) || dom.emptyPara === $editable.html();
|
4164
|
+
};
|
4091
4165
|
};
|
4092
4166
|
|
4093
4167
|
/**
|
@@ -4837,25 +4911,29 @@
|
|
4837
4911
|
|
4838
4912
|
// attach dropImage
|
4839
4913
|
$dropzone.on('drop', function (event) {
|
4840
|
-
event.preventDefault();
|
4841
4914
|
|
4842
4915
|
var dataTransfer = event.originalEvent.dataTransfer;
|
4843
|
-
var html = dataTransfer.getData('text/html');
|
4844
|
-
var text = dataTransfer.getData('text/plain');
|
4845
|
-
|
4846
4916
|
var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target);
|
4847
4917
|
|
4848
4918
|
if (dataTransfer && dataTransfer.files && dataTransfer.files.length) {
|
4919
|
+
event.preventDefault();
|
4849
4920
|
layoutInfo.editable().focus();
|
4850
4921
|
handler.insertImages(layoutInfo, dataTransfer.files);
|
4851
|
-
} else
|
4852
|
-
|
4853
|
-
layoutInfo.
|
4854
|
-
|
4855
|
-
|
4856
|
-
|
4857
|
-
|
4858
|
-
|
4922
|
+
} else {
|
4923
|
+
var insertNodefunc = function () {
|
4924
|
+
layoutInfo.holder().summernote('insertNode', this);
|
4925
|
+
};
|
4926
|
+
|
4927
|
+
for (var i = 0, len = dataTransfer.types.length; i < len; i++) {
|
4928
|
+
var type = dataTransfer.types[i];
|
4929
|
+
var content = dataTransfer.getData(type);
|
4930
|
+
|
4931
|
+
if (type.toLowerCase().indexOf('text') > -1) {
|
4932
|
+
layoutInfo.holder().summernote('pasteHTML', content);
|
4933
|
+
} else {
|
4934
|
+
$(content).each(insertNodefunc);
|
4935
|
+
}
|
4936
|
+
}
|
4859
4937
|
}
|
4860
4938
|
}).on('dragover', false); // prevent default dragover event
|
4861
4939
|
};
|
@@ -4863,7 +4941,29 @@
|
|
4863
4941
|
|
4864
4942
|
var Clipboard = function (handler) {
|
4865
4943
|
|
4944
|
+
var $paste;
|
4945
|
+
|
4866
4946
|
this.attach = function (layoutInfo) {
|
4947
|
+
|
4948
|
+
if (window.clipboardData || agent.isFF) {
|
4949
|
+
$paste = $('<div />').attr('contenteditable', true).css({
|
4950
|
+
position : 'absolute',
|
4951
|
+
left : -100000,
|
4952
|
+
'opacity' : 0
|
4953
|
+
});
|
4954
|
+
layoutInfo.editable().after($paste);
|
4955
|
+
$paste.one('paste', hPasteClipboardImage);
|
4956
|
+
|
4957
|
+
layoutInfo.editable().on('keydown', function (e) {
|
4958
|
+
if (e.ctrlKey && e.keyCode === 86) { // CTRL+V
|
4959
|
+
handler.invoke('saveRange', layoutInfo.editable());
|
4960
|
+
if ($paste) {
|
4961
|
+
$paste.focus();
|
4962
|
+
}
|
4963
|
+
}
|
4964
|
+
});
|
4965
|
+
}
|
4966
|
+
|
4867
4967
|
layoutInfo.editable().on('paste', hPasteClipboardImage);
|
4868
4968
|
};
|
4869
4969
|
|
@@ -4873,58 +4973,49 @@
|
|
4873
4973
|
* @param {Event} event
|
4874
4974
|
*/
|
4875
4975
|
var hPasteClipboardImage = function (event) {
|
4976
|
+
|
4876
4977
|
var clipboardData = event.originalEvent.clipboardData;
|
4877
4978
|
var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target);
|
4878
4979
|
var $editable = layoutInfo.editable();
|
4879
4980
|
|
4880
4981
|
if (!clipboardData || !clipboardData.items || !clipboardData.items.length) {
|
4982
|
+
|
4881
4983
|
var callbacks = $editable.data('callbacks');
|
4882
4984
|
// only can run if it has onImageUpload method
|
4883
4985
|
if (!callbacks.onImageUpload) {
|
4884
4986
|
return;
|
4885
4987
|
}
|
4886
4988
|
|
4887
|
-
// save cursor
|
4888
|
-
handler.invoke('editor.saveNode', $editable);
|
4889
|
-
handler.invoke('editor.saveRange', $editable);
|
4890
|
-
|
4891
|
-
$editable.html('');
|
4892
|
-
|
4893
4989
|
setTimeout(function () {
|
4894
|
-
|
4895
|
-
|
4896
|
-
|
4897
|
-
if (!$img.length || $img[0].src.indexOf('data:') === -1) {
|
4898
|
-
var html = $editable.html();
|
4899
|
-
|
4900
|
-
handler.invoke('editor.restoreNode', $editable);
|
4901
|
-
handler.invoke('editor.restoreRange', $editable);
|
4990
|
+
if (!$paste) {
|
4991
|
+
return;
|
4992
|
+
}
|
4902
4993
|
|
4903
|
-
|
4904
|
-
|
4905
|
-
handler.invoke('editor.pasteHTML', $editable, html);
|
4906
|
-
} catch (ex) {
|
4907
|
-
handler.invoke('editor.insertText', $editable, html);
|
4908
|
-
}
|
4994
|
+
var imgNode = $paste[0].firstChild;
|
4995
|
+
if (!imgNode) {
|
4909
4996
|
return;
|
4910
4997
|
}
|
4911
4998
|
|
4912
|
-
|
4999
|
+
handler.invoke('restoreRange', $editable);
|
5000
|
+
if (!dom.isImg(imgNode)) {
|
5001
|
+
handler.invoke('pasteHTML', $editable, $paste.html());
|
5002
|
+
} else {
|
5003
|
+
var datauri = imgNode.src;
|
5004
|
+
|
5005
|
+
var data = atob(datauri.split(',')[1]);
|
5006
|
+
var array = new Uint8Array(data.length);
|
5007
|
+
for (var i = 0; i < data.length; i++) {
|
5008
|
+
array[i] = data.charCodeAt(i);
|
5009
|
+
}
|
4913
5010
|
|
4914
|
-
|
4915
|
-
|
4916
|
-
|
4917
|
-
|
5011
|
+
var blob = new Blob([array], { type : 'image/png' });
|
5012
|
+
blob.name = 'clipboard.png';
|
5013
|
+
handler.invoke('focus', $editable);
|
5014
|
+
handler.insertImages(layoutInfo, [blob]);
|
4918
5015
|
}
|
4919
5016
|
|
4920
|
-
|
4921
|
-
blob.name = 'clipboard.png';
|
5017
|
+
$paste.remove();
|
4922
5018
|
|
4923
|
-
handler.invoke('editor.restoreNode', $editable);
|
4924
|
-
handler.invoke('editor.restoreRange', $editable);
|
4925
|
-
handler.insertImages(layoutInfo, [blob]);
|
4926
|
-
|
4927
|
-
handler.invoke('editor.afterCommand', $editable);
|
4928
5019
|
}, 0);
|
4929
5020
|
|
4930
5021
|
return;
|
@@ -4999,7 +5090,7 @@
|
|
4999
5090
|
|
5000
5091
|
// if no url was given, copy text to url
|
5001
5092
|
if (!linkInfo.url) {
|
5002
|
-
linkInfo.url = linkInfo.text;
|
5093
|
+
linkInfo.url = linkInfo.text || 'http://';
|
5003
5094
|
toggleBtn($linkBtn, linkInfo.text);
|
5004
5095
|
}
|
5005
5096
|
|
@@ -5378,7 +5469,7 @@
|
|
5378
5469
|
}, 0);
|
5379
5470
|
};
|
5380
5471
|
|
5381
|
-
var
|
5472
|
+
var hScroll = function (event) {
|
5382
5473
|
var layoutInfo = dom.makeLayoutInfo(event.currentTarget || event.target);
|
5383
5474
|
//hide popover and handle when scrolled
|
5384
5475
|
modules.popover.hide(layoutInfo.popover());
|
@@ -5548,7 +5639,7 @@
|
|
5548
5639
|
}
|
5549
5640
|
layoutInfo.editable().on('mousedown', hMousedown);
|
5550
5641
|
layoutInfo.editable().on('keyup mouseup', hKeyupAndMouseup);
|
5551
|
-
layoutInfo.editable().on('scroll
|
5642
|
+
layoutInfo.editable().on('scroll', hScroll);
|
5552
5643
|
|
5553
5644
|
// handler for clipboard
|
5554
5645
|
modules.clipboard.attach(layoutInfo, options);
|
@@ -5613,7 +5704,8 @@
|
|
5613
5704
|
onChange: options.onChange,
|
5614
5705
|
onImageUpload: options.onImageUpload,
|
5615
5706
|
onImageUploadError: options.onImageUploadError,
|
5616
|
-
onMediaDelete
|
5707
|
+
onMediaDelete: options.onMediaDelete,
|
5708
|
+
onToolbarClick: options.onToolbarClick
|
5617
5709
|
});
|
5618
5710
|
|
5619
5711
|
// Textarea: auto filling the code before form submit.
|
@@ -5726,9 +5818,11 @@
|
|
5726
5818
|
var dropdown = options.dropdown;
|
5727
5819
|
var hide = options.hide;
|
5728
5820
|
|
5729
|
-
return '<
|
5821
|
+
return (dropdown ? '<div class="btn-group' +
|
5822
|
+
(className ? ' ' + className : '') + '">' : '') +
|
5823
|
+
'<button type="button"' +
|
5730
5824
|
' class="btn btn-default btn-sm btn-small' +
|
5731
|
-
(className ? ' ' + className : '') +
|
5825
|
+
((!dropdown && className) ? ' ' + className : '') +
|
5732
5826
|
(dropdown ? ' dropdown-toggle' : '') +
|
5733
5827
|
'"' +
|
5734
5828
|
(dropdown ? ' data-toggle="dropdown"' : '') +
|
@@ -5737,10 +5831,11 @@
|
|
5737
5831
|
(value ? ' data-value=\'' + value + '\'' : '') +
|
5738
5832
|
(hide ? ' data-hide=\'' + hide + '\'' : '') +
|
5739
5833
|
' tabindex="-1">' +
|
5740
|
-
|
5741
|
-
|
5742
|
-
|
5743
|
-
|
5834
|
+
label +
|
5835
|
+
(dropdown ? ' <span class="caret"></span>' : '') +
|
5836
|
+
'</button>' +
|
5837
|
+
(dropdown || '') +
|
5838
|
+
(dropdown ? '</div>' : '');
|
5744
5839
|
};
|
5745
5840
|
|
5746
5841
|
/**
|
@@ -5804,14 +5899,14 @@
|
|
5804
5899
|
|
5805
5900
|
var tplButtonInfo = {
|
5806
5901
|
picture: function (lang, options) {
|
5807
|
-
return tplIconButton(options.iconPrefix +
|
5902
|
+
return tplIconButton(options.iconPrefix + options.icons.image.image, {
|
5808
5903
|
event: 'showImageDialog',
|
5809
5904
|
title: lang.image.image,
|
5810
5905
|
hide: true
|
5811
5906
|
});
|
5812
5907
|
},
|
5813
5908
|
link: function (lang, options) {
|
5814
|
-
return tplIconButton(options.iconPrefix +
|
5909
|
+
return tplIconButton(options.iconPrefix + options.icons.link.link, {
|
5815
5910
|
event: 'showLinkDialog',
|
5816
5911
|
title: lang.link.link,
|
5817
5912
|
hide: true
|
@@ -5826,7 +5921,7 @@
|
|
5826
5921
|
'</div>' +
|
5827
5922
|
'<div class="note-dimension-display"> 1 x 1 </div>' +
|
5828
5923
|
'</ul>';
|
5829
|
-
return tplIconButton(options.iconPrefix +
|
5924
|
+
return tplIconButton(options.iconPrefix + options.icons.table.table, {
|
5830
5925
|
title: lang.table.table,
|
5831
5926
|
dropdown: dropdown
|
5832
5927
|
});
|
@@ -5842,7 +5937,7 @@
|
|
5842
5937
|
'</a></li>';
|
5843
5938
|
}, '');
|
5844
5939
|
|
5845
|
-
return tplIconButton(options.iconPrefix +
|
5940
|
+
return tplIconButton(options.iconPrefix + options.icons.style.style, {
|
5846
5941
|
title: lang.style.style,
|
5847
5942
|
dropdown: '<ul class="dropdown-menu">' + items + '</ul>'
|
5848
5943
|
});
|
@@ -5855,7 +5950,7 @@
|
|
5855
5950
|
}
|
5856
5951
|
realFontList.push(v);
|
5857
5952
|
return memo + '<li><a data-event="fontName" href="#" data-value="' + v + '" style="font-family:\'' + v + '\'">' +
|
5858
|
-
'<i class="' + options.iconPrefix + '
|
5953
|
+
'<i class="' + options.iconPrefix + options.icons.misc.check + '"></i> ' + v +
|
5859
5954
|
'</a></li>';
|
5860
5955
|
}, '');
|
5861
5956
|
|
@@ -5867,25 +5962,29 @@
|
|
5867
5962
|
'</span>';
|
5868
5963
|
return tplButton(label, {
|
5869
5964
|
title: lang.font.name,
|
5965
|
+
className: 'note-fontname',
|
5870
5966
|
dropdown: '<ul class="dropdown-menu note-check">' + items + '</ul>'
|
5871
5967
|
});
|
5872
5968
|
},
|
5873
5969
|
fontsize: function (lang, options) {
|
5874
5970
|
var items = options.fontSizes.reduce(function (memo, v) {
|
5875
5971
|
return memo + '<li><a data-event="fontSize" href="#" data-value="' + v + '">' +
|
5876
|
-
'<i class="
|
5972
|
+
'<i class="' + options.iconPrefix + options.icons.misc.check + '"></i> ' + v +
|
5877
5973
|
'</a></li>';
|
5878
5974
|
}, '');
|
5879
5975
|
|
5880
5976
|
var label = '<span class="note-current-fontsize">11</span>';
|
5881
5977
|
return tplButton(label, {
|
5882
5978
|
title: lang.font.size,
|
5979
|
+
className: 'note-fontsize',
|
5883
5980
|
dropdown: '<ul class="dropdown-menu note-check">' + items + '</ul>'
|
5884
5981
|
});
|
5885
5982
|
},
|
5886
5983
|
color: function (lang, options) {
|
5887
|
-
var colorButtonLabel = '<i class="' +
|
5888
|
-
|
5984
|
+
var colorButtonLabel = '<i class="' +
|
5985
|
+
options.iconPrefix + options.icons.color.recent +
|
5986
|
+
'" style="color:black;background-color:yellow;"></i>',
|
5987
|
+
colorButton = tplButton(colorButtonLabel, {
|
5889
5988
|
className: 'note-recent-color',
|
5890
5989
|
title: lang.color.recent,
|
5891
5990
|
event: 'color',
|
@@ -5920,82 +6019,82 @@
|
|
5920
6019
|
return colorButton + moreButton;
|
5921
6020
|
},
|
5922
6021
|
bold: function (lang, options) {
|
5923
|
-
return tplIconButton(options.iconPrefix +
|
6022
|
+
return tplIconButton(options.iconPrefix + options.icons.font.bold, {
|
5924
6023
|
event: 'bold',
|
5925
6024
|
title: lang.font.bold
|
5926
6025
|
});
|
5927
6026
|
},
|
5928
6027
|
italic: function (lang, options) {
|
5929
|
-
return tplIconButton(options.iconPrefix +
|
6028
|
+
return tplIconButton(options.iconPrefix + options.icons.font.italic, {
|
5930
6029
|
event: 'italic',
|
5931
6030
|
title: lang.font.italic
|
5932
6031
|
});
|
5933
6032
|
},
|
5934
6033
|
underline: function (lang, options) {
|
5935
|
-
return tplIconButton(options.iconPrefix +
|
6034
|
+
return tplIconButton(options.iconPrefix + options.icons.font.underline, {
|
5936
6035
|
event: 'underline',
|
5937
6036
|
title: lang.font.underline
|
5938
6037
|
});
|
5939
6038
|
},
|
5940
|
-
strikethrough: function (lang) {
|
5941
|
-
return tplIconButton(
|
6039
|
+
strikethrough: function (lang, options) {
|
6040
|
+
return tplIconButton(options.iconPrefix + options.icons.font.strikethrough, {
|
5942
6041
|
event: 'strikethrough',
|
5943
6042
|
title: lang.font.strikethrough
|
5944
6043
|
});
|
5945
6044
|
},
|
5946
|
-
superscript: function (lang) {
|
5947
|
-
return tplIconButton(
|
6045
|
+
superscript: function (lang, options) {
|
6046
|
+
return tplIconButton(options.iconPrefix + options.icons.font.superscript, {
|
5948
6047
|
event: 'superscript',
|
5949
6048
|
title: lang.font.superscript
|
5950
6049
|
});
|
5951
6050
|
},
|
5952
|
-
subscript: function (lang) {
|
5953
|
-
return tplIconButton(
|
6051
|
+
subscript: function (lang, options) {
|
6052
|
+
return tplIconButton(options.iconPrefix + options.icons.font.subscript, {
|
5954
6053
|
event: 'subscript',
|
5955
6054
|
title: lang.font.subscript
|
5956
6055
|
});
|
5957
6056
|
},
|
5958
6057
|
clear: function (lang, options) {
|
5959
|
-
return tplIconButton(options.iconPrefix +
|
6058
|
+
return tplIconButton(options.iconPrefix + options.icons.font.clear, {
|
5960
6059
|
event: 'removeFormat',
|
5961
6060
|
title: lang.font.clear
|
5962
6061
|
});
|
5963
6062
|
},
|
5964
6063
|
ul: function (lang, options) {
|
5965
|
-
return tplIconButton(options.iconPrefix +
|
6064
|
+
return tplIconButton(options.iconPrefix + options.icons.lists.unordered, {
|
5966
6065
|
event: 'insertUnorderedList',
|
5967
6066
|
title: lang.lists.unordered
|
5968
6067
|
});
|
5969
6068
|
},
|
5970
6069
|
ol: function (lang, options) {
|
5971
|
-
return tplIconButton(options.iconPrefix +
|
6070
|
+
return tplIconButton(options.iconPrefix + options.icons.lists.ordered, {
|
5972
6071
|
event: 'insertOrderedList',
|
5973
6072
|
title: lang.lists.ordered
|
5974
6073
|
});
|
5975
6074
|
},
|
5976
6075
|
paragraph: function (lang, options) {
|
5977
|
-
var leftButton = tplIconButton(options.iconPrefix +
|
6076
|
+
var leftButton = tplIconButton(options.iconPrefix + options.icons.paragraph.left, {
|
5978
6077
|
title: lang.paragraph.left,
|
5979
6078
|
event: 'justifyLeft'
|
5980
6079
|
});
|
5981
|
-
var centerButton = tplIconButton(options.iconPrefix +
|
6080
|
+
var centerButton = tplIconButton(options.iconPrefix + options.icons.paragraph.center, {
|
5982
6081
|
title: lang.paragraph.center,
|
5983
6082
|
event: 'justifyCenter'
|
5984
6083
|
});
|
5985
|
-
var rightButton = tplIconButton(options.iconPrefix +
|
6084
|
+
var rightButton = tplIconButton(options.iconPrefix + options.icons.paragraph.right, {
|
5986
6085
|
title: lang.paragraph.right,
|
5987
6086
|
event: 'justifyRight'
|
5988
6087
|
});
|
5989
|
-
var justifyButton = tplIconButton(options.iconPrefix +
|
6088
|
+
var justifyButton = tplIconButton(options.iconPrefix + options.icons.paragraph.justify, {
|
5990
6089
|
title: lang.paragraph.justify,
|
5991
6090
|
event: 'justifyFull'
|
5992
6091
|
});
|
5993
6092
|
|
5994
|
-
var outdentButton = tplIconButton(options.iconPrefix +
|
6093
|
+
var outdentButton = tplIconButton(options.iconPrefix + options.icons.paragraph.outdent, {
|
5995
6094
|
title: lang.paragraph.outdent,
|
5996
6095
|
event: 'outdent'
|
5997
6096
|
});
|
5998
|
-
var indentButton = tplIconButton(options.iconPrefix +
|
6097
|
+
var indentButton = tplIconButton(options.iconPrefix + options.icons.paragraph.indent, {
|
5999
6098
|
title: lang.paragraph.indent,
|
6000
6099
|
event: 'indent'
|
6001
6100
|
});
|
@@ -6009,7 +6108,7 @@
|
|
6009
6108
|
'</div>' +
|
6010
6109
|
'</div>';
|
6011
6110
|
|
6012
|
-
return tplIconButton(options.iconPrefix +
|
6111
|
+
return tplIconButton(options.iconPrefix + options.icons.paragraph.paragraph, {
|
6013
6112
|
title: lang.paragraph.paragraph,
|
6014
6113
|
dropdown: dropdown
|
6015
6114
|
});
|
@@ -6017,49 +6116,49 @@
|
|
6017
6116
|
height: function (lang, options) {
|
6018
6117
|
var items = options.lineHeights.reduce(function (memo, v) {
|
6019
6118
|
return memo + '<li><a data-event="lineHeight" href="#" data-value="' + parseFloat(v) + '">' +
|
6020
|
-
'<i class="' + options.iconPrefix + '
|
6119
|
+
'<i class="' + options.iconPrefix + options.icons.misc.check + '"></i> ' + v +
|
6021
6120
|
'</a></li>';
|
6022
6121
|
}, '');
|
6023
6122
|
|
6024
|
-
return tplIconButton(options.iconPrefix +
|
6123
|
+
return tplIconButton(options.iconPrefix + options.icons.font.height, {
|
6025
6124
|
title: lang.font.height,
|
6026
6125
|
dropdown: '<ul class="dropdown-menu note-check">' + items + '</ul>'
|
6027
6126
|
});
|
6028
6127
|
|
6029
6128
|
},
|
6030
6129
|
help: function (lang, options) {
|
6031
|
-
return tplIconButton(options.iconPrefix +
|
6130
|
+
return tplIconButton(options.iconPrefix + options.icons.options.help, {
|
6032
6131
|
event: 'showHelpDialog',
|
6033
6132
|
title: lang.options.help,
|
6034
6133
|
hide: true
|
6035
6134
|
});
|
6036
6135
|
},
|
6037
6136
|
fullscreen: function (lang, options) {
|
6038
|
-
return tplIconButton(options.iconPrefix +
|
6137
|
+
return tplIconButton(options.iconPrefix + options.icons.options.fullscreen, {
|
6039
6138
|
event: 'fullscreen',
|
6040
6139
|
title: lang.options.fullscreen
|
6041
6140
|
});
|
6042
6141
|
},
|
6043
6142
|
codeview: function (lang, options) {
|
6044
|
-
return tplIconButton(options.iconPrefix +
|
6143
|
+
return tplIconButton(options.iconPrefix + options.icons.options.codeview, {
|
6045
6144
|
event: 'codeview',
|
6046
6145
|
title: lang.options.codeview
|
6047
6146
|
});
|
6048
6147
|
},
|
6049
6148
|
undo: function (lang, options) {
|
6050
|
-
return tplIconButton(options.iconPrefix +
|
6149
|
+
return tplIconButton(options.iconPrefix + options.icons.history.undo, {
|
6051
6150
|
event: 'undo',
|
6052
6151
|
title: lang.history.undo
|
6053
6152
|
});
|
6054
6153
|
},
|
6055
6154
|
redo: function (lang, options) {
|
6056
|
-
return tplIconButton(options.iconPrefix +
|
6155
|
+
return tplIconButton(options.iconPrefix + options.icons.history.redo, {
|
6057
6156
|
event: 'redo',
|
6058
6157
|
title: lang.history.redo
|
6059
6158
|
});
|
6060
6159
|
},
|
6061
6160
|
hr: function (lang, options) {
|
6062
|
-
return tplIconButton(options.iconPrefix +
|
6161
|
+
return tplIconButton(options.iconPrefix + options.icons.hr.insert, {
|
6063
6162
|
event: 'insertHorizontalRule',
|
6064
6163
|
title: lang.hr.insert
|
6065
6164
|
});
|
@@ -6068,12 +6167,12 @@
|
|
6068
6167
|
|
6069
6168
|
var tplPopovers = function (lang, options) {
|
6070
6169
|
var tplLinkPopover = function () {
|
6071
|
-
var linkButton = tplIconButton(options.iconPrefix +
|
6170
|
+
var linkButton = tplIconButton(options.iconPrefix + options.icons.link.edit, {
|
6072
6171
|
title: lang.link.edit,
|
6073
6172
|
event: 'showLinkDialog',
|
6074
6173
|
hide: true
|
6075
6174
|
});
|
6076
|
-
var unlinkButton = tplIconButton(options.iconPrefix +
|
6175
|
+
var unlinkButton = tplIconButton(options.iconPrefix + options.icons.link.unlink, {
|
6077
6176
|
title: lang.link.unlink,
|
6078
6177
|
event: 'unlink'
|
6079
6178
|
});
|
@@ -6101,44 +6200,44 @@
|
|
6101
6200
|
value: '0.25'
|
6102
6201
|
});
|
6103
6202
|
|
6104
|
-
var leftButton = tplIconButton(options.iconPrefix +
|
6203
|
+
var leftButton = tplIconButton(options.iconPrefix + options.icons.image.floatLeft, {
|
6105
6204
|
title: lang.image.floatLeft,
|
6106
6205
|
event: 'floatMe',
|
6107
6206
|
value: 'left'
|
6108
6207
|
});
|
6109
|
-
var rightButton = tplIconButton(options.iconPrefix +
|
6208
|
+
var rightButton = tplIconButton(options.iconPrefix + options.icons.image.floatRight, {
|
6110
6209
|
title: lang.image.floatRight,
|
6111
6210
|
event: 'floatMe',
|
6112
6211
|
value: 'right'
|
6113
6212
|
});
|
6114
|
-
var justifyButton = tplIconButton(options.iconPrefix +
|
6213
|
+
var justifyButton = tplIconButton(options.iconPrefix + options.icons.image.floatNone, {
|
6115
6214
|
title: lang.image.floatNone,
|
6116
6215
|
event: 'floatMe',
|
6117
6216
|
value: 'none'
|
6118
6217
|
});
|
6119
6218
|
|
6120
|
-
var roundedButton = tplIconButton(options.iconPrefix +
|
6219
|
+
var roundedButton = tplIconButton(options.iconPrefix + options.icons.image.shapeRounded, {
|
6121
6220
|
title: lang.image.shapeRounded,
|
6122
6221
|
event: 'imageShape',
|
6123
6222
|
value: 'img-rounded'
|
6124
6223
|
});
|
6125
|
-
var circleButton = tplIconButton(options.iconPrefix +
|
6224
|
+
var circleButton = tplIconButton(options.iconPrefix + options.icons.image.shapeCircle, {
|
6126
6225
|
title: lang.image.shapeCircle,
|
6127
6226
|
event: 'imageShape',
|
6128
6227
|
value: 'img-circle'
|
6129
6228
|
});
|
6130
|
-
var thumbnailButton = tplIconButton(options.iconPrefix +
|
6229
|
+
var thumbnailButton = tplIconButton(options.iconPrefix + options.icons.image.shapeThumbnail, {
|
6131
6230
|
title: lang.image.shapeThumbnail,
|
6132
6231
|
event: 'imageShape',
|
6133
6232
|
value: 'img-thumbnail'
|
6134
6233
|
});
|
6135
|
-
var noneButton = tplIconButton(options.iconPrefix +
|
6234
|
+
var noneButton = tplIconButton(options.iconPrefix + options.icons.image.shapeNone, {
|
6136
6235
|
title: lang.image.shapeNone,
|
6137
6236
|
event: 'imageShape',
|
6138
6237
|
value: ''
|
6139
6238
|
});
|
6140
6239
|
|
6141
|
-
var removeButton = tplIconButton(options.iconPrefix +
|
6240
|
+
var removeButton = tplIconButton(options.iconPrefix + options.icons.image.remove, {
|
6142
6241
|
title: lang.image.remove,
|
6143
6242
|
event: 'removeMedia',
|
6144
6243
|
value: 'none'
|
@@ -6332,7 +6431,7 @@
|
|
6332
6431
|
'</div>' +
|
6333
6432
|
'<div class="form-group row-fluid">' +
|
6334
6433
|
'<label>' + lang.link.url + '</label>' +
|
6335
|
-
'<input class="note-link-url form-control span12" type="text" />' +
|
6434
|
+
'<input class="note-link-url form-control span12" type="text" value="http://" />' +
|
6336
6435
|
'</div>' +
|
6337
6436
|
(!options.disableLinkTarget ?
|
6338
6437
|
'<div class="checkbox">' +
|
@@ -6350,7 +6449,7 @@
|
|
6350
6449
|
'<div class="title">' + lang.shortcut.shortcuts + '</div>' +
|
6351
6450
|
(agent.isMac ? tplShortcutTable(lang, options) : replaceMacKeys(tplShortcutTable(lang, options))) +
|
6352
6451
|
'<p class="text-center">' +
|
6353
|
-
'<a href="//summernote.org/" target="_blank">Summernote 0.6.
|
6452
|
+
'<a href="//summernote.org/" target="_blank">Summernote 0.6.8</a> · ' +
|
6354
6453
|
'<a href="//github.com/summernote/summernote" target="_blank">Project</a> · ' +
|
6355
6454
|
'<a href="//github.com/summernote/summernote/issues" target="_blank">Issues</a>' +
|
6356
6455
|
'</p>';
|
@@ -6755,7 +6854,7 @@
|
|
6755
6854
|
* // "hello" is button's namespace.
|
6756
6855
|
* "hello" : function(lang, options) {
|
6757
6856
|
* // make icon button by template function
|
6758
|
-
* return tmpl.iconButton('
|
6857
|
+
* return tmpl.iconButton(options.iconPrefix + 'header', {
|
6759
6858
|
* // callback function name when button clicked
|
6760
6859
|
* event : 'hello',
|
6761
6860
|
* // set data-value property
|
@@ -6859,6 +6958,7 @@
|
|
6859
6958
|
var options = hasInitOptions ? list.head(arguments) : {};
|
6860
6959
|
|
6861
6960
|
options = $.extend({}, $.summernote.options, options);
|
6961
|
+
options.icons = $.extend({}, $.summernote.options.icons, options.icons);
|
6862
6962
|
|
6863
6963
|
// Include langInfo in options for later use, e.g. for image drag-n-drop
|
6864
6964
|
// Setup language info with en-US as default
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: summernote-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hyo Seong Choi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -68,6 +68,7 @@ files:
|
|
68
68
|
- lib/summernote-rails/version.rb
|
69
69
|
- vendor/assets/javascripts/summernote/index.js
|
70
70
|
- vendor/assets/javascripts/summernote/locales/ar-AR.js
|
71
|
+
- vendor/assets/javascripts/summernote/locales/bg-BG.js
|
71
72
|
- vendor/assets/javascripts/summernote/locales/ca-ES.js
|
72
73
|
- vendor/assets/javascripts/summernote/locales/cs-CZ.js
|
73
74
|
- vendor/assets/javascripts/summernote/locales/da-DK.js
|