format :html do
view :raw do |args|
%(
#{ head_title }
#{ head_buttons }
#{ head_stylesheets }
#{ head_javascript }
)
end
view :core do |args|
case
when focal? ; CGI.escapeHTML _render_raw(args)
when @mainline ; "(*head)"
else ; _render_raw(args)
end
end
def head_title
title = root.card && root.card.name
title = nil if title.blank?
title = params[:action] if title=='*placeholder'
%(
#{title ? "#{title} - " : ''}#{ Card.setting :title })
end
def head_buttons
bits = []
[:favicon, :logo].each do |name|
if c = Card[name] and c.type_id == ImageID and !c.db_content.blank?
bits << %{}
break
end
end
#Universal Edit Button
if root.card
if !root.card.new_record? && root.card.ok?(:update)
bits << %{}
end
# RSS # move to mods!
if root.card.type_id == SearchTypeID
opts = { :format => :rss }
root.search_params[:vars].each { |key, val| opts["_#{key}"] = val }
bits << %{}
end
end
bits.join "\n "
end
def head_stylesheets
manual_style = params[:style]
style_card = Card[manual_style] if manual_style
style_card ||= root.card.rule_card :style
@css_path = if params[:debug] == 'style'
page_path( style_card.cardname, :item => :import, :format => :css)
elsif style_card
card_path style_card.machine_output_url
end
if @css_path
%{}
end
end
def head_javascript
varvals = [
"window.wagn={rootPath:'#{ Card.config.relative_url_root }'}",
"window.tinyMCEPreInit={base:\"#{card_path 'assets/tinymce'}\",query:'3.5.9',suffix:''}" # tinyMCE doesn't load on non-root wagns w/o preinit line
]
card.have_recaptcha_keys? and varvals << "wagn.recaptchaKey='#{Card.config.recaptcha_public_key}'"
c=Card[:double_click] and !Card.toggle c.content and varvals << 'wagn.noDoubleClick=true'
@css_path and varvals << "wagn.cssPath='#{@css_path}'"
manual_script = params[:script]
script_card = Card[manual_script] if manual_script
script_card ||= root.card.rule_card :script
@js_tag = if params[:debug] == 'script'
script_card.format(:js).render_core :item => :include_tag
elsif script_card
javascript_include_tag script_card.machine_output_url
end
ie9_card = Card[:script_html5shiv_printshiv]
%(#{ javascript_tag do varvals * ';' end }
#{ @js_tag if @js_tag }
#{ javascript_tag { "wagn.setTinyMCEConfig('#{ escape_javascript Card.setting(:tiny_mce).to_s }')" } }
#{ google_analytics_head_javascript }
)
end
def google_analytics_head_javascript
if ga_key = Card.setting("*google analytics key") #fixme. escape this?
%{
}
end
end
end