redactor-rails-fixes 0.5.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/Gemfile +25 -0
- data/MIT-LICENSE +22 -0
- data/README.md +237 -0
- data/Rakefile +3 -0
- data/app/controller/redactor_rails/documents_controller.rb +34 -0
- data/app/controller/redactor_rails/pictures_controller.rb +34 -0
- data/config/routes.rb +4 -0
- data/lib/generators/redactor/config_generator.rb +18 -0
- data/lib/generators/redactor/install_generator.rb +75 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/devise_migration.rb +30 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/migration.rb +28 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/redactor/asset.rb +5 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/redactor/document.rb +11 -0
- data/lib/generators/redactor/templates/active_record/carrierwave/redactor/picture.rb +7 -0
- data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_document_uploader.rb +15 -0
- data/lib/generators/redactor/templates/base/carrierwave/uploaders/redactor_rails_picture_uploader.rb +53 -0
- data/lib/generators/redactor/templates/config.js +24 -0
- data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/asset.rb +9 -0
- data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/document.rb +14 -0
- data/lib/generators/redactor/templates/mongoid/carrierwave/redactor/picture.rb +7 -0
- data/lib/redactor-rails.rb +41 -0
- data/lib/redactor-rails/backend/carrierwave.rb +64 -0
- data/lib/redactor-rails/devise.rb +11 -0
- data/lib/redactor-rails/engine.rb +14 -0
- data/lib/redactor-rails/helper.rb +5 -0
- data/lib/redactor-rails/http.rb +89 -0
- data/lib/redactor-rails/orm/active_record.rb +31 -0
- data/lib/redactor-rails/orm/base.rb +38 -0
- data/lib/redactor-rails/orm/mongoid.rb +37 -0
- data/lib/redactor-rails/version.rb +3 -0
- data/redactor-rails-fixes.gemspec +21 -0
- data/vendor/assets/javascripts/redactor-rails/config.js +17 -0
- data/vendor/assets/javascripts/redactor-rails/css/docstyle.css +139 -0
- data/vendor/assets/javascripts/redactor-rails/css/style.css +26 -0
- data/vendor/assets/javascripts/redactor-rails/css/wym.css +151 -0
- data/vendor/assets/javascripts/redactor-rails/index.js +2 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ar.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/az.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ba.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/bg.js +74 -0
- data/vendor/assets/javascripts/redactor-rails/langs/by.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ca.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/cs.js +84 -0
- data/vendor/assets/javascripts/redactor-rails/langs/da.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/de.js +77 -0
- data/vendor/assets/javascripts/redactor-rails/langs/el.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/en.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/eo.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/es.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/es_ar.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/fa.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/fi.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/fr.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/he.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/hr.js +71 -0
- data/vendor/assets/javascripts/redactor-rails/langs/hu.js +74 -0
- data/vendor/assets/javascripts/redactor-rails/langs/id.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/it.js +75 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ja.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ko.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/lt.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/lv.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/mk.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/nl.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/no_NB.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/pl.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/pt_br.js +79 -0
- data/vendor/assets/javascripts/redactor-rails/langs/pt_pt.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ro.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ru.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sk.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sl.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sq.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sr-cir.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sr-lat.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/langs/sv.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/th.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/tr.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/langs/ua.js +74 -0
- data/vendor/assets/javascripts/redactor-rails/langs/vi.js +72 -0
- data/vendor/assets/javascripts/redactor-rails/langs/zh_cn.js +74 -0
- data/vendor/assets/javascripts/redactor-rails/langs/zh_tw.js +73 -0
- data/vendor/assets/javascripts/redactor-rails/plugins.js +6 -0
- data/vendor/assets/javascripts/redactor-rails/plugins/clips.js +61 -0
- data/vendor/assets/javascripts/redactor-rails/plugins/fontcolor.js +76 -0
- data/vendor/assets/javascripts/redactor-rails/plugins/fontfamily.js +35 -0
- data/vendor/assets/javascripts/redactor-rails/plugins/fontsize.js +34 -0
- data/vendor/assets/javascripts/redactor-rails/plugins/fullscreen.js +123 -0
- data/vendor/assets/javascripts/redactor-rails/plugins/textdirection.js +31 -0
- data/vendor/assets/javascripts/redactor-rails/redactor.js +8053 -0
- data/vendor/assets/javascripts/redactor-rails/redactor.min.js +12 -0
- data/vendor/assets/stylesheets/redactor-rails/css/redactor-iframe.css +202 -0
- data/vendor/assets/stylesheets/redactor-rails/css/redactor.css +930 -0
- data/vendor/assets/stylesheets/redactor-rails/css/style.css +26 -0
- data/vendor/assets/stylesheets/redactor-rails/index.css +1 -0
- data/vendor/assets/stylesheets/redactor-rails/plugins.css +3 -0
- data/vendor/assets/stylesheets/redactor-rails/plugins/clips.css +6 -0
- metadata +184 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
(function ($) {
|
2
|
+
$.Redactor.opts.langs['vi'] = {
|
3
|
+
html: 'Xem HTML',
|
4
|
+
video: 'Chèn Video...',
|
5
|
+
image: 'Chèn hình ảnh...',
|
6
|
+
table: 'Tạo bảng',
|
7
|
+
link: 'Đường dẫn',
|
8
|
+
link_insert: 'Thêm đường dẫn ...',
|
9
|
+
link_edit: 'Edit link',
|
10
|
+
unlink: 'Loại bỏ đường dẫn',
|
11
|
+
formatting: 'Định dạng văn bản',
|
12
|
+
paragraph: 'Đoạn văn',
|
13
|
+
quote: 'Trích dẫn',
|
14
|
+
code: 'Chèn mã',
|
15
|
+
header1: 'Tiêu đề 1',
|
16
|
+
header2: 'Tiêu đề 2',
|
17
|
+
header3: 'Tiêu đề 3',
|
18
|
+
header4: 'Tiêu đề 4',
|
19
|
+
bold: 'In đậm',
|
20
|
+
italic: 'In nghiêng',
|
21
|
+
fontcolor: 'Màu chữ',
|
22
|
+
backcolor: 'Đánh dấu đoạn văn',
|
23
|
+
unorderedlist: 'Sắp xếp theo danh sách',
|
24
|
+
orderedlist: 'Sắp xếp theo thứ tự',
|
25
|
+
outdent: 'Bỏ thụt đầu dòng',
|
26
|
+
indent: 'Thụt đầu dòng',
|
27
|
+
cancel: 'Hủy bỏ',
|
28
|
+
insert: 'Chèn',
|
29
|
+
save: 'Lưu lại',
|
30
|
+
_delete: 'Xóa',
|
31
|
+
insert_table: 'Chèn bảng...',
|
32
|
+
insert_row_above: 'Thêm hàng bên trên',
|
33
|
+
insert_row_below: 'Thêm hàng bên dưới',
|
34
|
+
insert_column_left: 'Thêm cột trái',
|
35
|
+
insert_column_right: 'Thêm cột phải',
|
36
|
+
delete_column: 'Xóa cột',
|
37
|
+
delete_row: 'Xóa hàng',
|
38
|
+
delete_table: 'Xóa bảng',
|
39
|
+
rows: 'Hàng',
|
40
|
+
columns: 'Cột',
|
41
|
+
add_head: 'Thêm tiêu đề bảng',
|
42
|
+
delete_head: 'Xóa tiêu đề bảng',
|
43
|
+
title: 'Tiêu đề',
|
44
|
+
image_position: 'Vị trí',
|
45
|
+
none: 'Không thay đổi',
|
46
|
+
left: 'Trái',
|
47
|
+
right: 'Phải',
|
48
|
+
image_web_link: 'Đường dẫn link ảnh',
|
49
|
+
text: 'Văn bản',
|
50
|
+
mailto: 'Email',
|
51
|
+
web: 'Đường dẫn',
|
52
|
+
video_html_code: 'Mã nhúng video',
|
53
|
+
file: 'Tập tin đính kèm...',
|
54
|
+
upload: 'Tải lên',
|
55
|
+
download: 'Tải xuống',
|
56
|
+
choose: 'Lựa Chọn',
|
57
|
+
or_choose: 'Chọn từ máy tính',
|
58
|
+
drop_file_here: 'Kéo thả hình ảnh vào đây',
|
59
|
+
align_left: 'Căn trái',
|
60
|
+
align_center: 'Căn giữa',
|
61
|
+
align_right: 'Căn phải',
|
62
|
+
align_justify: 'Dàn đều trang',
|
63
|
+
horizontalrule: 'Chèn thanh ngang',
|
64
|
+
deleted: 'Xóa',
|
65
|
+
anchor: 'Liên kết',
|
66
|
+
link_new_tab: 'Open link in new tab',
|
67
|
+
underline: 'Underline',
|
68
|
+
alignment: 'Alignment',
|
69
|
+
filename: 'Name (optional)',
|
70
|
+
edit: 'Edit'
|
71
|
+
};
|
72
|
+
})( jQuery );
|
@@ -0,0 +1,74 @@
|
|
1
|
+
(function ($) {
|
2
|
+
$.Redactor.opts.langs['zh_cn'] = {
|
3
|
+
html: 'HTML代码',
|
4
|
+
video: '视频',
|
5
|
+
image: '图片',
|
6
|
+
table: '表格',
|
7
|
+
link: '链接',
|
8
|
+
link_insert: '插入链接',
|
9
|
+
link_edit: '编辑链接',
|
10
|
+
unlink: '取消链接',
|
11
|
+
formatting: '样式',
|
12
|
+
paragraph: '段落',
|
13
|
+
quote: '引用',
|
14
|
+
code: '代码',
|
15
|
+
header1: '一级标题',
|
16
|
+
header2: '二级标题',
|
17
|
+
header3: '三级标题',
|
18
|
+
header4: '四级标题',
|
19
|
+
header5: '五级标题',
|
20
|
+
bold: '粗体',
|
21
|
+
italic: '斜体',
|
22
|
+
fontcolor: '字体颜色',
|
23
|
+
backcolor: '背景颜色',
|
24
|
+
unorderedlist: '项目编号',
|
25
|
+
orderedlist: '数字编号',
|
26
|
+
outdent: '减少缩进',
|
27
|
+
indent: '增加缩进',
|
28
|
+
cancel: '取消',
|
29
|
+
insert: '插入',
|
30
|
+
save: '保存',
|
31
|
+
_delete: '删除',
|
32
|
+
insert_table: '插入表格',
|
33
|
+
insert_row_above: '在上方插入',
|
34
|
+
insert_row_below: '在下方插入',
|
35
|
+
insert_column_left: '在左侧插入',
|
36
|
+
insert_column_right: '在右侧插入',
|
37
|
+
delete_column: '删除整列',
|
38
|
+
delete_row: '删除整行',
|
39
|
+
delete_table: '删除表格',
|
40
|
+
rows: '行',
|
41
|
+
columns: '列',
|
42
|
+
add_head: '添加标题',
|
43
|
+
delete_head: '删除标题',
|
44
|
+
title: '标题',
|
45
|
+
image_position: '位置',
|
46
|
+
none: '无',
|
47
|
+
left: '左',
|
48
|
+
right: '右',
|
49
|
+
image_web_link: '图片网页链接',
|
50
|
+
text: '文本',
|
51
|
+
mailto: '邮箱',
|
52
|
+
web: '网址',
|
53
|
+
video_html_code: '视频嵌入代码',
|
54
|
+
file: '文件',
|
55
|
+
upload: '上传',
|
56
|
+
download: '下载',
|
57
|
+
choose: '选择',
|
58
|
+
or_choose: '或选择',
|
59
|
+
drop_file_here: '将文件拖拽至此区域',
|
60
|
+
align_left: '左对齐',
|
61
|
+
align_center: '居中',
|
62
|
+
align_right: '右对齐',
|
63
|
+
align_justify: '两端对齐',
|
64
|
+
horizontalrule: '水平线',
|
65
|
+
fullscreen: '全屏',
|
66
|
+
deleted: '删除',
|
67
|
+
anchor: '锚点',
|
68
|
+
link_new_tab: '在新窗口打开',
|
69
|
+
underline: '下划线',
|
70
|
+
alignment: '对齐方式',
|
71
|
+
filename: '文件名 (可选)',
|
72
|
+
edit: '编辑'
|
73
|
+
};
|
74
|
+
})( jQuery );
|
@@ -0,0 +1,73 @@
|
|
1
|
+
(function ($) {
|
2
|
+
$.Redactor.opts.langs['zh_tw'] = {
|
3
|
+
html: 'HTML',
|
4
|
+
video: '插入影片',
|
5
|
+
image: '插入圖片',
|
6
|
+
table: '表格',
|
7
|
+
link: '連結',
|
8
|
+
link_insert: '插入連結',
|
9
|
+
link_edit: 'Edit link',
|
10
|
+
unlink: '移除連結',
|
11
|
+
formatting: '樣式',
|
12
|
+
paragraph: '段落',
|
13
|
+
quote: '引用',
|
14
|
+
code: '原始碼',
|
15
|
+
header1: '標題 1',
|
16
|
+
header2: '標題 2',
|
17
|
+
header3: '標題 3',
|
18
|
+
header4: '標題 4',
|
19
|
+
bold: '將文字變成粗體',
|
20
|
+
italic: '將文字變成斜體',
|
21
|
+
fontcolor: '選擇文字顏色',
|
22
|
+
backcolor: '選擇文字底色',
|
23
|
+
unorderedlist: '項目列表',
|
24
|
+
orderedlist: '編號列表',
|
25
|
+
outdent: '減少縮排',
|
26
|
+
indent: '增加縮排',
|
27
|
+
cancel: '取消',
|
28
|
+
insert: '插入',
|
29
|
+
save: '儲存',
|
30
|
+
_delete: '刪除',
|
31
|
+
insert_table: '插入表格',
|
32
|
+
insert_row_above: '加入上方橫列',
|
33
|
+
insert_row_below: '加入下方橫列',
|
34
|
+
insert_column_left: '加入左方直欄',
|
35
|
+
insert_column_right: '加入右方直欄',
|
36
|
+
delete_column: '刪除整欄',
|
37
|
+
delete_row: '刪除整列',
|
38
|
+
delete_table: '刪除表格',
|
39
|
+
rows: '橫列',
|
40
|
+
columns: '直欄',
|
41
|
+
add_head: '加入表格標題',
|
42
|
+
delete_head: '刪除表格標題',
|
43
|
+
title: '標題',
|
44
|
+
image_position: '位置',
|
45
|
+
none: '無',
|
46
|
+
left: '靠左',
|
47
|
+
right: '靠右',
|
48
|
+
image_web_link: '連結',
|
49
|
+
text: '內文',
|
50
|
+
mailto: 'Email',
|
51
|
+
web: '網址',
|
52
|
+
video_html_code: '嵌入影片的原始碼',
|
53
|
+
file: '插入文件',
|
54
|
+
upload: '上傳',
|
55
|
+
download: '下載',
|
56
|
+
choose: '選擇',
|
57
|
+
or_choose: '或選擇',
|
58
|
+
drop_file_here: '將文件拖曳至此',
|
59
|
+
align_left: '將文字對齊至左側',
|
60
|
+
align_center: '將文字置中',
|
61
|
+
align_right: '將文字對齊至右側',
|
62
|
+
align_justify: '對齊至兩側',
|
63
|
+
horizontalrule: '插入水平線',
|
64
|
+
fullscreen: '全銀幕',
|
65
|
+
deleted: '刪除線',
|
66
|
+
anchor: '錨點',
|
67
|
+
link_new_tab: 'Open link in new tab',
|
68
|
+
underline: 'Underline',
|
69
|
+
alignment: 'Alignment',
|
70
|
+
filename: 'Name (optional)',
|
71
|
+
edit: 'Edit'
|
72
|
+
};
|
73
|
+
})( jQuery );
|
@@ -0,0 +1,6 @@
|
|
1
|
+
//= require redactor-rails/plugins/clips
|
2
|
+
//= require redactor-rails/plugins/fontcolor
|
3
|
+
//= require redactor-rails/plugins/fontfamily
|
4
|
+
//= require redactor-rails/plugins/fontsize
|
5
|
+
//= require redactor-rails/plugins/fullscreen
|
6
|
+
//= require redactor-rails/plugins/textdirection
|
@@ -0,0 +1,61 @@
|
|
1
|
+
if (!RedactorPlugins) var RedactorPlugins = {};
|
2
|
+
|
3
|
+
RedactorPlugins.clips = function()
|
4
|
+
{
|
5
|
+
return {
|
6
|
+
init: function()
|
7
|
+
{
|
8
|
+
var items = [
|
9
|
+
['Lorem ipsum...', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'],
|
10
|
+
['Red label', '<span class="label-red">Label</span>']
|
11
|
+
];
|
12
|
+
|
13
|
+
this.clips.template = $('<ul id="redactor-modal-list">');
|
14
|
+
|
15
|
+
for (var i = 0; i < items.length; i++)
|
16
|
+
{
|
17
|
+
var li = $('<li>');
|
18
|
+
var a = $('<a href="#" class="redactor-clip-link">').text(items[i][0]);
|
19
|
+
var div = $('<div class="redactor-clip">').hide().html(items[i][1]);
|
20
|
+
|
21
|
+
li.append(a);
|
22
|
+
li.append(div);
|
23
|
+
this.clips.template.append(li);
|
24
|
+
}
|
25
|
+
|
26
|
+
this.modal.addTemplate('clips', '<section>' + this.utils.getOuterHtml(this.clips.template) + '</section>');
|
27
|
+
|
28
|
+
var button = this.button.add('clips', 'Clips');
|
29
|
+
this.button.addCallback(button, this.clips.show);
|
30
|
+
|
31
|
+
},
|
32
|
+
show: function()
|
33
|
+
{
|
34
|
+
this.modal.load('clips', 'Insert Clips', 400);
|
35
|
+
|
36
|
+
this.modal.createCancelButton();
|
37
|
+
|
38
|
+
$('#redactor-modal-list').find('.redactor-clip-link').each($.proxy(this.clips.load, this));
|
39
|
+
|
40
|
+
this.selection.save();
|
41
|
+
this.modal.show();
|
42
|
+
},
|
43
|
+
load: function(i,s)
|
44
|
+
{
|
45
|
+
$(s).on('click', $.proxy(function(e)
|
46
|
+
{
|
47
|
+
e.preventDefault();
|
48
|
+
this.clips.insert($(s).next().html());
|
49
|
+
|
50
|
+
}, this));
|
51
|
+
},
|
52
|
+
insert: function(html)
|
53
|
+
{
|
54
|
+
this.selection.restore();
|
55
|
+
this.insert.html(html);
|
56
|
+
this.modal.close();
|
57
|
+
this.observe.load();
|
58
|
+
}
|
59
|
+
};
|
60
|
+
};
|
61
|
+
|
@@ -0,0 +1,76 @@
|
|
1
|
+
if (!RedactorPlugins) var RedactorPlugins = {};
|
2
|
+
|
3
|
+
(function($)
|
4
|
+
{
|
5
|
+
RedactorPlugins.fontcolor = function()
|
6
|
+
{
|
7
|
+
return {
|
8
|
+
init: function()
|
9
|
+
{
|
10
|
+
var colors = [
|
11
|
+
'#ffffff', '#000000', '#eeece1', '#1f497d', '#4f81bd', '#c0504d', '#9bbb59', '#8064a2', '#4bacc6', '#f79646', '#ffff00',
|
12
|
+
'#f2f2f2', '#7f7f7f', '#ddd9c3', '#c6d9f0', '#dbe5f1', '#f2dcdb', '#ebf1dd', '#e5e0ec', '#dbeef3', '#fdeada', '#fff2ca',
|
13
|
+
'#d8d8d8', '#595959', '#c4bd97', '#8db3e2', '#b8cce4', '#e5b9b7', '#d7e3bc', '#ccc1d9', '#b7dde8', '#fbd5b5', '#ffe694',
|
14
|
+
'#bfbfbf', '#3f3f3f', '#938953', '#548dd4', '#95b3d7', '#d99694', '#c3d69b', '#b2a2c7', '#b7dde8', '#fac08f', '#f2c314',
|
15
|
+
'#a5a5a5', '#262626', '#494429', '#17365d', '#366092', '#953734', '#76923c', '#5f497a', '#92cddc', '#e36c09', '#c09100',
|
16
|
+
'#7f7f7f', '#0c0c0c', '#1d1b10', '#0f243e', '#244061', '#632423', '#4f6128', '#3f3151', '#31859b', '#974806', '#7f6000'
|
17
|
+
];
|
18
|
+
|
19
|
+
var buttons = ['fontcolor', 'backcolor'];
|
20
|
+
|
21
|
+
for (var i = 0; i < 2; i++)
|
22
|
+
{
|
23
|
+
var name = buttons[i];
|
24
|
+
|
25
|
+
var button = this.button.add(name, this.lang.get(name));
|
26
|
+
var $dropdown = this.button.addDropdown(button);
|
27
|
+
|
28
|
+
$dropdown.width(242);
|
29
|
+
this.fontcolor.buildPicker($dropdown, name, colors);
|
30
|
+
|
31
|
+
}
|
32
|
+
},
|
33
|
+
buildPicker: function($dropdown, name, colors)
|
34
|
+
{
|
35
|
+
var rule = (name == 'backcolor') ? 'background-color' : 'color';
|
36
|
+
|
37
|
+
var len = colors.length;
|
38
|
+
var self = this;
|
39
|
+
var func = function(e)
|
40
|
+
{
|
41
|
+
e.preventDefault();
|
42
|
+
self.fontcolor.set($(this).data('rule'), $(this).attr('rel'));
|
43
|
+
};
|
44
|
+
|
45
|
+
for (var z = 0; z < len; z++)
|
46
|
+
{
|
47
|
+
var color = colors[z];
|
48
|
+
|
49
|
+
var $swatch = $('<a rel="' + color + '" data-rule="' + rule +'" href="#" style="float: left; font-size: 0; border: 2px solid #fff; padding: 0; margin: 0; width: 22px; height: 22px;"></a>');
|
50
|
+
$swatch.css('background-color', color);
|
51
|
+
$swatch.on('click', func);
|
52
|
+
|
53
|
+
$dropdown.append($swatch);
|
54
|
+
}
|
55
|
+
|
56
|
+
var $elNone = $('<a href="#" style="display: block; clear: both; padding: 5px; font-size: 12px; line-height: 1;"></a>').html(this.lang.get('none'));
|
57
|
+
$elNone.on('click', $.proxy(function(e)
|
58
|
+
{
|
59
|
+
e.preventDefault();
|
60
|
+
this.fontcolor.remove(rule);
|
61
|
+
|
62
|
+
}, this));
|
63
|
+
|
64
|
+
$dropdown.append($elNone);
|
65
|
+
},
|
66
|
+
set: function(rule, type)
|
67
|
+
{
|
68
|
+
this.inline.format('span', 'style', rule + ': ' + type + ';');
|
69
|
+
},
|
70
|
+
remove: function(rule)
|
71
|
+
{
|
72
|
+
this.inline.removeStyleRule(rule);
|
73
|
+
}
|
74
|
+
};
|
75
|
+
};
|
76
|
+
})(jQuery);
|
@@ -0,0 +1,35 @@
|
|
1
|
+
if (!RedactorPlugins) var RedactorPlugins = {};
|
2
|
+
|
3
|
+
(function($)
|
4
|
+
{
|
5
|
+
RedactorPlugins.fontfamily = function()
|
6
|
+
{
|
7
|
+
return {
|
8
|
+
init: function ()
|
9
|
+
{
|
10
|
+
var fonts = [ 'Arial', 'Helvetica', 'Georgia', 'Times New Roman', 'Monospace' ];
|
11
|
+
var that = this;
|
12
|
+
var dropdown = {};
|
13
|
+
|
14
|
+
$.each(fonts, function(i, s)
|
15
|
+
{
|
16
|
+
dropdown['s' + i] = { title: s, func: function() { that.fontfamily.set(s); }};
|
17
|
+
});
|
18
|
+
|
19
|
+
dropdown.remove = { title: 'Remove Font Family', func: that.fontfamily.reset };
|
20
|
+
|
21
|
+
var button = this.button.add('fontfamily', 'Change Font Family');
|
22
|
+
this.button.addDropdown(button, dropdown);
|
23
|
+
|
24
|
+
},
|
25
|
+
set: function (value)
|
26
|
+
{
|
27
|
+
this.inline.format('span', 'style', 'font-family:' + value + ';');
|
28
|
+
},
|
29
|
+
reset: function()
|
30
|
+
{
|
31
|
+
this.inline.removeStyleRule('font-family');
|
32
|
+
}
|
33
|
+
};
|
34
|
+
};
|
35
|
+
})(jQuery);
|
@@ -0,0 +1,34 @@
|
|
1
|
+
if (!RedactorPlugins) var RedactorPlugins = {};
|
2
|
+
|
3
|
+
(function($)
|
4
|
+
{
|
5
|
+
RedactorPlugins.fontsize = function()
|
6
|
+
{
|
7
|
+
return {
|
8
|
+
init: function()
|
9
|
+
{
|
10
|
+
var fonts = [10, 11, 12, 14, 16, 18, 20, 24, 28, 30];
|
11
|
+
var that = this;
|
12
|
+
var dropdown = {};
|
13
|
+
|
14
|
+
$.each(fonts, function(i, s)
|
15
|
+
{
|
16
|
+
dropdown['s' + i] = { title: s + 'px', func: function() { that.fontsize.set(s); } };
|
17
|
+
});
|
18
|
+
|
19
|
+
dropdown.remove = { title: 'Remove Font Size', func: that.fontsize.reset };
|
20
|
+
|
21
|
+
var button = this.button.add('fontsize', 'Change Font Size');
|
22
|
+
this.button.addDropdown(button, dropdown);
|
23
|
+
},
|
24
|
+
set: function(size)
|
25
|
+
{
|
26
|
+
this.inline.format('span', 'style', 'font-size: ' + size + 'px;');
|
27
|
+
},
|
28
|
+
reset: function()
|
29
|
+
{
|
30
|
+
this.inline.removeStyleRule('font-size');
|
31
|
+
}
|
32
|
+
};
|
33
|
+
};
|
34
|
+
})(jQuery);
|
@@ -0,0 +1,123 @@
|
|
1
|
+
if (!RedactorPlugins) var RedactorPlugins = {};
|
2
|
+
|
3
|
+
(function($)
|
4
|
+
{
|
5
|
+
RedactorPlugins.fullscreen = function()
|
6
|
+
{
|
7
|
+
return {
|
8
|
+
init: function()
|
9
|
+
{
|
10
|
+
this.fullscreen.isOpen = false;
|
11
|
+
|
12
|
+
var button = this.button.add('fullscreen', 'Fullscreen');
|
13
|
+
this.button.addCallback(button, this.fullscreen.toggle);
|
14
|
+
|
15
|
+
if (this.opts.fullscreen) this.fullscreen.toggle();
|
16
|
+
},
|
17
|
+
enable: function()
|
18
|
+
{
|
19
|
+
this.button.changeIcon('fullscreen', 'normalscreen');
|
20
|
+
this.button.setActive('fullscreen');
|
21
|
+
this.fullscreen.isOpen = true;
|
22
|
+
|
23
|
+
if (this.opts.toolbarExternal)
|
24
|
+
{
|
25
|
+
this.fullscreen.toolcss = {};
|
26
|
+
this.fullscreen.boxcss = {};
|
27
|
+
this.fullscreen.toolcss.width = this.$toolbar.css('width');
|
28
|
+
this.fullscreen.toolcss.top = this.$toolbar.css('top');
|
29
|
+
this.fullscreen.toolcss.position = this.$toolbar.css('position');
|
30
|
+
this.fullscreen.boxcss.top = this.$box.css('top');
|
31
|
+
}
|
32
|
+
|
33
|
+
this.fullscreen.height = this.$editor.height();
|
34
|
+
|
35
|
+
if (this.opts.maxHeight) this.$editor.css('max-height', '');
|
36
|
+
if (this.opts.minHeight) this.$editor.css('min-height', '');
|
37
|
+
|
38
|
+
if (!this.$fullscreenPlaceholder) this.$fullscreenPlaceholder = $('<div/>');
|
39
|
+
this.$fullscreenPlaceholder.insertAfter(this.$box);
|
40
|
+
|
41
|
+
this.$box.appendTo(document.body);
|
42
|
+
|
43
|
+
this.$box.addClass('redactor-box-fullscreen');
|
44
|
+
$('body, html').css('overflow', 'hidden');
|
45
|
+
|
46
|
+
this.fullscreen.resize();
|
47
|
+
$(window).on('resize.redactor.fullscreen', $.proxy(this.fullscreen.resize, this));
|
48
|
+
$(document).scrollTop(0, 0);
|
49
|
+
|
50
|
+
$('.redactor-toolbar-tooltip').hide();
|
51
|
+
this.$editor.focus();
|
52
|
+
this.observe.load();
|
53
|
+
},
|
54
|
+
disable: function()
|
55
|
+
{
|
56
|
+
this.button.removeIcon('fullscreen', 'normalscreen');
|
57
|
+
this.button.setInactive('fullscreen');
|
58
|
+
this.fullscreen.isOpen = false;
|
59
|
+
|
60
|
+
$(window).off('resize.redactor.fullscreen');
|
61
|
+
$('body, html').css('overflow', '');
|
62
|
+
|
63
|
+
this.$box.insertBefore(this.$fullscreenPlaceholder);
|
64
|
+
this.$fullscreenPlaceholder.remove();
|
65
|
+
|
66
|
+
this.$box.removeClass('redactor-box-fullscreen').css({ width: 'auto', height: 'auto' });
|
67
|
+
|
68
|
+
this.code.sync();
|
69
|
+
|
70
|
+
if (this.opts.toolbarExternal)
|
71
|
+
{
|
72
|
+
this.$box.css('top', this.fullscreen.boxcss.top);
|
73
|
+
this.$toolbar.css({
|
74
|
+
'width': this.fullscreen.toolcss.width,
|
75
|
+
'top': this.fullscreen.toolcss.top,
|
76
|
+
'position': this.fullscreen.toolcss.position
|
77
|
+
});
|
78
|
+
}
|
79
|
+
|
80
|
+
if (this.opts.minHeight) this.$editor.css('minHeight', this.opts.minHeight);
|
81
|
+
if (this.opts.maxHeight) this.$editor.css('maxHeight', this.opts.maxHeight);
|
82
|
+
|
83
|
+
$('.redactor-toolbar-tooltip').hide();
|
84
|
+
this.$editor.css('height', 'auto');
|
85
|
+
this.$editor.focus();
|
86
|
+
this.observe.load();
|
87
|
+
},
|
88
|
+
toggle: function()
|
89
|
+
{
|
90
|
+
if (this.fullscreen.isOpen)
|
91
|
+
{
|
92
|
+
this.fullscreen.disable();
|
93
|
+
}
|
94
|
+
else
|
95
|
+
{
|
96
|
+
this.fullscreen.enable();
|
97
|
+
}
|
98
|
+
},
|
99
|
+
resize: function()
|
100
|
+
{
|
101
|
+
if (!this.fullscreen.isOpen) return;
|
102
|
+
|
103
|
+
var toolbarHeight = this.$toolbar.height();
|
104
|
+
|
105
|
+
var height = $(window).height() - toolbarHeight - this.utils.normalize(this.$editor.css('padding-top')) - this.utils.normalize(this.$editor.css('padding-bottom'));
|
106
|
+
this.$box.width($(window).width()).height(height);
|
107
|
+
|
108
|
+
if (this.opts.toolbarExternal)
|
109
|
+
{
|
110
|
+
this.$toolbar.css({
|
111
|
+
'top': '0px',
|
112
|
+
'position': 'absolute',
|
113
|
+
'width': '100%'
|
114
|
+
});
|
115
|
+
|
116
|
+
this.$box.css('top', toolbarHeight + 'px');
|
117
|
+
}
|
118
|
+
|
119
|
+
this.$editor.height(height);
|
120
|
+
}
|
121
|
+
};
|
122
|
+
};
|
123
|
+
})(jQuery);
|