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
- #image(name, options = {}) ⇒ Object
- #javascript_overrides ⇒ Object
- #logged_in? ⇒ Boolean
- #meta_errors? ⇒ Boolean
- #meta_label ⇒ 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
112 113 114 |
# File 'app/helpers/application_helper.rb', line 112 def admin TrustyCms::AdminUI.instance end |
#admin? ⇒ Boolean
72 73 74 |
# File 'app/helpers/application_helper.rb', line 72 def admin? current_user&.admin? end |
#available_locales_select ⇒ Object
128 129 130 |
# File 'app/helpers/application_helper.rb', line 128 def available_locales_select [[t('select.default'), '']] + TrustyCms::AvailableLocales.locales end |
#body_classes ⇒ Object
116 117 118 |
# File 'app/helpers/application_helper.rb', line 116 def body_classes @body_classes ||= [] end |
#clean(url) ⇒ Object
67 68 69 70 |
# File 'app/helpers/application_helper.rb', line 67 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&.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 |
# File 'app/helpers/application_helper.rb', line 57 def current_url?() url = case when Hash url_for else .to_s end 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
76 77 78 |
# File 'app/helpers/application_helper.rb', line 76 def designer? current_user and (current_user.designer? or current_user.admin?) end |
#image(name, options = {}) ⇒ Object
108 109 110 |
# File 'app/helpers/application_helper.rb', line 108 def image(name, = {}) image_tag(append_image_extension("admin/#{name}"), ) end |
#javascript_overrides ⇒ Object
140 141 142 143 144 145 146 |
# File 'app/helpers/application_helper.rb', line 140 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
100 101 102 |
# File 'app/helpers/application_helper.rb', line 100 def false end |
#meta_label ⇒ Object
104 105 106 |
# File 'app/helpers/application_helper.rb', line 104 def ? 'Less' : 'More' end |
#nav_tabs ⇒ Object
120 121 122 |
# File 'app/helpers/application_helper.rb', line 120 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.
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'app/helpers/application_helper.rb', line 151 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
132 133 134 135 136 137 138 |
# File 'app/helpers/application_helper.rb', line 132 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
95 96 97 98 |
# File 'app/helpers/application_helper.rb', line 95 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
124 125 126 |
# File 'app/helpers/application_helper.rb', line 124 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
80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'app/helpers/application_helper.rb', line 80 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 || time html = %{<div class="updated_line">#{t('timestamp.last_updated')} } html << %{#{t('timestamp.by')} <strong>#{name}</strong> } if name html << %{#{t('timestamp.at')} #{(time)}} if time html << %{</div>} html.html_safe end end end |