Projekt

Allgemein

Profil

Aktionen

GX-Bug #61948

geschlossen

Beim Ändern einer Adresse kann es zu einer Fehlermeldung kommen, wenn das JavaScript für die Bundeslandauswahl noch nicht geladen ist.

Von Till Tepelmann vor mehr als 5 Jahren hinzugefügt. Vor mehr als 3 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Hoch
Zugewiesen an:
Ronald Loyko
Kategorie:
Checkout
Zielversion:
% erledigt:

100%

Geschätzter Aufwand:
Steps to reproduce:
Betroffene Versionen:
3.12.0.3
Release Notes Langtext:

Performance des JavaScripts im Adressbuch verbessert


Beschreibung

Beim Ändern einer Adresse kann es zu einer Fehlermeldung kommen, wenn das JavaScript für die Bundeslandauswahl noch nicht geladen ist.

System:

  • xampp Testsystem unter Windows 7
  • PHP 7.0

Reproduzierbar: bei schnellen Klicken ja

Aktionen:

  • Aufruf zum Ändern einer bestehenden Adresse aus dem Adressbuch oder innerhalb eines Auftrages, URL z.B.: address_book_process.php?edit=1

  • Wechsel des Landes von einem Land ohne Bundesstaat (z.B. Portugal) auf ein Land mit Bundesstaat (z.B. Vereinigte Staaten von Amerika)

  • Noch bevor die JavaScript-Aktion das Feld "Bundesland" mit einen Defaultwert füllen kann, wird der "Speichern"-Button ausgelöst.

  • Browser-Meldung: "Diese Seite funktioniert nicht vinobucks.de kann diese Anfrage momentan nicht verarbeiten.
    HTTP ERROR 500"

  • PHP Log:

    PHP Fatal error: Uncaught InvalidArgumentException: IntType: Invalid argument value given (expected numeric int got NULL): in \GXEngine\Shared\Types\IntType.inc.php:45
    Stack trace:
    #0 \GXEngine\Shared\Types\IdType.inc.php(47): IntType->__construct(NULL)
    #1 \system\classes\accounts\AddressBookProcessContentControl.inc.php(321): IdType->__construct(NULL)
    #2 \system\classes\accounts\AddressBookProcessContentControl.inc.php(212): AddressBookProcessContentControl->get_address_data_from_user_input()
    #3 \system\overloads\AddressBookProcessContentControl\DSGVOAddressBookProcessContentControl.inc.php(23): AddressBookProcessContentControl->process_update()
    #4 \system\classes\accounts\AddressBookProcessContentControl.inc.php(204): DSGVOAddressBookProcessContentControl->process_update()
    #5 \GXEngine\Shared\Types\IntType.inc.php on line 45
    

EDIT 24.04.2019

  1. Aktiviere unter Kunden > Kunden-Details "Bundesland"
  2. Lege einen Kunden im Shop an, Land egal, Bundesland egal
  3. Navigiere als Kunde zum Adressbuch
  4. Klicke bei Standardadresse auf "Bearbeiten"
  5. Beobachte: der Default-Eintag im Formularfeld Bundesland erscheint erst nach einem kurzen Moment (<0,5s)
  6. Merke Dir, wo auf dem Bildschirm der Speichern-Button ist, klicke auf Zurück
  7. Klicke wieder auf Bearbeiten und sofort auf Speichern, bevor das Bundesland-Feld ausgefüllt wird, viel Spaß!
  8. erwartetes Ergebnis: Adresse wird gespeichert
  9. tatsächliches Ergebnis: FATAL ERROR, siehe Screenshot

Dateien


Aktionen

Auch abrufbar als: Atom PDF