tinymce_helper.rb
2.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
module TinymceHelper
include MacrosHelper
def tinymce_js
output = ''
output += javascript_include_tag 'tinymce/js/tinymce/tinymce.min.js'
output += javascript_include_tag 'tinymce/js/tinymce/jquery.tinymce.min.js'
output += javascript_include_tag 'tinymce.js'
output += include_macro_js_files.to_s
output
end
def tinymce_init_js options = {}
options.merge! :document_base_url => environment.top_url,
:content_css => "/stylesheets/tinymce.css,#{macro_css_files}",
:plugins => %w[compat3x advlist autolink lists link image charmap print preview hr anchor pagebreak
searchreplace wordcount visualblocks visualchars code fullscreen
insertdatetime media nonbreaking save table contextmenu directionality
emoticons template paste textcolor colorpicker textpattern],
:language => tinymce_language
options[:toolbar1] = "insertfile undo redo | copy paste | bold italic underline | styleselect fontsizeselect | forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
if options[:mode] == 'simple'
options[:menubar] = false
else
options[:menubar] = 'edit insert view tools'
options[:toolbar2] = 'print preview code media | table'
options[:toolbar2] += ' | macros'
macros_with_buttons.each do |macro|
options[:toolbar2] += " #{macro.identifier}"
end
end
options[:macros_setup] = macros_with_buttons.map do |macro|
<<-EOS
ed.addButton('#{macro.identifier}', {
title: #{macro_title(macro).to_json},
onclick: #{generate_macro_config_dialog macro},
image : '#{macro.configuration[:icon_path]}'
});
EOS
end
apply_etherpadlite_options options
#cleanup non tinymce options
options = options.except :mode
"noosfero.tinymce.init(#{options.to_json})"
end
def apply_etherpadlite_options options
return if options[:mode] == 'simple'
return unless environment.tinymce_plugin_etherpadlite_padServerUrl.present?
options.merge! :plugin_etherpadlite_padServerUrl => environment.tinymce_plugin_etherpadlite_padServerUrl,
:plugin_etherpadlite_padNamesPrefix => environment.default_hostname,
:plugin_etherpadlite_padWidth => environment.tinymce_plugin_etherpadlite_padWidth,
:plugin_etherpadlite_padHeight => environment.tinymce_plugin_etherpadlite_padHeight
options[:plugins] << "etherpadlite"
options[:toolbar2] += " | etherpadlite"
end
end