Seite 1 von 2
Auto-Save beim Verlassen der Eingabe
Verfasst: Mittwoch 13. Januar 2016, 00:22
von wald
Hallo Zusammen,
Bei jVerein und hibiscus ist es ja so, dass man immer explizit speichern muss.
Wer einfach den Pfeil zurück klickt, der verwirft alle Eingaben.
Wir haben einen neuen Kassierer, der hat vorher mit einem anderen Programm gearbeitet und er beschwert sich, dass er ans speichern denken muss. Leider hat er schon viel Arbeit doppelt gemacht.
Weiter sind immer zwei Klicks notwendig, der eine oben, der andere unten. Sehr umständlich.
(ich weiß: <enter>, <alt>+ <-, geht schneller, aber ist auch nicht total ergonomisch.)
Wenn wenigstens jVerein eine "auto save" Funktion hätte, die beim "Pfeil zurück" den Eintrag auch speichert, würde das viel einfacher gehen.
Um im Zweifelsfall die Eingaben rückgängig zu machen, müsste aus dem Speichern-Button dann ein Abbrechen werden.
Ich denke in Standardfall, sollen die Änderungen übernommen werden und ein verwerfen ist nur in Ausnahmen gewünscht. Daher sollte der Fall am einfachsten in der Bedienung sein. Ich kann die Einwände unseres Kassierers sehr gut verstehen.
Das wäre natürlich eine große Änderung in der Bedienlogik und die optional zu machen ist noch mehr Aufwand.
Daher würde es mich interessieren, ob ich mit meinem Kassierer das Problem alleine habe oder ob es vielen helfen würde.
Vielleicht fehlt mir auch nur der richtige Workflow und ich bediene jVerein falsch.
Gruß
Thomas
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Samstag 16. Januar 2016, 12:26
von heiner
Hallo Thomas,
das Thema ist schon des öfteren auf der Tagesordnung gewesen. Ganz so einfach ist das leider nicht zu realisieren. Wenn sich jemand findet, der das entwickelt, übernehme ich das gerne in JVerein.
Heiner
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Sonntag 17. Januar 2016, 06:29
von Vrumfondel
Hallo Heiner,
ich habe zumindest eine Stelle, wo ich mir dies wünschen würde: Splitbuchungen. Wenn man eine einzelne Splitposition geändert hat, auch in mehreren Belegen, dann muss die Splitbuchung selbst immer auch noch einmal gespeichert werden. Ich glaube, an diesen Schritte, etwas zu speichern zu müssen, was man ja schon gespeichert hat, werde ich mich nur seeehr langsam gewöhnen.
Hier wären entweder ein automatisches Speichern oder ein Hinweis vorm Verlassen der Splitbuchung wirklich hilfreich.
Viele Grüße
Vrumfondel
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Dienstag 19. Januar 2016, 22:18
von wald
Hallo Heiner,
ja Du hast recht, ganz so einfach wie ich dachte ist es nicht.
Einfach bei einem unbind() der view ein Save auszulösen geht leider nicht in allen Situationen. z.B. wenn man im SplittbuchungsView eine neue Splittbuchung anlegen will.
Natürlich könnte man die diversen Sonderfälle abfangen, aber wenn man das Autosave Anwendungsweit einführen will, ist das eine ganz schöne Arbeit und Testerei.
Ich habe auch noch keinen Weg gefunden herauszubekommen, ob unbind() durch den Zurück Button ausgelöst wurde. Oder mich sonst wie an den Zurück-Button zu hängen.
Wenn jemandem dazu was einfällt, würde ich mich freuen. Werde auch selber weiter nach einer Lösung suchen.
Gruß
Thomas
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Dienstag 19. Januar 2016, 23:25
von wald
Hallo,
ich habe herausgefunden, dass GUI eine Message schickt, wenn unbind aufgerufen wird, damit könnte man arbeiten.
Aus GUI.java
Code: Alles auswählen
try
{
Application.getMessagingFactory().getMessagingQueue("jameica.gui.view.unbind").sendSyncMessage(new QueryMessage(gui.currentView));
gui.currentView.unbind();
Jetzt stell sich nur die Frage, wie man auf elegantem Wege jedem View beibringt auf dieses Event zu hören.
Mein Vorschlag:
- einen zentralen UnbindMessageController in JVereinPlugin.java registrieren.
- Der UnbindMessageController ruft dann vom übergebenen View die autosave() Methode.
- Jeder view, der Autosave unterstützt, Implementiert das AutosaveView Interfacer, dass eben diese Methode voraussetzt ggf. noch ein paar Einstellungen.
- Jeder View in dem Änderungen vorgenommen werden können, müsste dann das Interface implementieren. Das sollte aber relative einfach gehen. Einfach die Action vom SaveButton kopieren. Ggf. muss man nuch im unbind() dafür sorgen, dass ein schließen des Dialogs verhindert wird, wenn das speichern nicht erfolgreich war.
Denkfehler?
Eine wichtige Frag: Ist es OK das Standardverhalten von jVerein auf autosave zu ändern oder müsste das konfigurierbar sein?
Gruß
Thomas
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Mittwoch 20. Januar 2016, 01:26
von wald
Hallo,
zu früh gefreut, auch mit der Message ist nicht zu unterscheiden, was den unbind() ausgelöst hat.
Ich habe jetzt mal Olaf angeschrieben ob er eine Möglichkeit kennt an das Auslösen des Zurück-Buttons zu kommen.
Viele Grüße
Thomas
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Freitag 22. Januar 2016, 07:50
von heiner
Das Problem ist, dass erkannt wird, ob sich eine Änderung in einem Control ergeben hat. Dabei muss zwischen reinen Anzeigenelementen und an Datenbankspalten gebundenen Elementen unterschieden werden. Das muss natürlich universell gehen und nicht für jede einzelne Seite individuell zusammengebaut werden und bei der nächsten Veränderung dann vergessen werden.
Heiner
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Montag 25. Januar 2016, 16:42
von wald
Hallo Heiner,
ich würde einfach etwas "radikaler" vorgehen und gar keine Änderungserkennung implementiert und immer einen "Speichern" absetzen.
Ich habe mit Olaf jetzt ein paar Möglichkeiten diskutiert und das ließe sich relativ generisch implementieren.
Ausnahmen müssten immer dann gemacht werden, wenn ein SubView gestartet wird. Also z.B. wenn vom SplitbuchungsView ein neuer Eintrag erstellt/editiert wird.
Ich hatte mit Olaf auch eine reine Reaktion auf den "Zurück"-Button diskutiert, aber dann würden Änderungen nicht (zuverlässig) gespeichert, wenn man links in der Navigation klickt. Dann könnte man sich aber viele Ausnahmen sparen. Das habe ich quasi schon fertig. Habe dafür einen weitere Message in Jameica eingefügt (die würde Olaf auch übernehmen).
Ich kann nicht einschätzen wie viele Leute auch beim "weg-navigieren" über den Baum links ein autosave erwarten. Ich würde es nicht erwarten und z.B. bei eine Splittbuchung kann man ja gar nicht über die Navigation dort hin. Das gleiche beim Ändern eines Mitglieds.
Gruß
Thomas
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Montag 25. Januar 2016, 22:16
von heiner
Hallo Thomas,
Habe dafür einen weitere Message in Jameica eingefügt (die würde Olaf auch übernehmen).
Gibt es schon einen Release-Termin für die nächste Jameica-Version?
Wie soll ein autosave verhindert werden? Wenn z. B. Änderungen an einem Mitglied vorgenommen werden und dann festgestellt wird, dass es das falsche Mitglied war oder ähnliche Gründe?
Heiner
Re: Auto-Save beim Verlassen der Eingabe
Verfasst: Montag 25. Januar 2016, 22:42
von wald
Hallo Heiner,
über den nächsten Release-Termin habe ich mich mit Olaf nicht unterhalten.
Ich frage ihn mal.
Je nach dem welche der beiden Auto-Save-Varianten es wird, würde ich einen Button "Abbrechen" hinzufügen oder den "Speichern"-Button durch "Abbrechen" ersetzen.
Hast Du eine Meinung dazu, welche der beiden Varianten es werden soll?
Hast Du eine Idee, wie sich das häufige Speichern auf die Performance auswirken könnte?
Bei der Variante, die einfach auf das Unload des Views reagiert, würde ja immer gespeichert.
Gruß
Thomas