datenanfragen / website

The Datenanfragen.de website including the request PDF generator and company information database
https://www.datenanfragen.de
MIT License
95 stars 125 forks source link

Kann Land nicht festlegen #193

Closed pyfisch closed 4 years ago

pyfisch commented 4 years ago

Im Auswahlfenster wird mir kein Land angezeigt und unten auf der Seite kann ich das Land auch nicht ändern. grafik grafik

baltpeter commented 4 years ago

Das ist merkwürdig. Unter dem "Wir sind der…"-Text im Footer sollte eigentlich ein Auswahlwidget angezeigt werden.

Das Problem kann ich bei mir so nicht reproduzieren. Hast Du vllt. einen Ad Blocker oder Ähnliches, der die entsprechenden Elemente wegblockiert?
Werden in der browser console Fehler angezeigt?

pyfisch commented 4 years ago

Das Problem kann ich bei mir so nicht reproduzieren. Hast Du vllt. einen Ad Blocker oder Ähnliches, der die entsprechenden Elemente wegblockiert?

Habe ich zum Testen ausgestellt. Es funktioniert aber auch nicht im Privaten Modus, wo alle Addons deaktiviert sind.

Werden in der browser console Fehler angezeigt? Ja, es wird ein Fehler angezeigt.

An unexpected error occurred: 
error { target: Window, isTrusted: true, message: "TypeError: n.exec(...)[5] is undefined", filename: "https://www.datenanfragen.de/js/general.gen.js", lineno: 24, colno: 179843, error: TypeError, srcElement: Window, currentTarget: Window, eventPhase: 2, … }
 Please submit reports via GitHub (https://github.com/datenanfragen/website/issues) or email (dev@datenanfragen.de). error-handler.gen.js:7
TypeError: n.exec(...)[5] is undefinedgeneral.gen.js:12
pyfisch commented 4 years ago

Außerdem versucht die Seite beim Start https://www.datenanfragen.de/db/suggested-companies/undefined_wizard.json abzurufen, was mit einem 404 Fehler scheitert.

zner0L commented 4 years ago

Welche Sprache ist in Deinem Browser eingestellt?

pyfisch commented 4 years ago

Das Accept-Language header hat den Wert de,en-US;q=0.8,en;q=0.5,fr;q=0.3

pyfisch commented 4 years ago

:laughing: Wenn ich de-de hinzufüge (Deutsch in Deutschland) funktioniert es.

Ich benutze Manjaro Linux, vermutlich ist das eine sehr ungewöhnliche Konfiguration, die da voreingestellt ist.

zner0L commented 4 years ago

Ja, ich vermute unser Land-Guessing-Algorithmus funktioniert nicht gut genug… @baltpeter hast du eine Idee?

baltpeter commented 4 years ago

laughing Wenn ich de-de hinzufüge (Deutsch in Deutschland) funktioniert es.

Das ist ja in der Tat spannend. Ich hätte eig. behauptet, dass unser parser regex das hätte verstehen müssen.

Relevant ist aber tatsächlich auch nicht der header (auf den haben wir aus JS keinen Zugriff), sondern der Wert von navigator.languages – konkret der erste im Array.
Magst Du nochmal ausprobieren, was der ist?

baltpeter commented 4 years ago

Hab den Fehler glaube ich gefunden:

https://github.com/datenanfragen/website/blob/373cead6cb0a181484edcf51266c16eb1df1d804/src/general.js#L80-L84

Wenn die lang nur de (ohne Land) ist, findet der regex natürlich auch nur die Sprache. Dementsprechend ist Element 5 dann undefined und undefined hat keine .toLowerCase()-Methode. Klassischer Fehler.

Da bringt dann auch der check ob wir ein bcp47_country haben nichts mehr…

pyfisch commented 4 years ago
navigator.languages
Array(4) [ "de", "en-US", "en", "fr" ]

Die Werte sind die gleichen wie im HTTP Header, wenn ich also de-de in den Einstellungen hinzufüge erscheint er auch dort.

baltpeter commented 4 years ago

Dann wird es daran liegen. Ich bereite mal eben schnell einen Fix vor.

baltpeter commented 4 years ago

Oops.

baltpeter commented 4 years ago

So, #197 sollte das Problem beheben. Wäre super, wenn Du da mal die deploy preview von Netlify ausprobieren würdest, sobald die fertig ist.