diff --git a/app/javascript/controllers/unsaved_changes_controller.js b/app/javascript/controllers/unsaved_changes_controller.js index a8e1698..66228a4 100644 --- a/app/javascript/controllers/unsaved_changes_controller.js +++ b/app/javascript/controllers/unsaved_changes_controller.js @@ -1,36 +1,32 @@ import { Controller } from "@hotwired/stimulus" +const LEAVE_ALERT = "Es gibt ungespeicherte Änderungen! Wirklich verlassen?" + // Connects to data-controller="unsaved-changes" export default class extends Controller { - originalFormData = null + initialState = null connect() { - this.originalFormData = this.formState() + this.initialState = this.formState() window.addEventListener("beforeunload", (event) => this.leavingPage(event)) - document.addEventListener('turbo:before-visit', (e) => this.leavingPage(e)); - this.element.addEventListener("submit", _ => this.originalFormData = this.formState()) + document.addEventListener('turbo:before-visit', (e) => this.leavingPage(e)) + this.element.addEventListener("submit", (_) => this.initialState = this.formState()) } formState() { return JSON.stringify(Array.from(new FormData(this.element).entries()) - .filter(x => x[1] != "")) + .filter(x => x[1] != "") + .sort(x => x[0])) } leavingPage(event) { - if(this.originalFormData == this.formState()) { + if(this.initialState == this.formState()) { return } - if (event.type == "turbo:before-visit") { - if (!window.confirm("Es gibt ungespeicherte Änderungen! Wirklich verlassen?")) { - event.preventDefault() - } - } else { - if (!window.confirm("Es gibt ungespeicherte Änderungen! Wirklich verlassen?")) { - event.preventDefault() - } - return event.returnValue; + if (!window.confirm(LEAVE_ALERT)) { + event.preventDefault() } } } \ No newline at end of file diff --git a/config/initializers/pagy.rb b/config/initializers/pagy.rb index 8a08004..8f5fc3a 100644 --- a/config/initializers/pagy.rb +++ b/config/initializers/pagy.rb @@ -10,7 +10,7 @@ # You can set any pagy variable as a Pagy::DEFAULT. They can also be overridden per instance by just passing them to # Pagy.new|Pagy::Countless.new|Pagy::Calendar::*.new or any of the #pagy* controller methods # Here are the few that make more sense as DEFAULTs: -# Pagy::DEFAULT[:limit] = 20 # default +Pagy::DEFAULT[:limit] = 100 # default # Pagy::DEFAULT[:size] = 7 # default # Pagy::DEFAULT[:ends] = true # default # Pagy::DEFAULT[:page_param] = :page # default