- def richtext_area(object_name, method, options = {})
- id = "#{object_name.to_s}_#{method.to_s}"
- format = options.delete(:format) || "markdown"
-
- content_tag(:div, :id => "#{id}_container", :class => "richtext_container") do
- output_buffer << content_tag(:div, :id => "#{id}_content", :class => "richtext_content") do
- output_buffer << text_area(object_name, method, options.merge("data-preview-url" => preview_url(:format => format)))
- output_buffer << content_tag(:div, "", :id => "#{id}_preview", :class => "richtext_preview")
- end
-
- output_buffer << content_tag(:div, :id => "#{id}_help", :class => "richtext_help") do
- output_buffer << render("site/#{format}_help")
- output_buffer << submit_tag(I18n.t("site.richtext_area.edit"), :id => "#{id}_doedit", :class => "richtext_doedit", :disabled => true)
- output_buffer << submit_tag(I18n.t("site.richtext_area.preview"), :id => "#{id}_dopreview", :class => "richtext_dopreview")
- end
+ # If the flash is a hash, then it will be a partial with a hash of locals, so we can call `render` on that
+ # This allows us to render html into a flash message in a safe manner.
+ def render_flash(flash)
+ if flash.is_a?(Hash)
+ render flash.with_indifferent_access
+ else
+ flash