Module: AdminTurboTable
- Extended by:
- ActiveSupport::Concern
- Included in:
- Admin::AuditLogEntriesController, Admin::ContentBlocksController, Admin::MediaAssetsController, Admin::PermissionsController, Admin::RedirectsController, Admin::UsersController, Admin::VisitorErrorsController
- Defined in:
- lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb
Instance Method Summary collapse
- #turbo_frame_id ⇒ Object
- #turbo_frame_request? ⇒ Boolean
- #turbo_redirect_to(url) ⇒ Object
-
#turbo_render_form(template, status: :unprocessable_entity) ⇒ Object
Re-render a form template after a validation failure.
- #turbo_render_index(turbo_frame_id: "admin_table_content") ⇒ Object
- #turbo_stream_replace_table(turbo_frame_id: "admin_table_content", partial: nil) ⇒ Object
- #turbo_stream_request? ⇒ Boolean
- #turbo_stream_update_table(turbo_frame_id: "admin_table_content", partial: nil) ⇒ Object
Instance Method Details
#turbo_frame_id ⇒ Object
29 30 31 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 29 def turbo_frame_id request.headers["Turbo-Frame"] end |
#turbo_frame_request? ⇒ Boolean
6 7 8 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 6 def turbo_frame_request? request.headers["Turbo-Frame"].present? end |
#turbo_redirect_to(url) ⇒ Object
25 26 27 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 25 def turbo_redirect_to(url, **) redirect_to(url, **) unless turbo_frame_request? end |
#turbo_render_form(template, status: :unprocessable_entity) ⇒ Object
Re-render a form template after a validation failure. Returns 422 so Turbo replaces the frame/page with the re-rendered form (and its error messages) instead of treating the response as a successful navigation.
21 22 23 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 21 def turbo_render_form(template, status: :unprocessable_entity) render template, status: status end |
#turbo_render_index(turbo_frame_id: "admin_table_content") ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 10 def turbo_render_index(turbo_frame_id: "admin_table_content") if turbo_frame_request? render partial: turbo_frame_id, layout: false else render :index end end |
#turbo_stream_replace_table(turbo_frame_id: "admin_table_content", partial: nil) ⇒ Object
42 43 44 45 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 42 def turbo_stream_replace_table(turbo_frame_id: "admin_table_content", partial: nil) partial ||= turbo_frame_id render turbo_stream: turbo_stream.replace(turbo_frame_id, partial:) end |
#turbo_stream_request? ⇒ Boolean
33 34 35 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 33 def turbo_stream_request? request.headers["Accept"]&.include?("text/vnd.turbo-stream.html") end |
#turbo_stream_update_table(turbo_frame_id: "admin_table_content", partial: nil) ⇒ Object
37 38 39 40 |
# File 'lib/generators/ruby_cms/templates/controllers/concerns/admin_turbo_table.rb', line 37 def turbo_stream_update_table(turbo_frame_id: "admin_table_content", partial: nil) partial ||= turbo_frame_id render turbo_stream: turbo_stream.update(turbo_frame_id, partial:) end |