2Abendsegler / GClh

GC little helper II - Some little things to make life easy (on www.geocaching.com). Powerful, configurable tool to improve and expand the geocaching pages.
GNU General Public License v2.0
58 stars 38 forks source link

[Log Form] Log template "Last Cache-Log" inserts old Log instead of last one #2542

Closed gcPhil closed 1 week ago

gcPhil commented 8 months ago

Describe the bug

I am logging caches and try to insert my Last-Cache-Log with the Log template function. But it inserts the text of an old DNF log (that I wrote in the first days of November) instead of my last logs that I made before some minutes. Saving the last log text does not seem to work for me since one of the last updates

To Reproduce

No response

Expected behavior

No response

OS

Windows

Browser

Firefox

GClh Version

0.15.3

Additional context

No response

2Abendsegler commented 8 months ago

Danke für das Melden des Bugs.

Ich kann das Problem im Moment nicht nachstellen.

Zum Speichern des "Last Logs" bauen wir beim "Post" Button ein Klick Event ein, das bewirkt, dass beim Klick auf den Button auch der Loginhalt in einem GClh Parameter gespeichert wird. Es scheint mehrere mögliche Fehlerquellen zu geben.

  1. Das Klick Event wird nicht aufgebaut, weil der GClh vorher abgebrochen wird. Dazu sollte es entweder vom GClh oder von der Webseite selbst eine Fehlermeldung in der Konsole geben.
  2. Das Klick Event wird durch Seitenänderungen von GS zerstört. Im Bereich des Buttons kommen solche Effekte immer mal wieder zu Beginn der Aufbaus der Webseite vor. Deshalb bauen wir das Klick Event 10 Sekunden lang immer wieder auf, wenn es zerstört wurde. Theoretisch könnte es auch nach dieser Zeit zu Seitenänderungen kommen, wir haben solche aber bisher noch nicht beobachten können.
  3. Die Ausführung des "Post" Buttons erfolgt so schnell, dass das Klick Event nicht mehr ausgeführt wird. Bei einer super schnellen Internetverbindung wäre das denkbar. Ich halte es aber für nicht besonders wahrscheinlich.

@gcPhil Zu 1. Zuerst könntest du mal in ein Log Formular gehen und dann bitte die Konsole mit der Funktionstaste F12 aufrufen. Du musst im Log Formular nichts eingeben. Wähle dort bitte mal den Reiter "Konsole" aus und aktiviere eine Zeile tiefer rechts das Feld "Fehler". Falls in der Liste etwas in rot dargestellt wird, bitte mal entsprechendes per Screenshot hier einstellen. Die Liste kann über mehrere Seiten gehen. Falls nichts in rot dargestellt wird, die Webseite mit Funktionstaste F5 aktualisieren und anschließend die Liste wieder prüfen und rotes gegebenenfalls hier einstellen. Letzteres drei, vier mal wiederholen solange noch nichts rotes vorhanden ist.

Zu 2. Anschließend können wir eine Testversion zur Verfügung stellen, mit der wir prüfen können, ob das Klick Event aufgebaut wurde. Dazu aber erst später ... oder morgen.

gcPhil commented 8 months ago

@2Abendsegler Vielen Dank für die schnelle und ausführliche Antwort!

screenshot

2Abendsegler commented 8 months ago

Die Daten im Screenshot sind unauffällig. Da das Speichern der Last Logs aber manchmal auch funktioniert, könnte es sich hier aber auch genau um einen solchen funktionierenden Fall handeln. Hier müsste man sich die Konsole häufiger ansehen und beobachten, bei welchem Inhalt das Speichern funktioniert und ob es überhaupt einen anderen Inhalt in der Konsole gibt. Aber stellen wir das mal zurück.

Ich kann nur dann bei einem Draft einen grauen Post Button erzeugen, wenn kein Text mitgegeben wird. Sind deine Drafts ohne Text?

Das Klick Event wird auch bei grauem Button aufgebaut. Wechselt der Button die Farbe verschwindet das Klick Event manchmal, aber nicht immer.

Ich überlege gerade, ob viel dagegen spricht, den Aufbau des Klick Events zeitlich nicht zu begrenzen. Womöglich wäre das eine einfache Lösung des Problems. Für die Prüfung, ob die letzte Eingabe vom GClh stammt, sollte das dann identisch erfolgen. @capoaira Bist du online? Was meinst du?

capoaira commented 8 months ago

Den Aufbau zeitlich nicht zu begrenzen fühlt sich sehr unsauber an. Ich denke aber auch, dass das die einfachste Lösung wäre. Da wir scheinbar mehrfach die Events, wie auch andere Dinge initialisieren müssen, würde eigentlich ein MutationObserver Sinn machen, oder? Ein entsprechender Umbau wäre aber vermutlich unnötig Zeitaufwendig. Wir könnten einen MutationObserver aber auch nur für die beiden Problem-Funktionen nutzen, dann würde sich der Aufwand (hoffentlich) in Grenzen halten.

Ich bin aktuell nicht in Bremen und kann daher nichts für den GClh machen. Zudem werde ich, wenn ich zurück bin, weiterhin sehr von der Uni eingebunden sein. Zeit zum Testen werde ich finden, zum entwickeln aber leider nicht :-(

2Abendsegler commented 8 months ago

@gcPhil Bevor wir größere Umstellungen machen, habe ich eine kleine Anpassung gemacht, weil das Speichern des Last Logs leicht anders realisiert ist als zwei vergleichbare Themen (Warning last changes by GClh, F2). Vielleicht kannst du deine nächsten Logs mit der kleinen Anpassungen erledigen. Bitte prüfe nach jedem Log, ob das letzte Log gespeichert wurde.

Hier geht es zu der kleinen Anpassungen. Hier geht es wieder zurück zum Original.

2Abendsegler commented 8 months ago

@gcPhil Ich noch mal. Bitte wenn möglich 10 Sekunden warten, bevor du im Log Formular etwas eingibst.

gcPhil commented 8 months ago

@2Abendsegler Ich habe die Version mit Anpassungen installiert (zumindest nehme ich das an: Nach klick auf den Link zur Version habe ich auf "neu installieren" geklickt und das Tab hat sich daraufhin immer ohne Bestätigung geschlossen).

Leider war das ganze auch ohne großen Erfolg: Vier von vier Log-Texte wurden nicht gespeichert, auch mit 10 Sekunden Wartezeit vor der Eingabe.

Ach ja, genau meine Drafts enthalten keinen Text, es sind reine "schnelle offline logs" ohne Notiz, die ich aus c:geo hochlade.

2Abendsegler commented 8 months ago

@gcPhil Danke für die Tests. Um zu überprüfen, ob du die kleinen Anpassungen wirklich installiert hast, kannst du ein Log Formular aufrufen und dann in der Konsole schauen ob "GClh save last log: Build Event" ausgegeben wird.

gcPhil commented 8 months ago

@2Abendsegler Ja, "GClh save last log: Build Event" wird ausgegeben.

gcPhil commented 8 months ago

Kurze Rückmeldung: Ich bin wieder mal am Loggen, mittlerweile läuft dabei GClh v0.15.4. Immer noch wird der Log-Text mal gespeichert, mal nicht. Um genau zu sein hat es gerade 4x am Stück funktioniert, danach 4x am Stück nicht. Gefühlt habe ich dabei nichts anders gemacht. Auch ob Text-Notizen in den Draft-Logs gespeichert sind oder nicht scheint dabei keine Rolle zu spielen. Außerdem konnte ich das Problem in der Zwischenzeit auch sporadisch bei anderen Cachern auf anderen Rechnern sehen.

2Abendsegler commented 8 months ago

Danke für die erneute Rückmeldung.

Nach derzeitigem Stand sollte es mindestens dann funktionieren, wenn innerhalb von 10 Sekunden der Log Type gesetzt wird und eine manuelle Eingabe im Logtext erfolgt ist.

Wir wissen wie wir es in den Griff bekommen, sofern es sich um Punkt 2. handelt, was ja wahrscheinlich ist. Es ist aber etwas Aufwand und in den letzten Tagen hat die Zeit dafür einfach nicht ausgereicht. Ich hoffe ich schaffe es für die nächste Version.

2Abendsegler commented 1 month ago

@gcPhil Moin,

sorry, dass wir uns so lange nicht mehr um das Problem gekümmert haben. Ich gehe mal davon aus, dass das Problem leider noch existiert.

Mit der nächsten Version des GClh in Kürze haben wir das Click Event für das Speichern des letzten Log Textes komplett so umgestellt, wie wir es bei unseren anderen Click Events auch realisiert haben. Wenn das nun nicht funktioniert, würde das nahelegen, dass auch unsere anderen Click Events nicht immer funktionieren.

Kannst du das Thema bitte nach der Installation der nächsten Version beobachten und hier noch mal Feedback geben. Danke. Das Issue bleibt noch offen.

LG Frank

2Abendsegler commented 2 weeks ago

@gcPhil Moin,

konntest du das Verhalten beim Loggen bezüglich des "Last Cache-Log" Templates nochmal beobachten?

LG Frank

gcPhil commented 2 weeks ago

Moin Frank, sorry für die späte Antwort. Ich habe ehrlich gesagt einige Zeit nicht mehr im Browser geloggt, aber ich werde das ganze kommene Woche noch mal testen.

gcPhil commented 1 week ago

Sooo, ich habe heute eine ganze Weile mit V. 0.16.2 geloggt und konnte den Fehler nicht mehr feststellen. Vielen Dank noch mal für die ganze Arbeit die du in die Behebung gesteckt hast!

2Abendsegler commented 1 week ago

Vielen Dank für das Feedback. Ich werde dann das Issue schließen.

Wenn ich ehrlich bin, bin ich mir nicht sicher, dass das Problem tatsächlich behoben ist. Bitte melde dich unbedingt noch mal, falls das Problem wieder auftaucht. Es gibt noch andere Möglichkeiten, wie wir es realisieren können.