require 'rexml/document'
def sanitize(text)
- Sanitize.clean(text, Sanitize::Config::OSM)
+ Sanitize.clean(text, Sanitize::Config::OSM).html_safe
end
def htmlize(text)
end
def linkify(text)
- return auto_link(text, :link => :urls, :html => { :rel => "nofollow" })
+ if text.html_safe?
+ Rinku.auto_link(text, :urls, tag_options(:rel => "nofollow")).html_safe
+ else
+ Rinku.auto_link(text, :urls, tag_options(:rel => "nofollow"))
+ end
end
def html_escape_unicode(text)
- chars = ActiveSupport::Multibyte::Chars.u_unpack(text).map do |c|
+ chars = ActiveSupport::Multibyte::Unicode.u_unpack(text).map do |c|
c < 127 ? c.chr : "&##{c.to_s};"
end
js << javascript_strings_for_key("javascripts")
js << "</script>\n"
- return js
+ return raw(js)
end
def style_rules
css << ".show_if_user_#{@user.id} { display: inline }" if @user;
css << ".hide_unless_administrator { display: none }" unless @user and @user.administrator?;
- return content_tag(:style, css)
+ return content_tag(:style, css, :type => "text/css")
end
def if_logged_in(tag = :div, &block)
- concat(content_tag(tag, capture(&block), :class => "hide_unless_logged_in"))
+ content_tag(tag, capture(&block), :class => "hide_unless_logged_in")
end
def if_not_logged_in(tag = :div, &block)
- concat(content_tag(tag, capture(&block), :class => "hide_if_logged_in"))
+ content_tag(tag, capture(&block), :class => "hide_if_logged_in")
end
def if_user(user, tag = :div, &block)
if user
- concat(content_tag(tag, capture(&block), :class => "hidden show_if_user_#{user.id}"))
+ content_tag(tag, capture(&block), :class => "hidden show_if_user_#{user.id}")
end
end
def unless_user(user, tag = :div, &block)
if user
- concat(content_tag(tag, capture(&block), :class => "hide_if_user_#{user.id}"))
+ content_tag(tag, capture(&block), :class => "hide_if_user_#{user.id}")
else
- concat(content_tag(tag, capture(&block)))
+ content_tag(tag, capture(&block))
end
end
def if_administrator(tag = :div, &block)
- concat(content_tag(tag, capture(&block), :class => "hide_unless_administrator"))
+ content_tag(tag, capture(&block), :class => "hide_unless_administrator")
end
def describe_location(lat, lon, zoom = nil, language = nil)
end
def preferred_editor
- if @user and @user.preferred_editor
+ if params[:editor]
+ params[:editor]
+ elsif @user and @user.preferred_editor
@user.preferred_editor
else
DEFAULT_EDITOR
end
end
+ def friendly_date(date)
+ content_tag(:span, time_ago_in_words(date), :title => l(date, :format => :friendly))
+ end
+
+ def note_author(object, link_options = {})
+ if object.author.nil?
+ h(object.author_name)
+ else
+ link_to h(object.author_name), link_options.merge({:controller => "user", :action => "view", :display_name => object.author_name})
+ end
+ end
+
+ def with_format(format, &block)
+ old_format = @template_format
+ @template_format = format
+ result = block.call
+ @template_format = old_format
+ return result
+ end
+
private
def javascript_strings_for_key(key)