Module: Tinymce::Hammer::ViewHelpers
- Defined in:
- lib/tinymce/hammer/view_helpers.rb
Instance Method Summary collapse
-
#append_class_name(options, class_name) ⇒ Object
:nodoc:.
-
#init_tinymce(classname = "tinymce") ⇒ Object
Returns the TinymceHammer initializer javascript only.
- #init_tinymce_hammer ⇒ Object
-
#init_tinymce_hammer_if_required ⇒ Object
If you call this method in your document head two script tags will be inserted when tinymce is required, otherwise nothing will be inserted.
- #tinymce(object_name, method, options = {}) ⇒ Object
-
#tinymce_hammer_javascript_tags ⇒ Object
Returns two script tags.
- #tinymce_tag(name, content = '', options = {}) ⇒ Object
Instance Method Details
#append_class_name(options, class_name) ⇒ Object
:nodoc:
91 92 93 94 95 96 97 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 91 def append_class_name , class_name #:nodoc: key = .has_key?('class') ? 'class' : :class unless [key].to_s =~ /(^|\s+)#{class_name}(\s+|$)/ [key] = "#{options[key]} #{class_name}".strip end end |
#init_tinymce(classname = "tinymce") ⇒ Object
Returns the TinymceHammer initializer javascript only. Very handy for AJAX calls and on-demand initializing. You can pass a classname for the textarea you want to initialize, or an array of classnames you want to be initialized.
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 55 def init_tinymce(classname="tinymce") init = Tinymce::Hammer.init.collect{|key,value| "#{key} : #{value.to_json}" }.join(', ') selector = classname.is_a?(Array) ? classname.join(",") : classname.to_s setup = "init.setup = #{Tinymce::Hammer.setup};" if Tinymce::Hammer.setup init = " <script type=\"text/javascript\">\n TinymceHammer = {\n init : function() {\n var init = { \#{init} };\n init.mode = 'specific_textareas';\n init.editor_selector = '\#{selector}';\n init.plugins = '\#{Tinymce::Hammer.plugins.join(',')}';\n init.language = '\#{Tinymce::Hammer.languages.first}';\n \#{setup}\n tinyMCE.init(init);\n }\n };\n TinymceHammer.init();\n </script>\n JS\nend\n" |
#init_tinymce_hammer ⇒ Object
13 14 15 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 13 def init_tinymce_hammer end |
#init_tinymce_hammer_if_required ⇒ Object
If you call this method in your document head two script tags will be inserted when tinymce is required, otherwise nothing will be inserted.
5 6 7 8 9 10 11 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 5 def init_tinymce_hammer_if_required if tinymce_hammer_required? else nil end end |
#tinymce(object_name, method, options = {}) ⇒ Object
85 86 87 88 89 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 85 def tinymce object_name, method, = {} require_tinymce_hammer append_class_name(, 'tinymce') text_area(object_name, method, ) end |
#tinymce_hammer_javascript_tags ⇒ Object
Returns two script tags. The first loads the combined javascript file containing tinymce. The second tag initializes tiny mce.
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 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 19 def init = ::Tinymce::Hammer.init if init.is_a?(Hash) init = HashWithIndifferentAccess.new(init) init = init.keys.sort.collect(&:to_s).sort.collect{|key| [key, init[key]] } end init = init.collect {|key,value| "#{key} : #{value.to_json}" }.join(', ') setup = "init.setup = #{Tinymce::Hammer.setup};" if Tinymce::Hammer.setup return " <script src='#{tinymce_hammer_js_path}' type='text/javascript'></script> <script type='text/javascript'> TinymceHammer = { init : function() { var init = { #{init} }; init.mode = 'specific_textareas'; init.editor_selector = 'tinymce'; init.plugins = '#{Tinymce::Hammer.plugins.join(',')}'; init.language = '#{I18n.locale}'; #{setup} tinyMCE.init(init); }, addEditor : function(dom_id) { tinyMCE.execCommand('mceAddControl', true, dom_id); } } DomReady.ready(TinymceHammer.init); </script>".html_safe end |
#tinymce_tag(name, content = '', options = {}) ⇒ Object
79 80 81 82 83 |
# File 'lib/tinymce/hammer/view_helpers.rb', line 79 def tinymce_tag name, content = '', = {} require_tinymce_hammer append_class_name(, 'tinymce') text_area_tag(name, content, ) end |