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

Mobil (hochkant) keine Buchung über Monatsende hinaus möglich #1103

Closed
danielappelt opened this issue Aug 5, 2022 · 6 comments
Closed
Assignees
Labels
bug Something isn't working module:Litepicker Related to frontend JS module Litepicker stale Kann das weg?

Comments

@danielappelt
Copy link
Contributor

Describe the bug
Auf der Buchungsseite eines Artikels im Frontend wird mobil / hochkant nur ein einzelner Monat im Buchungskalender angezeigt. Die Navigation zu Monaten in der Zukunft funktioniert ohne Probleme. Allerdings ist es hier nicht möglich, eine Buchung über eine Monatsgrenze hinweg anzulegen. Die Selektion des Enddatums schlägt jedes Mal fehl - es wird kein Buchungszeitraum festgelegt. Als Nutzer hat man so nur die Möglichkeit den Artikel für einen Zeitraum innerhalb eines Monats zu buchen oder auf die Zwei-Monatsansicht zu wechseln durch Drehen des Smartphones.

To Reproduce

  • Artikel anlegen
  • Zeitrahmen dafür anlegen mit Option "Ganzer Tag" und Auswahl buchbarer Tage (bei uns Mo und Do)
  • Als Anwender mit Smartphone (hochkant gehalten) versuchen, den Artikel zu buchen für einen Zeitraum, der sich über ein Monatsende hinweg erstreckt

Expected behavior
Jeder durch den Zeitrahmen mögliche Buchungszeitraum sollte sich auf jedem Device buchen lassen.

Workaround
Wir haben nun aktuell als Workaround die Lightpicker-Konfiguration so angepasst, dass mobil / hochkant auch immer zwei Monate angezeigt werden. Aus Usability-Sicht sehe ich hier ehrlich gesagt auch keine Probleme. Im Allgemeinen muss man mobil auf einer Artikelseite sowieso immer scrollen.

numberOfMonths haben wir hierfür an einer Stelle in public.js bzw. public.min.js auf 2 gesetzt.

@danielappelt danielappelt added the bug Something isn't working label Aug 5, 2022
@hansmorb
Copy link
Contributor

hansmorb commented Aug 6, 2022

Ich konnte diesen Fehler leider auf mehreren Webseiten mit der aktuellen CommonsBooking Version (2.7.2) nicht reproduzieren (weder auf einem echten noch auf einem simulierten Gerät). Kannst du bitte nochmal einen Link zu einer Installation schicken, in der das Problem konkret auftritt? Auf der Leihbar Seite scheint es auch zu funktionieren

@danielappelt
Copy link
Contributor Author

@hansmorb auf der Leihbar-Seite habe ich oben genannten Workaround eingebaut - dort sollten immer zwei Monate im Kalender sichtbar sein und das Problem nicht auftreten.

Damit Du es nachvollziehen kannst, binden wir nun auf einer Artikel-Seite die nicht-minifizierte und von uns nicht angepasste public.js ein. Dort sollte es für Dich nachvollziehbar sein.

Screenshot
image

@hansmorb
Copy link
Contributor

hansmorb commented Aug 7, 2022

Hier kann ich es nachvollziehen, das ist aber auch die einzige Seite. Bei dieser URL ( https://leihbarbonn.de/dinge/spanngurt-5m-2/ ) zum Beispiel kann ich z.B. problemlos den Zeitraum vom 29.08. bis 03.10. auswählen . Screenshot_20220807-091643.png

Auch auf allen anderen getesten Installationen tritt der Fehler nicht auf, ich bin gerade etwas ratlos wie ich das reproduzieren soll.

@danielappelt
Copy link
Contributor Author

@hansmorb ich versuche es noch mal genauer zu erklären.

Auf unserer Seite ist aktuell tatsächlich nur die in meinem zweiten Post genannte Seite betroffen, da ich diese Seite extra für Dich präpariert habe, damit Du das Problem nachvollziehen kannst.

Dort wird die unveränderte public.js eingebunden. Das ist daran zu erkennen, dass dort mobil und hochkant im Kalender nur ein Monat dargestellt wird (s. mein Screenshot). Da wir sehr viele Beschwerden bekommen haben, dass Artikel nicht über Monatsgrenzen hinweg buchbar sind, haben wir nun grundsätzlich auf unserer Seite - also bei allen anderen Artikeln - eine angepasste public.js eingebunden, so dass im Buchungskalender immer zwei Monate dargestellt werden (s. Dein Screenshot). Das ist für uns allerdings nur eine Notlösung, da ich den Fix nach jedem Update von CommonsBooking neu anwenden müsste.

Vielleicht kannst Du es noch mal mit folgender Anleitung versuchen auf einer Deiner Installationen nachzuvollziehen.

To Reproduce

  • Artikel anlegen
  • Zeitrahmen dafür anlegen:
    • Option "Ganzer Tag"
    • Zeitrahmenwiederholung "wöchentlich"
    • Wochentage "Montag" und "Donnerstag"
  • im zugehörigen Standort: Überbuchen geblockter Tage erlauben "aktivieren"
  • Als Anwender auf dem Smartphone (hochkant gehalten) dann versuchen den Artikel für den Zeitraum 29. August bis 1. September 2022 zu buchen.

Wichtig ist hier meiner Ansicht nach, dass der letzte Tag im ersten betroffenen Monat selber nicht buchbar ist, sondern überbucht werden muss. Im Frontend wird das Enddatum für die Buchung dann nicht übernommen. Im Kalender wird zwar der Zeitraum richtig farblich hinterlegt dargestellt, aber in der Textzusammenfassung darunter ändert sich bei "Rückgabe" nichts und der Button für die Buchungsprüfung bleibt deaktiviert (s. mein Screenshot).

Analyse

Am Ende von Zeile 1050 in public.js wird versucht, das gewählte Startdatum in this.options.days zu finden. Im genannten Szenario ist aus dem Vormonat aber anscheinend nur der letzte Tag in dem Objekt enthalten. d bleibt also undefined und der Zugriff auf d.lastSlotBooked in der folgenden Zeile führt zum Fehler.

@chriwen
Copy link
Member

chriwen commented Aug 17, 2022

@danielappelt Vielen Dank für den Hinweis. Ich konnte zwar z.B. bei kasimir-lastenrad.de auch gerade problemlos auf dem Smartphone hochkant eine Buchung von 30.08 - 01.09. auswählen (auch bei anzeige von nur einem Monat). Aber von mir aus könnten wir die Anzahl der Monate bei mobile gerne auf 2 hochsetzen. Sehe da auch kein zu großes Problem.
@hansmorb Was meinst du?

@hansmorb hansmorb self-assigned this Jan 13, 2023
@datengraben datengraben added the module:Litepicker Related to frontend JS module Litepicker label Sep 20, 2023
datengraben added a commit to wielebenwir/Litepicker that referenced this issue Sep 20, 2023
Otherwise this causes problems with the calendar widgets responsiveness.

Initially requested in main module wielebenwir/commonsbooking#1103
@hansmorb hansmorb added stale Kann das weg? and removed triage labels Feb 5, 2025
@hansmorb
Copy link
Contributor

hansmorb commented Feb 5, 2025

In #1753 aufgegangen

@hansmorb hansmorb closed this as completed Feb 5, 2025
@github-project-automation github-project-automation bot moved this from To do to Todo Review STAGE in commonsbooking (> v2.0.0) Feb 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working module:Litepicker Related to frontend JS module Litepicker stale Kann das weg?
Projects
Status: Todo Review STAGE
Development

Successfully merging a pull request may close this issue.

4 participants