Module: AdminSuite::PanelsHelper
- Included in:
- BaseHelper
- Defined in:
- app/helpers/admin_suite/panels_helper.rb
Instance Method Summary collapse
-
#panel_eval(value) ⇒ Object
Evaluates a panel option, calling Procs if needed.
-
#render_dashboard_rows(rows) ⇒ Object
Renders a portal dashboard rows grid.
-
#render_panel(panel) ⇒ Object
Renders a single panel by selecting a partial.
Instance Method Details
#panel_eval(value) ⇒ Object
Evaluates a panel option, calling Procs if needed.
46 47 48 49 50 |
# File 'app/helpers/admin_suite/panels_helper.rb', line 46 def panel_eval(value) return value.call if value.is_a?(Proc) && value.arity == 0 return value.call(self) if value.is_a?(Proc) && value.arity == 1 value end |
#render_dashboard_rows(rows) ⇒ Object
Renders a portal dashboard rows grid.
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/helpers/admin_suite/panels_helper.rb', line 8 def render_dashboard_rows(rows) return "" if rows.blank? content_tag(:div, class: "space-y-6") do rows.each do |row| concat(content_tag(:div, class: "grid grid-cols-1 lg:grid-cols-12 gap-6") do Array(row.panels).each do |panel| concat(render_panel(panel)) end end) end end end |
#render_panel(panel) ⇒ Object
Renders a single panel by selecting a partial.
Host apps can override by setting ‘AdminSuite.config.partials`.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/helpers/admin_suite/panels_helper.rb', line 27 def render_panel(panel) type = panel.type.to_sym override = AdminSuite.config.partials[:"panel_#{type}"] rescue nil partial = override.presence || "admin_suite/panels/#{type}" span = (panel.[:span] || 12).to_i span = 12 if span < 1 span = 12 if span > 12 # Avoid dynamic Tailwind class generation (e.g. `lg:col-span-#{span}`), # which would otherwise require a safelist. content_tag(:div, style: "grid-column: span #{span} / span #{span};") do render partial:, locals: { panel: panel } end end |