effective_pages 3.9.0 → 3.10.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de13a6ce9afb0cee9e8401e076c3416a159f9a64f4a5fb7cf70c890de442263f
4
- data.tar.gz: dfa2b67769948a6e25c5c20e3b1520260f494d0722165cfd5a78eeff1aeb3ce8
3
+ metadata.gz: e25596768c6b274d44a143a0c4b2733c4608ff8c058282c2d22e65e05486ec09
4
+ data.tar.gz: 03d2c179fe08a3ec54ef864d2e274350dc209df18925a1b3d2878491673d7ede
5
5
  SHA512:
6
- metadata.gz: 11295b2af4904ad5469948123e4e910302fa4e3d7c29a79b55bd4500b7456f458e31f5f389c587725a7d534a21c4e138daff27b525fae74d874c8344948cd1d7
7
- data.tar.gz: 5e2bbcef490e3b25c6ba565fd64fab7ee4a7091377fef64ca664a4be1edfa54d64b0810c2b5005a7e33e63c04e54ff65f2955c5e705f5ec9e03bb39ff513c654
6
+ metadata.gz: e3f38c4d20be9133ee318eecf8336753f8494d3fdb7ed82f6f5060e2efea267c49d6025eb3cbe385c3ec4f67b88374ff0d42fa7d721cf9dda8af1ad7701db43c
7
+ data.tar.gz: 310a83a4fd981312cfcdf48cdf7c2fcad3caeba517e82047b4d497ee610927bf7b6c61ce934fe12cdbb783271a40d856e598a673cae86fc3d3e2819431bf2965
@@ -1,23 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
  module EffectiveCarouselsHelper
3
3
 
4
- def render_carousel(name, options = {}, &block)
5
- name = name.to_s
6
- carousel = Array(EffectivePages.carousels).find { |carousel| carousel.to_s == name }
4
+ def render_carousel(name, carousel_options = {})
5
+ carousel = Array(EffectivePages.carousels).find { |carousel| carousel.to_s == name.to_s }
7
6
 
8
7
  if carousel.blank?
9
8
  raise("unable to find carousel #{name}. Please add it to config/initializers/effective_pages.rb")
10
9
  end
11
10
 
12
- carousel_items = Effective::CarouselItem.sorted.deep.where(carousel: carousel)
13
- return if carousel_items.blank?
14
-
15
- if block_given?
16
- yield(carousel_items); nil
17
- else
18
- render('effective/carousels/carousel', carousel: carousel, carousel_items: carousel_items, carousel_options: options)
19
- end
20
-
11
+ render('effective/carousels/carousel', carousel: carousel, carousel_options: carousel_options)
21
12
  end
22
13
 
23
14
  end
@@ -1,27 +1,27 @@
1
- - uid = "effective-carousel-#{carousel}-#{Time.zone.now.to_i}"
2
- - options = carousel_options
1
+ = cache([carousel, Effective::CarouselItem.maximum(:updated_at)]) do
2
+ - carousel_items = Effective::CarouselItem.sorted.deep.where(carousel: carousel).to_a
3
+ - uid = "effective-carousel-#{carousel}-#{Time.zone.now.to_i}"
3
4
 
4
- - raise('expected one or more carousel items') unless carousel_items.present?
5
+ - if carousel_items.present?
6
+ .carousel.slide{id: uid, 'data-ride': 'carousel', **carousel_options}
7
+ %ol.carousel-indicators
8
+ - carousel_items.each_with_index do |item, index|
9
+ %li{'data-target': '#' + uid, 'data-slide-to': index, class: ('active' if index == 0)}
5
10
 
6
- .carousel.slide{id: uid, 'data-ride': 'carousel', **options}
7
- %ol.carousel-indicators
8
- - carousel_items.each_with_index do |item, index|
9
- %li{'data-target': '#' + uid, 'data-slide-to': index, class: ('active' if index == 0)}
11
+ .carousel-inner
12
+ - carousel_items.each_with_index do |item, index|
13
+ .carousel-item{class: ('active' if index == 0)}
14
+ - if item.caption.blank?
15
+ = image_tag(item.file, class: 'd-block w-100', alt: "Slide #{index+1}")
16
+ - else
17
+ = image_tag(item.file, alt: item.caption)
18
+ .carousel-caption.d-none.d-md-block
19
+ %p= item.caption
10
20
 
11
- .carousel-inner
12
- - carousel_items.each_with_index do |item, index|
13
- .carousel-item{class: ('active' if index == 0)}
14
- - if item.caption.blank?
15
- = image_tag(item.file, class: 'd-block w-100', alt: "Slide #{index+1}")
16
- - else
17
- = image_tag(item.file, alt: item.caption)
18
- .carousel-caption.d-none.d-md-block
19
- %p= item.caption
21
+ %button.carousel-control-prev{'data-target': '#' + uid, type: 'button', 'data-slide': 'prev'}
22
+ %span.carousel-control-prev-icon{'aria-hidden': true}
23
+ %span.sr-only Previous
20
24
 
21
- %button.carousel-control-prev{'data-target': '#' + uid, type: 'button', 'data-slide': 'prev'}
22
- %span.carousel-control-prev-icon{'aria-hidden': true}
23
- %span.sr-only Previous
24
-
25
- %button.carousel-control-next{'data-target': '#' + uid, type: 'button', 'data-slide': 'next'}
26
- %span.carousel-control-next-icon{'aria-hidden': true}
27
- %span.sr-only Next
25
+ %button.carousel-control-next{'data-target': '#' + uid, type: 'button', 'data-slide': 'next'}
26
+ %span.carousel-control-next-icon{'aria-hidden': true}
27
+ %span.sr-only Next
@@ -1,21 +1,22 @@
1
1
  - raise('expected a menu') unless menu.present?
2
2
  - menu = menu.to_s
3
3
 
4
- - # Renders menu_root? level pages and their immediate children
5
- - Effective::Page.for_menu_root(menu).each do |page|
6
- - next unless EffectiveResources.authorized?(self, :show, page)
7
- - next if (page.authenticate_user || page.roles.present?) && current_user.blank?
8
- - next if page.roles.present? && (current_user.roles & page.roles).blank?
4
+ = cache([menu, current_user, Effective::Page.maximum(:updated_at)]) do
5
+ - # Renders menu_root? level pages and their immediate children
6
+ - Effective::Page.for_menu_root(menu).each do |page|
7
+ - next unless EffectiveResources.authorized?(self, :show, page)
8
+ - next if (page.authenticate_user || page.roles.present?) && current_user.blank?
9
+ - next if page.roles.present? && (current_user.roles & page.roles).blank?
9
10
 
10
- - if page.menu_children_blank?
11
- = nav_link_to(page.menu_to_s, (page.menu_url.presence || effective_pages.page_path(page)))
12
- - else
13
- = nav_dropdown(page.menu_to_s, groups: true) do
14
- - page.menu_children.group_by { |menu| menu.menu_group.presence }.each do |menu_group, pages|
15
- = nav_dropdown_group(menu_group || '') do
16
- - pages.each do |page|
17
- - next unless EffectiveResources.authorized?(self, :show, page)
18
- - next if (page.authenticate_user || page.roles.present?) && current_user.blank?
19
- - next if page.roles.present? && (current_user.roles & page.roles).blank?
11
+ - if page.menu_children_blank?
12
+ = nav_link_to(page.menu_to_s, (page.menu_url.presence || effective_pages.page_path(page)))
13
+ - else
14
+ = nav_dropdown(page.menu_to_s, groups: true) do
15
+ - page.menu_children.group_by { |menu| menu.menu_group.presence }.each do |menu_group, pages|
16
+ = nav_dropdown_group(menu_group || '') do
17
+ - pages.each do |page|
18
+ - next unless EffectiveResources.authorized?(self, :show, page)
19
+ - next if (page.authenticate_user || page.roles.present?) && current_user.blank?
20
+ - next if page.roles.present? && (current_user.roles & page.roles).blank?
20
21
 
21
- = nav_link_to(page.menu_to_s, (page.menu_url.presence || effective_pages.page_path(page)))
22
+ = nav_link_to(page.menu_to_s, (page.menu_url.presence || effective_pages.page_path(page)))
@@ -1,3 +1,3 @@
1
1
  module EffectivePages
2
- VERSION = '3.9.0'.freeze
2
+ VERSION = '3.10.1'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_pages
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.9.0
4
+ version: 3.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-01 00:00:00.000000000 Z
11
+ date: 2024-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails