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
113 114 115 |
# File 'app/helpers/application_helper.rb', line 113 def admin TrustyCms::AdminUI.instance end |
#admin? ⇒ Boolean
73 74 75 |
# File 'app/helpers/application_helper.rb', line 73 def admin? current_user&.admin? end |
#available_locales_select ⇒ Object
129 130 131 |
# File 'app/helpers/application_helper.rb', line 129 def available_locales_select [[t('select.default'), '']] + TrustyCms::AvailableLocales.locales end |
#body_classes ⇒ Object
117 118 119 |
# File 'app/helpers/application_helper.rb', line 117 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
44 45 46 47 48 49 50 51 |
# File 'app/helpers/application_helper.rb', line 44 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
53 54 55 56 |
# File 'app/helpers/application_helper.rb', line 53 def current_tab?(tab) @current_tab ||= tab if tab.any? { |item| current_url?(item.relative_url) } @current_tab == tab end |
#current_url?(options) ⇒ Boolean
58 59 60 61 62 63 64 65 66 |
# File 'app/helpers/application_helper.rb', line 58 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
77 78 79 |
# File 'app/helpers/application_helper.rb', line 77 def designer? current_user and (current_user.designer? or current_user.admin?) end |
#image(name, options = {}) ⇒ Object
109 110 111 |
# File 'app/helpers/application_helper.rb', line 109 def image(name, = {}) image_tag(append_image_extension("admin/#{name}"), ) end |
#javascript_overrides ⇒ Object
141 142 143 144 145 146 147 |
# File 'app/helpers/application_helper.rb', line 141 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
101 102 103 |
# File 'app/helpers/application_helper.rb', line 101 def false end |
#meta_label ⇒ Object
105 106 107 |
# File 'app/helpers/application_helper.rb', line 105 def ? 'Less' : 'More' end |
#nav_tabs ⇒ Object
121 122 123 |
# File 'app/helpers/application_helper.rb', line 121 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.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# File 'app/helpers/application_helper.rb', line 152 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
40 41 42 |
# File 'app/helpers/application_helper.rb', line 40 def (_model) submit_tag t('buttons.save_and_continue'), name: 'continue', class: 'button', accesskey: 's', id: 'save-and-continue-button' end |
#save_model_button(model, options = {}) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# 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' [:id] ||= 'save-button' submit_tag .delete(:label), end |
#stylesheet_overrides ⇒ Object
133 134 135 136 137 138 139 |
# File 'app/helpers/application_helper.rb', line 133 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
96 97 98 99 |
# File 'app/helpers/application_helper.rb', line 96 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
125 126 127 |
# File 'app/helpers/application_helper.rb', line 125 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
81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'app/helpers/application_helper.rb', line 81 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 |