diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 33bdf3f..a8c4146 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -1,7 +1,7 @@ .action-row { @extend .d-flex; @extend .p-2; - @extend .mt-3; + @extend .mt-5; // background-color: map-get($theme-colors, "primary"); background-color: var(--bs-tertiary-bg); diff --git a/app/controllers/pages_controller.rb b/app/controllers/pages_controller.rb index dbd4a59..4bbee18 100644 --- a/app/controllers/pages_controller.rb +++ b/app/controllers/pages_controller.rb @@ -59,6 +59,6 @@ class PagesController < ApplicationController # Only allow a list of trusted parameters through. def page_params - params.require(:page).permit(:position, :path, :url, :report_id) + params.require(:page).permit(:position, :path, :url, :notes, :position) end end diff --git a/app/javascript/controllers/unsaved_changes_controller.js b/app/javascript/controllers/unsaved_changes_controller.js index e3ae242..29b198d 100644 --- a/app/javascript/controllers/unsaved_changes_controller.js +++ b/app/javascript/controllers/unsaved_changes_controller.js @@ -4,14 +4,21 @@ const LEAVE_ALERT = "Es gibt ungespeicherte Änderungen! Wirklich verlassen?" // Connects to data-controller="unsaved-changes" export default class extends Controller { + static targets = ["cancel"] + initialState = null connect() { this.initialState = this.formState() + console.log(this.cancelTargets) window.addEventListener("beforeunload", (event) => this.leavingPage(event)) document.addEventListener('turbo:before-visit', (e) => this.leavingPage(e)) this.element.addEventListener("submit", (_) => this.initialState = null) + this.cancelTargets.forEach(element => { + console.log(element) + element.addEventListener("onclick", (_) => this.initialState = null) + }); } formState() { diff --git a/app/models/element.rb b/app/models/element.rb index f9f3dd3..807c4b6 100644 --- a/app/models/element.rb +++ b/app/models/element.rb @@ -8,6 +8,8 @@ class Element < ApplicationRecord delegate :report, to: :page + after_validation :set_position + # Calculate actual conformity level: # - if a success_criterion has result :failed -> the confirmity_level # of that success_criterion is not reached. @@ -30,4 +32,9 @@ class Element < ApplicationRecord def max_level @max_level ||= success_criteria.reject(&:not_applicable?).max(&:level) end + + def set_position + Rails.logger.debug("element: position #{position}") + self.position ||= (page.elements.pluck(:position).max || 0) + 1 + end end diff --git a/app/models/page.rb b/app/models/page.rb index aed1df3..c572735 100644 --- a/app/models/page.rb +++ b/app/models/page.rb @@ -3,4 +3,11 @@ class Page < ApplicationRecord has_many :elements, dependent: :destroy has_rich_text :comment + + before_validation :set_position + + private + def set_position + self.position ||= (report.pages.pluck(:position).max || 0) + 1 + end end diff --git a/app/models/success_criterion.rb b/app/models/success_criterion.rb index 0165c4d..218bb49 100644 --- a/app/models/success_criterion.rb +++ b/app/models/success_criterion.rb @@ -14,6 +14,8 @@ class SuccessCriterion < ApplicationRecord enum :result, %i[passed failed not_applicable] enum :level, %i[A AA AAA] + before_save :set_position + def level_value return nil unless level @@ -23,4 +25,10 @@ class SuccessCriterion < ApplicationRecord def header "HEADER" end + + private + def set_position + self.position ||= (element.success_criteria.pluck(:position).max || 0) + 1 + Rails.logger.debug("set position: "+position.to_s) + end end diff --git a/app/views/backoffice/show.html.erb b/app/views/backoffice/show.html.erb index a2e52d1..c16d394 100644 --- a/app/views/backoffice/show.html.erb +++ b/app/views/backoffice/show.html.erb @@ -13,13 +13,13 @@ <%= link_to Check.model_name.human(count: Check.count), :checks %>
-+
<%= Link.count %> <%= link_to Link.model_name.human(count: Link.count), :links %>
-+
Erstellt am <%= l(@report.created_at, format: :short) %>, zuletzt bearbeitet am <%= l(@report.updated_at, format: :short) %>
<% if @report.comment %> -