Sha256: a6501f759e5adc1befbcda7c1390293f3d99c74b05fd62d96bd34f3867cb96ed

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

require 'paperclip'

module ActionView
  module Helpers
    module FormHelper
      def wysihat_editor(object_name, method, options = {})
        InstanceTag.new(object_name, method, self, options.delete(:object)).to_wysihat_editor_tag(options)
      end
    end
  
    class InstanceTag #:nodoc:
      def to_wysihat_editor_tag(options = {})
        options = DEFAULT_TEXT_AREA_OPTIONS.merge(options.stringify_keys)
        add_default_name_and_id(options)
        
        size = options.delete("size")
        options["cols"], options["rows"] = size.split("x") if size && size.respond_to?(:split) 
        
        if options['buttons'] == nil || options['buttons'] == :all
          buttons = [:bold, :italic, :underline, :strikethrough, :h1, :h2, :h3, :justify_left, :justify_center, :justify_right, :insert_ordered_list, :insert_unordered_list, :undo, :redo, :link, :html, :image, :file]
        end
        
        javascript = "Event.observe(window, 'load', function() {" <<
        "wysiHatify('#{tag_id}', ['#{buttons.join('\', \'')}']);" <<
        "});"
        
        content_tag(:script, javascript, :type => 'text/javascript') <<
        content_tag(:textarea, html_escape(options.delete('value') || value_before_type_cast(object)), options.merge(:class => 'wysihat_editor'))
      end
    end
  
    class FormBuilder #:nodoc:
      def wysihat_editor(method, options = {})
        @template.wysihat_editor(@object_name, method, options)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
bcalloway-wysihat-engine-0.1.11 lib/wysihat-engine.rb
bcalloway-wysihat-engine-0.1.10 lib/wysihat-engine.rb