Sha256: c88ed6a4779e2970007d81e74b8dfd8bc841f9d98a9c71f3ea602afbf9432663

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 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)

        if size = options.delete("size")
          options["cols"], options["rows"] = size.split("x") if size.respond_to?(:split)
        end
        
        buttons, helpers = '', ''
        
        case options['buttons']
        when nil, :all
          options['buttons'] = [:bold, :italic, :underline, :strikethrough, :justify_left, :justify_center, :justify_right, :insert_ordered_list, :insert_unordered_list, :undo, :redo, :link, :html, :paste, :image]
        end
 
        content_tag(
          :script,
          "addButtons('#{tag_id}', ['#{options.delete('buttons').join('\', \'')}']);",
          :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
wysihat-engine-0.1.3 lib/wysihat-engine.rb
wysihat-engine-0.1.2 lib/wysihat-engine.rb