Avoid full page reloads on report#show

This commit is contained in:
david 2024-07-20 22:32:35 +02:00
parent 916b370905
commit c44c9ccaba
7 changed files with 19 additions and 8 deletions

View file

@ -31,7 +31,10 @@ class ElementsController < ApplicationController
@element.success_criteria.create!(title: check.name, description_html: check.success_criterion_html, @element.success_criteria.create!(title: check.name, description_html: check.success_criterion_html,
level: check.level) level: check.level)
end end
redirect_to @element.report, notice: 'Element was successfully created.' respond_to do |format|
format.html { redirect_to @element.report, notice: 'Element was successfully created.' }
format.turbo_stream
end
else else
render :new, status: :unprocessable_entity render :new, status: :unprocessable_entity
end end

View file

@ -1,4 +1,4 @@
<%= bootstrap_form_with(model: element, data: { turbo_frame: "_top" }) do |form| %> <%= bootstrap_form_with(model: element, data: element.persisted? || { turbo_frame: "_top" }) do |form| %>
<%= form.hidden_field :report_id %> <%= form.hidden_field :report_id %>
<div class="row"> <div class="row">
<div class="col"> <div class="col">

View file

@ -0,0 +1,2 @@
<%= turbo_stream.update "new_element_frame", partial: "reports/new_element_button", locals: { report: @element.report } %>
<%= turbo_stream.append "element_list", @element %>

View file

@ -7,6 +7,9 @@
<i class="bi bi-card-checklist"> <i class="bi bi-card-checklist">
</i> </i>
<%= @element.title %> <%= @element.title %>
<div class="badge text-bg-secondary">
<%= @element.path %>
</div>
</h2> </h2>
<%= link_to(tag.i(class: "bi bi-pencil"), @element, class: "btn btn-link text-warning") %> <%= link_to(tag.i(class: "bi bi-pencil"), @element, class: "btn btn-link text-warning") %>
</div> </div>

View file

@ -0,0 +1 @@
<%= link_to "#{tag.i(class: "bi bi-plus-lg")} Neues Element".html_safe, new_element_path(report_id: report.id), class: "btn btn-primary" %>

View file

@ -12,15 +12,17 @@
<div class="border-top pt-3"> <div class="border-top pt-3">
<%= turbo_frame_tag "new_element_frame" do %> <%= turbo_frame_tag "new_element_frame" do %>
<%= link_to "#{tag.i(class: "bi bi-plus-lg")} Neues Element".html_safe, new_element_path(report_id: @report.id), class: "btn btn-primary" %> <%= render partial: "reports/new_element_button", locals: { report: @report } %>
<% end %> <% end %>
</div> </div>
<% @report.elements.each do |element| %> <div id="element_list">
<%= turbo_frame_tag dom_id(element, :frame) do %> <% @report.elements.each do |element| %>
<%= render element %> <%= turbo_frame_tag dom_id(element, :frame) do %>
<%= render element %>
<% end %>
<% end %> <% end %>
<% end %> </div>
<div class="action-row"> <div class="action-row">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 0 B

After

Width:  |  Height:  |  Size: 4.2 KiB

Before After
Before After