jemcode/administrate-field-ckeditor

View on GitHub
lib/administrate/field/ckeditor.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "administrate/field/text"
require "rails"
require "administrate/engine"
require "ckeditor"

module Administrate
  module Field
    class Ckeditor < Administrate::Field::Text
      class Engine < ::Rails::Engine
        Administrate::Engine.add_javascript "administrate-field-ckeditor/application"
        Administrate::Engine.add_stylesheet "administrate-field-ckeditor/application"
      end

      include ActionView::Helpers::SanitizeHelper
      include ActionView::Helpers::OutputSafetyHelper

      def truncate_stripped
        strip_tags(data.to_s)[0..truncation_length]
      end

      def to_html
        raw(data.to_s)
      end

      def ckeditor_options
        options.fetch(:ckeditor, {})
      end
    end
  end
end

module Ckeditor
  module Utils
    class << self
      alias_method :old_js_init_ckeditor, :js_init_ckeditor

      def js_init_ckeditor(dom_id, replace)
        %(document.addEventListener("DOMContentLoaded", function(event) {
          #{old_js_init_ckeditor(dom_id, replace)}
        });)
      end
    end
  end
end