Module: PandaCms::ApplicationHelper
- Included in:
- ApplicationController
- Defined in:
- app/helpers/panda_cms/application_helper.rb
Instance Method Summary collapse
- #active_link?(path, match: :starts_with) ⇒ Boolean
- #block_link_to(name = nil, options = nil, html_options = {}) ⇒ Object
-
#component(name) ⇒ Object
Helper method to render a ViewComponent.
- #level_indent(level) ⇒ Object
- #menu_indent(item_with_level_attribute, indent_with: "pl-") ⇒ Object
- #nav_class(mode) ⇒ Object
- #nav_highlight_colour_classes(request) ⇒ Object
- #panda_cms_editor ⇒ Object
- #panda_cms_form_with(**options) ⇒ Object
- #selected_nav_highlight_colour_classes(request) ⇒ Object
- #table_indent(item_with_level_attribute) ⇒ Object
- #title_tag ⇒ Object
Instance Method Details
#active_link?(path, match: :starts_with) ⇒ Boolean
27 28 29 30 31 32 33 34 35 |
# File 'app/helpers/panda_cms/application_helper.rb', line 27 def active_link?(path, match: :starts_with) if match == :starts_with return request.path.starts_with?(path) elsif match == :exact return (request.path == path) end false end |
#block_link_to(name = nil, options = nil, html_options = {}) ⇒ Object
37 38 39 40 |
# File 'app/helpers/panda_cms/application_helper.rb', line 37 def block_link_to(name = nil, = nil, = {}, &) [:class] = "block-link" link_to(name, , , &) end |
#component(name) ⇒ Object
Helper method to render a ViewComponent
8 9 10 11 |
# File 'app/helpers/panda_cms/application_helper.rb', line 8 def component(name, *, **, &) component = name.to_s.camelize.constantize::Component render(component.new(*, **), &) end |
#level_indent(level) ⇒ Object
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'app/helpers/panda_cms/application_helper.rb', line 64 def level_indent(level) case level when 0 "ml-0" when 1 "ml-4" when 2 "ml-8" when 3 "ml-12" when 4 "ml-16" when 5 "ml-20" when 6 "ml-24" when 7 "ml-28" when 8 "ml-32" when 9 "ml-36" when 10 "ml-40" # We can go to 72... else "ml-48" end end |
#menu_indent(item_with_level_attribute, indent_with: "pl-") ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'app/helpers/panda_cms/application_helper.rb', line 97 def (item_with_level_attribute, indent_with: "pl-") case item_with_level_attribute.level when 0 "#{indent_with}0" when 1 "#{indent_with}4" when 2 "#{indent_with}8" when 3 "#{indent_with}12" when 4 "#{indent_with}16" else "#{indent_with}20" end end |
#nav_class(mode) ⇒ Object
48 49 50 51 52 53 54 |
# File 'app/helpers/panda_cms/application_helper.rb', line 48 def nav_class(mode) if mode == "mobile" "-mx-3 block rounded-lg px-3 py-2 font-semibold leading-6 text-white hover:text-white hover:underline focus:underline" else "font-semibold leading-6 text-white hover:text-white hover:underline focus:underline" end end |
#nav_highlight_colour_classes(request) ⇒ Object
60 61 62 |
# File 'app/helpers/panda_cms/application_helper.rb', line 60 def nav_highlight_colour_classes(request) "text-white hover:bg-mid/60 transition-all group flex gap-x-3 py-3 px-2 mb-2 rounded-md text-base leading-6 font-normal " end |
#panda_cms_editor ⇒ Object
21 22 23 24 25 |
# File 'app/helpers/panda_cms/application_helper.rb', line 21 def panda_cms_editor if Current.user&.admin content_tag(:a, "🐼", href: edit_admin_page_url(Current.page), class: "text-3xl inline absolute right-2 top-2") end end |
#panda_cms_form_with(**options) ⇒ Object
42 43 44 45 46 |
# File 'app/helpers/panda_cms/application_helper.rb', line 42 def panda_cms_form_with(**, &) [:builder] = PandaCms::FormBuilder [:class] = "p-6 bg-mid/5 rounded-lg border-mid border" form_with(**, &) end |
#selected_nav_highlight_colour_classes(request) ⇒ Object
56 57 58 |
# File 'app/helpers/panda_cms/application_helper.rb', line 56 def selected_nav_highlight_colour_classes(request) "bg-mid text-white relative flex transition-all py-3 px-2 mb-2 rounded-md group flex gap-x-3 rounded-md text-base leading-6 font-normal " end |
#table_indent(item_with_level_attribute) ⇒ Object
93 94 95 |
# File 'app/helpers/panda_cms/application_helper.rb', line 93 def table_indent(item_with_level_attribute) level_indent(item_with_level_attribute.level) end |