Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #163 #167

Merged
merged 11 commits into from
Mar 2, 2024
Merged

Fix #163 #167

merged 11 commits into from
Mar 2, 2024

Conversation

JohannMaierhofer
Copy link

@JohannMaierhofer JohannMaierhofer commented Feb 24, 2024

Mit dieser Korrektur gehe ich das Problem aus #163 an.
Sollten falsche Buchungen da sein, kann es zu "no more handles" kommen wenn Buchungen in einem großen Jahresabstand vorhanden sind, weil dann versucht wird für jedes Jahr einen Button zu erzeugen. Auch wenn es nicht zu "no more handles" kommen würde, könnte es zu hunderten von Einträgen in der Quick Access Liste kommen. Das ist Unsinn.
Ich habe den Code jetzt so korrigiert, dass die 90 und 30 Tage, das aktuelle Jahr und maximal bis zu 10 zurückliegende Jahre angezeigt werden. Mehr braucht man nicht in der Liste. Ältere als 10 Jahre wird man nicht mehr brauchen. Notfalls kann man ja immer noch den Zeitraum manuell eingeben.
Damit kann es auch bei Buchungen mit unsinnigen Datum Werten keine "no more handles" mehr geben da die Zahl der Buttons auf maximal 13 begrenzt ist.

@JohannMaierhofer JohannMaierhofer marked this pull request as draft February 25, 2024 07:46
@JohannMaierhofer
Copy link
Author

Ich werde einbauen, dass man in der Zeitskala vor und zurück wandern kann.

@dippeal
Copy link
Member

dippeal commented Feb 25, 2024

Auf nur 10 Jahre zurück würde mir nicht reichen.
Die Eingabe von Jahren bzw. Jahren mit Monate fände ich gut. Vielleicht will jemand ein Saldo eines Monats mit dem eines anderen Monats vergleichen.
Grundsätzlich (ich weiß gerade nicht ob es überall implementiert ist) sollte bei jeder Datumseingabe eine Prüfung stattfinden, dass das "von" Datum kleiner gleich dem "bis" Datum ist. Weiterhin kann man überlegen ob Daten vor 1970 und nach 2100 unzulässige Eingaben sind.

@JohannMaierhofer JohannMaierhofer marked this pull request as ready for review February 27, 2024 13:38
@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 27, 2024

@dippeal und @MSchmalzl
Jetzt habe ich eine Lösung gefunden, dass es keine "no more handles" mehr gibt. Die Lösung ist etwas Umfangreicher geworden aber sie gefällt mir sehr gut. Ich hoffe euch auch.
Ich beschreibe meine Änderungen einmal:

  • Ich erzeuge jetzt 13 Buttons, für 10 Jahre und für die letzten 30, 60 und 90 Tage. Damit ist die Anzahl begrenzt und kann nicht mehr ins Unendliche wachsen.
  • In der Schnellzugriff gibt es auch neue vor und zurück Buttons. Damit kann man die Zeitskala um je 5 Jahre vor und zurück verschieben. Man kann also jedes beliebige Jahr erreichen.
  • Zusätzlich ist ein undo Button im Schnellzugriff. Damit kann man schnell wieder zum aktuellen Jahr zurück.
  • Individuelle Bereiche kann man wie bisher oben im Zeitraum eingeben.
  • Neben dem Suchen Button gibt es jetzt auch je einen vor und zurück Button. Damit kann man den Zeitraum um den Betrag des aktuellen Zeitraums vor und zurück gehen. Hat man z.B. einen Monat eingestellt kann man damit monatsweise durch blättern.
  • Das Durchblättern unterscheidet zwischen Monaten und Tagen. Beginnt Von am ersten Tag eines Monats und Bis am letzten Tag eines Monats wird monatsweise geblättert. Da Monate ja nicht immer gleich lang sind kann man damit wirklich in Monaten blättern. Ist die Bedingung nicht erfüllt wird das Zeitfenster in Tagen berechnet und man blättert die entsprechende Anzahl von Tagen.

Dann hat mir nicht gefallen, dass die Views für Buchungklassensaldo, Projektsaldo und Jahressaldo so unterschiedlich aussehen. Für eine bessere User Experience sollten die gleich ausschauen. Das habe ich jetzt gemacht.

  • Alle drei zeigen jetzt die Quick Access Buttons und den Zeitraum am. Nur beim Jahressaldo gibt es nur Jahre zum auswählen weil sich die Salden immer auf Geschäftjahre beziehen. Das war auch bisher schon so. Damit ist auch der Zeitraum nicht editierbar.
  • Um jetzt nicht den Code doppelt zu implementieren, was ja schon teilweise der Fall war, habe ich eine Überklasse für die Controls gemacht. Zusätzlich habe ich den Quick Access sowie den editierbaren Zeitraum in eigene Klassen ausgelagert. Jetzt sieht der Code schon viel besser aus.

Als weiteres habe ich noch eine Änderung gemacht und eine Fehler behoben

  • Die Buttons im Zeitraum prüfen jetzt ob Von vor Bis ist.
  • Wegen des Jahressaldo View ist mir aufgefallen, dass die Jahre in den anderen Views Kalenderjahre sind, im Jahressaldo aber Geschäftsjahre. Solange Geschäftsjahre am 01.01. beginnen ist das egal, aber bei anderen Startterminen nicht. Auch kann man sonst ja auch das Buchungklassensaldo nicht mit dem Jahressaldo vergleichen.
    Ich habe darum auch die anderen Views auf Geschäftsjahre umgestellt. Sollte jemand dann doch einmal Kalenderjahre ansehen wollen kann er das ja über die Zeitraum Eingabe machen und dort jahresweise blättern.

Und klar, die Docu muss man dann auch anpassen.
Viel Spass beim testen!

@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 27, 2024

Habe noch etwas behoben was mich schon lange stört.
Ist die Liste der Saldoeinträge lang, muss nach unten gescrolled werden. Ganz unten deckt dann immer der untere Scrollbalken den letzten Eintrag zu und man kann ihn schlecht lesen.
Ich habe jetzt einfach eine leere Zeile eingefügt. Jetzt wird nichts mehr verdeckt.

@dippeal dippeal added documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed labels Feb 27, 2024
@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 28, 2024

Jetzt gibt es noch einen Update. Mir hat nicht gefallen, dass die Anzeige der Von/Bis Zeiten mit der Suche vermischt ist. Ändert man z.B. die Von/Bis Zeiten, drückt aber nicht Suchen, dann weiß man nicht mehr was unten eigentlich angezeigt wird. Ich habe jetzt die Anzeige des angezeigten Bereichs von der Eingabe eines Suchbereichs getrennt.

Screenshot_20240228_144706

@MSchmalzl
Copy link

MSchmalzl commented Feb 28, 2024

Ich finde die Umsetzung ziemlich gut. Bei obigem Bild würde ich links den Text Zeitraum durch bspw. Aktuell angezeigter Zeitraum ersetzen.

Bei mir war es halt so, dass ich beim ersten Aufruf den Eindruck hatte man könne unter bestimmten Voraussetzungen links etwas eingeben. Evtl. kann man ja auch die 3 Punkte nach Von und Bis entfernen.

@JohannMaierhofer
Copy link
Author

Ich finde die Umsetzung ziemlich gut. Bei obigem Bild würde ich links den Text Zeitraum durch bspw. Aktuell angezeigter Zeitraum ersetzen.

Bei mir war es halt so, dass ich beim ersten Aufruf den Eindruck hatte man könne unter bestimmten Voraussetzungen links etwas eingeben. Evtl. kann man ja auch die 3 Punkte nach Von und Bis entfernen.

Den Text habe ich jetzt geändert.
Das mit den drei Punkten ist mir auch aufgefallen. Es war am einfachsten die bestehende Klasse zu lassen und einfach editieren zu sperren. Ich habe noch keine Klasse aus Jameica gefunden für ein Feld mit Date ohne die drei Punkte. Da muss ich mir wohl selber eine passende Klasse schreiben. Ich werde das morgen mal versuchen. So ist es wohl doch etwas verwirrend.

@willuhn
Copy link
Member

willuhn commented Feb 28, 2024

Ich habe noch keine Klasse aus Jameica gefunden für ein Feld mit Date ohne die drei Punkte.

Da gibt es in der Tat keine. Die pragmatischste Lösung ist hier (verwende ich so selbst auch) ein LabelInput zu verwenden und den Wert und den Wert direkt formatiert per

Date d = ...;
JVDateFormatTTMMJJJJ df = new JVDateFormatTTMMJJJJ();
labelInput.setValue(d != null ? d : df.format(d));

mit dem formatierten Datum zu befüllen.

@JohannMaierhofer
Copy link
Author

JohannMaierhofer commented Feb 29, 2024

Ich habe es geschafft. Jetzt sieht es so aus. Ich denke so passt es.
Ich habe zwar noch eine weitere Idee aber die gehört nicht mehr zum ursprünglichen Problem. Das mache ich dann mit einem eigenen Request wenn dieser durch ist.

Bild3

@JohannMaierhofer
Copy link
Author

@willuhn Hallo Olaf, mir ist etwas im DateInput aufgefallen. Ich weiß nicht ob du da etwas ändern willst oder kannst. Ich bin da leidenschaftslos. Man kann damit lustige Sachen machen.
Aus Versehen habe ich im Suchbereich den 30.02.2024 eingegeben. Nach drücken von Suchen erscheint dann links der 1.03.2024. Erst dachte ich, ich habe einen Fehler eingebaut. Aber dann war mir klar, dass beide irgenwie richtig sind. Beide sind der erste Tag nach dem 29.02.2024. Den 30.02.2024 gibt es nur nicht im Kalender. Aus dem 2.13.2024 wird dann halt der 2.01.2025.
Evtl. könnte man den Range bei der Eingabe abprüfen und bei falscher Eingabe das Feld rot hinterlegen.

@willuhn
Copy link
Member

willuhn commented Feb 29, 2024

Jameica kann das nicht behandeln, da DateInput dafür gar keine eigene Logik hat. Das müsste der DateFormatter übernehmen, der übergeben wurde. Und per Default ist das einfach der Standard-Date-Formatter von Java selbst.

@JohannMaierhofer
Copy link
Author

Jameica kann das nicht behandeln, da DateInput dafür gar keine eigene Logik hat. Das müsste der DateFormatter übernehmen, der übergeben wurde. Und per Default ist das einfach der Standard-Date-Formatter von Java selbst.

Ist schon ok, war mir halt nur aufgefallen.

@dippeal dippeal merged commit 5e5d422 into openjverein:master Mar 2, 2024
@dippeal
Copy link
Member

dippeal commented Mar 2, 2024

Bitte Dokumentation entsprechend anpassen.

@JohannMaierhofer JohannMaierhofer deleted the fix_issue163 branch March 2, 2024 10:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants