Module: ApplicationHelper
- Includes:
- Admin::RegionsHelper
- Defined in:
- app/helpers/application_helper.rb
Instance Method Summary collapse
- #admin ⇒ Object
- #admin? ⇒ Boolean
- #available_locales_select ⇒ Object
- #body_classes ⇒ Object
- #clean(url) ⇒ Object
- #current_item?(item) ⇒ Boolean
- #current_tab?(tab) ⇒ Boolean
- #current_url?(options) ⇒ Boolean
- #default_page_title ⇒ Object
- #designer? ⇒ Boolean
- #filter_options_for_select(selected = nil) ⇒ Object
-
#gravatar_url(email, options = {}) ⇒ Object
Returns a Gravatar URL associated with the email parameter.
- #image(name, options = {}) ⇒ Object
- #image_submit(name, options = {}) ⇒ Object
- #javascript_overrides ⇒ Object
- #logged_in? ⇒ Boolean
- #meta_errors? ⇒ Boolean
- #meta_label ⇒ Object
- #meta_visible(symbol) ⇒ Object
- #nav_link_to(name, options) ⇒ Object
- #nav_tabs ⇒ Object
- #onsubmit_status(model) ⇒ Object
-
#pagination_for(list, options = {}) ⇒ Object
returns the usual set of pagination links.
- #save_model_and_continue_editing_button(model) ⇒ Object
- #save_model_button(model, options = {}) ⇒ Object
- #stylesheet_overrides ⇒ Object
- #subtitle ⇒ Object
- #timestamp(time) ⇒ Object
- #title ⇒ Object
- #translate_with_default(name) ⇒ Object
- #trusty_config ⇒ Object
- #updated_stamp(model) ⇒ Object
Instance Method Details
#admin ⇒ Object
135 136 137 |
# File 'app/helpers/application_helper.rb', line 135 def admin TrustyCms::AdminUI.instance end |
#admin? ⇒ Boolean
81 82 83 |
# File 'app/helpers/application_helper.rb', line 81 def admin? current_user and current_user.admin? end |
#available_locales_select ⇒ Object
155 156 157 |
# File 'app/helpers/application_helper.rb', line 155 def available_locales_select [[t('select.default'),'']] + TrustyCms::AvailableLocales.locales end |
#body_classes ⇒ Object
143 144 145 |
# File 'app/helpers/application_helper.rb', line 143 def body_classes @body_classes ||= [] end |
#clean(url) ⇒ Object
68 69 70 71 |
# File 'app/helpers/application_helper.rb', line 68 def clean(url) uri = URI.parse(url) uri.path.gsub(%r{/+}, '/').gsub(%r{/$}, '') end |
#current_item?(item) ⇒ Boolean
43 44 45 46 47 48 49 50 |
# File 'app/helpers/application_helper.rb', line 43 def current_item?(item) if item.tab && item.tab.many? {|i| current_url?(i.relative_url) } # Accept only stricter URL matches if more than one matches current_page?(item.url) else current_url?(item.relative_url) end end |
#current_tab?(tab) ⇒ Boolean
52 53 54 55 |
# File 'app/helpers/application_helper.rb', line 52 def current_tab?(tab) @current_tab ||= tab if tab.any? {|item| current_url?(item.relative_url) } @current_tab == tab end |
#current_url?(options) ⇒ Boolean
57 58 59 60 61 62 63 64 65 66 |
# File 'app/helpers/application_helper.rb', line 57 def current_url?() url = case when Hash url_for else .to_s end #TODO: look for other instances of request_uri request.original_fullpath =~ Regexp.new('^' + Regexp.quote(clean(url))) end |
#default_page_title ⇒ Object
8 9 10 |
# File 'app/helpers/application_helper.rb', line 8 def default_page_title title + ' - ' + subtitle end |
#designer? ⇒ Boolean
85 86 87 |
# File 'app/helpers/application_helper.rb', line 85 def designer? current_user and (current_user.designer? or current_user.admin?) end |
#filter_options_for_select(selected = nil) ⇒ Object
139 140 141 |
# File 'app/helpers/application_helper.rb', line 139 def (selected=nil) ([[t('select.none'), '']] + TextFilter.descendants_names, selected) end |
#gravatar_url(email, options = {}) ⇒ Object
Returns a Gravatar URL associated with the email parameter. See: douglasfshearer.com/blog/gravatar-for-ruby-and-ruby-on-rails
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File 'app/helpers/application_helper.rb', line 177 def gravatar_url(email, ={}) # Default to highest rating. Rating can be one of G, PG, R X. [:rating] ||= "G" # Default size of the image. [:size] ||= "32px" # Default image url to be used when no gravatar is found # or when an image exceeds the rating parameter. local_avatar_url = "/images/admin/avatar_#{([[:size].to_i] * 2).join('x')}.png" default_avatar_url = "#{request.protocol}#{request.host_with_port}#{ActionController::Base.relative_url_root}#{local_avatar_url}" [:default] ||= default_avatar_url unless email.blank? # Build the Gravatar url. url = '//gravatar.com/avatar/' url << "#{Digest::MD5.new.update(email)}?" url << "rating=#{[:rating]}" if [:rating] url << "&size=#{[:size]}" if [:size] url << "&default=#{[:default]}" if [:default] # Test the Gravatar url require 'open-uri' begin; open "http:#{url}", :proxy => true rescue; local_avatar_url else; url end else local_avatar_url end end |
#image(name, options = {}) ⇒ Object
127 128 129 |
# File 'app/helpers/application_helper.rb', line 127 def image(name, = {}) image_tag(append_image_extension("admin/#{name}"), ) end |
#image_submit(name, options = {}) ⇒ Object
131 132 133 |
# File 'app/helpers/application_helper.rb', line 131 def image_submit(name, = {}) image_submit_tag(append_image_extension("admin/#{name}"), ) end |
#javascript_overrides ⇒ Object
167 168 169 170 171 172 173 |
# File 'app/helpers/application_helper.rb', line 167 def javascript_overrides overrides = [] if File.exist?("#{Rails.root}/public/javascripts/admin/overrides.js") overrides << 'admin/overrides' end overrides end |
#logged_in? ⇒ Boolean
20 21 22 |
# File 'app/helpers/application_helper.rb', line 20 def logged_in? !current_user.nil? end |
#meta_errors? ⇒ Boolean
119 120 121 |
# File 'app/helpers/application_helper.rb', line 119 def false end |
#meta_label ⇒ Object
123 124 125 |
# File 'app/helpers/application_helper.rb', line 123 def ? 'Less' : 'More' end |
#meta_visible(symbol) ⇒ Object
109 110 111 112 113 114 115 116 117 |
# File 'app/helpers/application_helper.rb', line 109 def (symbol) v = case symbol when :meta_more not when :meta, :meta_less end v ? {} : {:style => "display: none"} end |
#nav_link_to(name, options) ⇒ Object
73 74 75 76 77 78 79 |
# File 'app/helpers/application_helper.rb', line 73 def nav_link_to(name, ) if current_url?() %{<strong>#{ link_to translate_with_default(name), }</strong>} else link_to translate_with_default(name), end end |
#nav_tabs ⇒ Object
147 148 149 |
# File 'app/helpers/application_helper.rb', line 147 def nav_tabs admin.nav end |
#onsubmit_status(model) ⇒ Object
24 25 26 |
# File 'app/helpers/application_helper.rb', line 24 def onsubmit_status(model) model.new_record? ? t('creating_status', :model => t(model.class.name.downcase)) : "#{I18n.t('saving_changes')}…" end |
#pagination_for(list, options = {}) ⇒ Object
returns the usual set of pagination links. options are passed through to will_paginate and a ‘show all’ depagination link is added if relevant.
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 |
# File 'app/helpers/application_helper.rb', line 211 def pagination_for(list, ={}) if list.respond_to? :total_pages = { :max_per_page => @trusty_config['pagination.max_per_page'] || 500, :depaginate => true }.merge(.symbolize_keys) depaginate = .delete(:depaginate) # supply :depaginate => false to omit the 'show all' link depagination_limit = .delete(:max_per_page) # supply :max_per_page => false to include the 'show all' link no matter how large the collection html = will_paginate(list, .merge()) if depaginate && list.total_pages > 1 && (!depagination_limit.blank? || list.total_entries <= depagination_limit.to_i) html << content_tag(:div, link_to(t('show_all'), :pp => 'all'), :class => 'depaginate') elsif depaginate && list.total_entries > depagination_limit.to_i html = content_tag(:div, link_to("paginate", :p => 1), :class => 'pagination') end html end end |
#save_model_and_continue_editing_button(model) ⇒ Object
39 40 41 |
# File 'app/helpers/application_helper.rb', line 39 def (model) submit_tag t('buttons.save_and_continue'), :name => 'continue', :class => 'button', :accesskey => "s" end |
#save_model_button(model, options = {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'app/helpers/application_helper.rb', line 28 def (model, = {}) model_name = model.class.name.underscore human_model_name = model_name.humanize.titlecase [:label] ||= model.new_record? ? t('buttons.create', :name => t(model_name, :default => human_model_name), :default => 'Create ' + human_model_name) : t('buttons.save_changes', :default => 'Save Changes') [:class] ||= "button" [:accesskey] ||= 'S' submit_tag .delete(:label), end |
#stylesheet_overrides ⇒ Object
159 160 161 162 163 164 165 |
# File 'app/helpers/application_helper.rb', line 159 def stylesheet_overrides overrides = [] if File.exist?("#{Rails.root}/public/stylesheets/admin/overrides.css") || File.exist?("#{Rails.root}/public/stylesheets/sass/admin/overrides.sass") overrides << 'admin/overrides' end overrides end |
#subtitle ⇒ Object
16 17 18 |
# File 'app/helpers/application_helper.rb', line 16 def subtitle trusty_config['admin.subtitle'] || 'Publishing for Small Teams' end |
#timestamp(time) ⇒ Object
104 105 106 107 |
# File 'app/helpers/application_helper.rb', line 104 def (time) # time.strftime("%I:%M %p on %B %e, %Y").sub("AM", 'am').sub("PM", 'pm') I18n.localize(time, :format => :timestamp) end |
#title ⇒ Object
12 13 14 |
# File 'app/helpers/application_helper.rb', line 12 def title trusty_config['admin.title'] || 'Trusty CMS' end |
#translate_with_default(name) ⇒ Object
151 152 153 |
# File 'app/helpers/application_helper.rb', line 151 def translate_with_default(name) t(name.underscore.downcase, :default => name) end |
#trusty_config ⇒ Object
4 5 6 |
# File 'app/helpers/application_helper.rb', line 4 def trusty_config TrustyCms::Config end |
#updated_stamp(model) ⇒ Object
89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'app/helpers/application_helper.rb', line 89 def updated_stamp(model) unless model.new_record? updated_by = (model.updated_by || model.created_by) name = updated_by ? updated_by.name : nil time = (model.updated_at || model.created_at) if name or time html = %{<p class="updated_line">#{t('timestamp.last_updated')} } html << %{#{t('timestamp.by')} <strong>#{name}</strong> } if name html << %{#{t('timestamp.at')} #{(time)}} if time html << %{</p>} html.html_safe end end end |