Module: RegionsHelper
- Defined in:
- app/helpers/regions_helper.rb
Overview
Helper methods for handling regions
Instance Method Summary collapse
- #admin_region_link(entity, text = entity.name, options = {}) ⇒ Object
- #child_regions_for_select(region_id, selected_id = 0, slug = '') ⇒ Object
- #current_region_for_select(selected_id = 0) ⇒ Object
- #region_image_medium(entity) ⇒ Object
- #region_image_preview(entity, options = {}) ⇒ Object
- #regions_for_select(user = nil) ⇒ Object
Instance Method Details
#admin_region_link(entity, text = entity.name, options = {}) ⇒ Object
8 9 10 |
# File 'app/helpers/regions_helper.rb', line 8 def admin_region_link(entity, text = entity.name, = {}) link_to(text, admin_region_path(id: entity.id), ) end |
#child_regions_for_select(region_id, selected_id = 0, slug = '') ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'app/helpers/regions_helper.rb', line 55 def child_regions_for_select(region_id, selected_id = 0, slug = '') = [] if region_id.to_i < 1 << ['Центр', '', { data: { url: root_path } }] else << ['Все', '', { data: { url: regional_index_path(region_slug: slug) } }] end Region.visible.with_posts.for_tree(nil, region_id).each do |region| url = regional_index_path(region_slug: region.long_slug) << [region.short_name, region.id, { data: { url: url } }] end (, selected_id) end |
#current_region_for_select(selected_id = 0) ⇒ Object
43 44 45 46 47 48 49 50 51 |
# File 'app/helpers/regions_helper.rb', line 43 def current_region_for_select(selected_id = 0) = [['Центр', '', { data: { url: root_path } }]] Region.visible.with_posts.for_tree.each do |region| url = regional_index_path(region_slug: region.long_slug) << [region.short_name, region.id, { data: { url: url } }] end (, selected_id) end |
#region_image_medium(entity) ⇒ Object
71 72 73 74 75 76 |
# File 'app/helpers/regions_helper.rb', line 71 def region_image_medium(entity) unless entity.image.blank? versions = "#{entity.image.medium_2x.url} 2x" image_tag(entity.image.medium.url, alt: entity.name, srcset: versions) end end |
#region_image_preview(entity, options = {}) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/helpers/regions_helper.rb', line 14 def region_image_preview(entity, = {}) return '' if entity&.id.nil? image_url = entity.data.dig('image', 'preview') return '' if image_url.nil? = { alt: entity.name } image_tag(image_url, .merge()) end |
#regions_for_select(user = nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/helpers/regions_helper.rb', line 26 def regions_for_select(user = nil) = [[t(:not_set), '']] if user.is_a?(User) allowed_ids = UserPrivilege.where(user: user).pluck(:region_id).uniq if allowed_ids.any? selection = Region.where(id: allowed_ids).for_tree else selection = Region.for_tree end else selection = Region.for_tree end selection.each { |r| << [r.name, r.id] } end |