Module: Umlaut::Helper

Includes:
FooterHelper, HtmlHeadHelper, UrlGeneration
Included in:
EmailerHelper
Defined in:
app/helpers/umlaut/helper.rb

Overview

Rails view helpers needed accross Umlaut controllers are collected here. Generally UmlautController will call “helper Umlaut::Helper” to expose these to all umlaut controllers.

Instance Method Summary collapse

Methods included from HtmlHeadHelper

#render_meta_refresh, #render_opensearch_link, #render_umlaut_head_content, #umlaut_title_text

Methods included from FooterHelper

#link_to_direct_sfx, #link_to_test_resolve, #link_to_toggle_debug_info, #render_service_credits

Methods included from UrlGeneration

#path_to_image, #path_to_javascript, #path_to_stylesheet, #url_for

Instance Method Details

#date_format(date_string) ⇒ Object

formats dates sent in an OpenURL into a more human-friendly format. Input Dates look like ‘20000304’. Can be just year, or just year/month, or all. Not sure what this format is officially called. Not sure if they can have dashes sometimes?



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/helpers/umlaut/helper.rb', line 40

def date_format(date_string)      
  date_string =~ /(\d\d\d\d)\-?(\d\d)?\-?(\d\d)?/

  begin
    year, month, day_of_month = $1, $2, $3

    if ( month )                
      date = Date.civil(year.to_i, month.to_i)
      formatted_month = date.strftime('%b')
    end
    
    output = year
    output += ' ' + formatted_month if formatted_month
    output += ' ' + day_of_month if day_of_month && day_of_month.to_i != 0

    return output
  rescue
    return date_string
  end
end

Button for showing permalink, dynamically loaded with js if neccesary. works with load_permalink.js



65
66
67
68
69
70
71
72
# File 'app/helpers/umlaut/helper.rb', line 65

def render_umlaut_permalink
  if @user_request 
    ("div", :class => "umlaut-permalink") do
      render_umlaut_permalink_toggle + 
      render_umlaut_permalink_content
    end
  end
end

Proper content area to be shown by umlaut_permalink_toggle, and loaded with content AJAXy.



85
86
87
88
89
90
91
92
93
94
95
# File 'app/helpers/umlaut/helper.rb', line 85

def render_umlaut_permalink_content
  ("div", 
      :id => "umlaut-permalink-container",
      :class=> "umlaut-permalink-container",  
      :style => "display: none;",
      :'data-loaded' => current_permalink_url.present? ) do
    ("span", :class => "umlaut-permalink-content") do
      link_to(current_permalink_url, current_permalink_url) if current_permalink_url
    end
  end
end


74
75
76
77
78
79
80
81
# File 'app/helpers/umlaut/helper.rb', line 74

def render_umlaut_permalink_toggle    

  link_to({:action => "get_permalink", :"umlaut.request_id" => @user_request.id}, 
           :class => "umlaut-load-permalink btn btn-mini", 
           :data => {"umlaut-toggle-permalink"=>"true"}) do
      ("i") + " Short link"
  end
end

pass in an OpenURL::ContextObject, outputs a link.



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/helpers/umlaut/helper.rb', line 13

def resolver_link(context_object, params={})
  
  # Content of the link. 
  if ( umlaut_config.link_img_url && params[:text].blank? )
    link_content = image_tag(umlaut_config.link_img_url, :border=>0, :alt=>umlaut_config.app_name)
  elsif ! params[:text].blank?
    link_content = params[:text]
  else
    link_content = umlaut_config.app_name
  end

  # url of the link. 
  if ( params[:params])
    link_to_arg = params[:params]
  else
    link_params = {:controller=>'/resolve', :action => "index"}
    link_params.merge!( params[:extra_params] ) if params[:extra_params]
    link_to_arg = url_for_with_co( link_params, context_object )      
  end
  
  link_to(link_content, link_to_arg , :target=>params[:target])
end