<%= turbo_frame_tag dom_id(element, "new_success_criterion_frame") do %>
<%= render partial: "elements/new_success_criterion_button", locals: { element: element } %>
<% end %>
diff --git a/app/views/reports/_page_nav.html.slim b/app/views/reports/_page_nav.html.slim
index a2c946d..49d3399 100644
--- a/app/views/reports/_page_nav.html.slim
+++ b/app/views/reports/_page_nav.html.slim
@@ -10,11 +10,12 @@ div id=dom_id(report, :page_nav)
li
details.tree open=current_page_displayed(page) class=""
summary class=(is_current ? "active" : nil)
- i.bi.me-1 class="bi-file-earmark-check#{is_current ? "" : "" }"
- - if is_current
- =< "#{page.position} #{page.path}"
- - else
- =< link_to("#{page.position} #{page.path}", report_path(report, page_id: page.id), data: { "turbo-frame": :_top })
+ .content
+ i.bi.me-1 class="bi-file-earmark-check#{is_current ? "" : "" }"
+ - if is_current
+ =< "#{page.position} #{page.path}"
+ - else
+ =< link_to("#{page.position} #{page.path}", report_path(report, page_id: page.id), data: { "turbo-frame": :_top })
ul id=dom_id(page, :page_nav_elements)
- page.elements.each do |element|
li
diff --git a/app/views/success_criteria/_body.html.slim b/app/views/success_criteria/_body.html.slim
new file mode 100644
index 0000000..26d7281
--- /dev/null
+++ b/app/views/success_criteria/_body.html.slim
@@ -0,0 +1,47 @@
+.content id="#{dom_id(success_criterion, :body)}"
+ = turbo_frame_tag(dom_id(success_criterion, :frame)) do
+ .row
+ .col
+ = bootstrap_form_with(model: success_criterion, data: { controller: "autosubmit" }) do |form|
+ span.float-end
+ = success_criterion_edit_button(success_criterion, false)
+ .my-3.btn-group[role="group" aria-label="Resultat"]
+ = form.radio_button_without_bootstrap :result, :passed, class: "btn-check", autocomplete: "off", id: dom_id(success_criterion, :result_passed)
+ label.btn.btn-outline-success for=dom_id(success_criterion, :result_passed) Bestanden
+ = form.radio_button_without_bootstrap :result, :failed, class: "btn-check", autocomplete: "off", id: dom_id(success_criterion, :result_failed)
+ label.btn.btn-outline-danger for=dom_id(success_criterion, :result_failed) Durchgefallen
+ = form.radio_button_without_bootstrap :result, :not_applicable, class: "btn-check", autocomplete: "off", id: dom_id(success_criterion, :result_not_applicable)
+ label.btn.btn-outline-secondary for=dom_id(success_criterion, :result_not_applicable) Nicht anwendbar
+ /= form.radio_button_without_bootstrap :result, nil, class: "btn-check", autocomplete: "off", id: dom_id(success_criterion, :result_not_applicable)
+ /label.btn.btn-outline-secondary for=dom_id(success_criterion, :nil) Reset
+ .row
+ .col-md-4.col-lg-3
+ 'WCAG/ID
+ .col-md-8.col-lg-9
+ = link_to("#{success_criterion.check.external_number}/#{success_criterion.check.id}", success_criterion.check, data: { turbo_frame: "_top"}, target: :_blank)
+ .row
+ .col-md-4.col-lg-3
+ = SuccessCriterion.human_attribute_name(:quick_criterion)
+ .col-md-8.col-lg-9
+ = success_criterion.quick_criterion
+ .row
+ .col-md-4.col-lg-3
+ = SuccessCriterion.human_attribute_name(:quick_fail)
+ .col-md-8.col-lg-9
+ = success_criterion.quick_fail
+ .row
+ .col-md-4.col-lg-3
+ = SuccessCriterion.human_attribute_name(:quick_fix)
+ .col-md-8.col-lg-9
+ = success_criterion.quick_fix
+ - safe_display(success_criterion.check.test_instructions) do |i|
+ .row
+ .col-md-4.col-lg-3
+ = SuccessCriterion.human_attribute_name(:test_instructions)
+ .col-md-8.col-lg-9
+ = i
+ .row
+ .col
+ = bootstrap_form_with(model: success_criterion) do |form|
+ = form.rich_text_area :test_comment
+ = form.submit :speichern
diff --git a/app/views/success_criteria/_form.html.erb b/app/views/success_criteria/_form.html.erb
index 6e871ed..daad523 100644
--- a/app/views/success_criteria/_form.html.erb
+++ b/app/views/success_criteria/_form.html.erb
@@ -1,42 +1,11 @@
-
- <%== render partial: "success_criteria/header", locals: { success_criterion: success_criterion } %>
-
-
-
- <%= bootstrap_form_with(model: success_criterion.persisted? ? success_criterion : [:element, success_criterion], data: { controller: "unsaved-changes" }) do |form| %>
-
-
-
- <%= form.radio_button_without_bootstrap :result, :passed, class: "btn-check", autocomplete: "off" %>
-
- <%= form.radio_button_without_bootstrap :result, :failed, class: "btn-check", autocomplete: "off" %>
-
- <%= form.radio_button_without_bootstrap :result, :not_applicable, class: "btn-check", autocomplete: "off" %>
-
-
- <%# form.collection_select :result, SuccessCriterion.results.map{ |k, v| [k, t("activerecord.attributes.success_criterion.results/#{k}")] }, :first, :second, include_blank: true, hide_label: true %>
- <%# form.select :category, SuccessCriterion.categories.keys %>
-
-
- <%= form.select :level, SuccessCriterion.levels.keys, hide_label: true %>
-
-
- <%= form.text_field :title %>
- <%= form.rich_text_area :quick_criterion %>
- <%= form.rich_text_area :quick_fail %>
- <%= form.rich_text_area :quick_fix %>
- <%= form.rich_text_area :test_comment %>
- <%= form.submit class: "btn btn-warning" %>
- <%= link_to "Abbrechen", success_criterion.persisted? ? success_criterion : success_criterion.element, class: "btn btn-outline-secondary" %>
- <% end %>
-
-
- <%# <%= link_to "edit", url_for([:edit, success_criterion]) %>
-
+ <%= bootstrap_form_with(model: success_criterion.persisted? ? success_criterion : [:element, success_criterion], data: { controller: "unsaved-changes" }) do |form| %>
+ <%= form.text_field :title %>
+ <%= form.collection_select :result, SuccessCriterion.results.keys.map { [_1, t("activerecord.attributes.success_criterion.results/#{_1}")] }, :first, :second, include_blank: success_criterion.result ? "(Resultat zurücksetzen)" : "(unbeantwortet)" %>
+ <%= form.rich_text_area :quick_criterion %>
+ <%= form.rich_text_area :quick_fail %>
+ <%= form.rich_text_area :quick_fix %>
+ <%= form.rich_text_area :test_comment %>
+ <%= form.submit class: "btn btn-warning" %>
+ <%= link_to "Abbrechen", success_criterion.persisted? ? success_criterion : success_criterion.element, class: "btn btn-outline-secondary" %>
+ <% end %>
diff --git a/app/views/success_criteria/_header.html.erb b/app/views/success_criteria/_header.html.erb.dis
similarity index 100%
rename from app/views/success_criteria/_header.html.erb
rename to app/views/success_criteria/_header.html.erb.dis
diff --git a/app/views/success_criteria/_header.html.slim b/app/views/success_criteria/_header.html.slim
new file mode 100644
index 0000000..3b64289
--- /dev/null
+++ b/app/views/success_criteria/_header.html.slim
@@ -0,0 +1,16 @@
+- edit_mode = action_name == "edit"
+summary.d-flex.align-items-start id=dom_id(success_criterion, :header)
+ .content.d-flex.align-items-center
+ .result-icon.d-flex.justify-content-center class=[success_criterion_result_color_classes(success_criterion)]
+ span.h1.bi class=[success_criterion_result_icon_classes(success_criterion)]
+ h4
+ = success_criterion.page.position
+ | .
+ = success_criterion.element.position
+ | .
+ = success_criterion.position
+ =< success_criterion.title
+ .small.badge.rounded-pill.ms-2.mt-2.sc-level class="sc-level-#{success_criterion.level.to_s.downcase}"
+ = success_criterion.level
+ - if success_criterion.test_comment.present?
+ i.bi.bi-chat.ms-2
\ No newline at end of file
diff --git a/app/views/success_criteria/_success_criterion.html.erb b/app/views/success_criteria/_success_criterion.html.erb.dis
similarity index 100%
rename from app/views/success_criteria/_success_criterion.html.erb
rename to app/views/success_criteria/_success_criterion.html.erb.dis
diff --git a/app/views/success_criteria/_success_criterion.html.slim b/app/views/success_criteria/_success_criterion.html.slim
new file mode 100644
index 0000000..8fd047d
--- /dev/null
+++ b/app/views/success_criteria/_success_criterion.html.slim
@@ -0,0 +1,5 @@
+/ = turbo_frame_tag(dom_id(success_criterion, :frame)) do
+- expanded = false unless defined?(expanded)
+details.success_criterion id="#{dom_id(success_criterion)}" class="#{success_criterion.result}"
+ == render partial: "success_criteria/header", locals: {success_criterion: success_criterion }
+ == render partial: "success_criteria/body", locals: {success_criterion: success_criterion }
\ No newline at end of file
diff --git a/app/views/success_criteria/update.turbo_stream.slim b/app/views/success_criteria/update.turbo_stream.slim
new file mode 100644
index 0000000..32d74ff
--- /dev/null
+++ b/app/views/success_criteria/update.turbo_stream.slim
@@ -0,0 +1,2 @@
+= turbo_stream.replace dom_id(@success_criterion, :header), partial: "success_criteria/header", locals: {success_criterion: @success_criterion }
+= turbo_stream.replace dom_id(@success_criterion, :body), partial: "success_criteria/body", locals: {success_criterion: @success_criterion }
\ No newline at end of file
diff --git a/config/locales/activerecord.yml b/config/locales/activerecord.yml
index 01ca2e4..d2e6dae 100644
--- a/config/locales/activerecord.yml
+++ b/config/locales/activerecord.yml
@@ -10,6 +10,11 @@ de-CH:
results/passed: Bestanden
results/failed: Nicht bestanden
results/not_applicable: Nicht anwendbar
+ test_comment: Testkommentar
+ quick_criterion: Quick Kriterium
+ quick_fail: Quick Fail
+ quick_fix: Quick Fix
+ title: Titel
check:
id: ID
number: Nummer
@@ -76,12 +81,6 @@ de-CH:
path: Name
url: Url
notes: Notizen
- success_criterion:
- test_comment: Testkommentar
- quick_criterion: Quick Kriterium
- quick_fail: Quick Fail
- quick_fix: Quick Fix
- title: Titel
models:
account:
one: Konto
diff --git a/test/system/success_criteria_test.rb b/test/system/success_criteria_test.rb
index 1ca8ed0..9ca298e 100644
--- a/test/system/success_criteria_test.rb
+++ b/test/system/success_criteria_test.rb
@@ -42,7 +42,7 @@ class SuccessCriteriaTest < ApplicationSystemTestCase
fill_in_rich_text_area "Testkommentar", with: @success_criterion.test_comment
fill_in_rich_text_area "Quick Kriterium", with: @success_criterion.quick_criterion
- find("label", text: "Bestanden", visible: true).click
+ select("Bestanden", from: "Testergebnis")
fill_in "Titel", with: "new"
click_on "Erfolgskriterium aktualisieren"