moveable-ch / bikeable-frontend

Web Frontend for Bikeable.ch 🚲
https://bikeable.ch
7 stars 1 forks source link

Preview of uploaded photo not working #3

Closed mgschwend closed 6 years ago

mgschwend commented 7 years ago
screen shot 2017-10-06 at 22 04 18
mgschwend commented 6 years ago

Fixed the issue, @diluno könntest du das kurz reviewen?

diluno commented 6 years ago

Versteh ich nicht, warum 'store' statt 'size'? Funktionierts so? @LucNaterop wie ist das implementiert im Backend?

Ich ging eigentlich davon aus dass wir hier einen Timeout brauchen, bevor wir das Bild anzeigen.

lucnat commented 6 years ago

@diluno @mgschwend store versus size macht keinen Unterschied! Meiner Meinung nach is das Problem hier folgendes: Es kann halt ein paar 100 ms gehen bis das Bild vom Server serviert wird. Deshalb sollte ein setInterval gemacht werden, der läuft bis das Bild verfügbar ist.

mgschwend commented 6 years ago

@diluno @LucNaterop Ich habe gesehen, dass ?size=small das Bild in einer Grösse von 1000 x irgendwas pixels liefert und ?store=small das Bild in 200 × irgendwas pixels. Das kleinere Bild scheint schneller verfügbar zu sein, darum habe ich das so gemacht. store=small habe ich aus anderen Stellen im Code übernommen 😃 Beste Lösung wäre wahrscheinlich nach dem Delay versuchen das Bild zu holen bis es klappt, nicht nur einmal.

mgschwend commented 6 years ago

So funktionierts grundsätzlich, UI müsste allerdings noch angepasst werden (Beim Fehler sollte irgend ein loading spinner angezeigt werden. @diluno gibts da schon was?)

    imageLoadError(error) {
      console.log("Error loading image, retrying...");
      var imageId = this.imageId;

      setTimeout(function() {
          error.target.src = 'https://backend.bikeable.ch/api/v1/photos/' + imageId + '?store=small';
      }, 1000);

    }
lucnat commented 6 years ago

@mgschwend store=small funktioniert so nicht. Bei folgendem Beispiel kannst du sehen, dass store=small das Bild in Originalgrösse zurückgibt, was hier nicht gewollt ist:

/api/v1/photos/d7i4PuffTcNchm8k8?store=small

Es gibt schon einen Endpoint, der denn store Parameter akzeptiert, der endpoint hat aber eine andere URL:

/cfs/files/images/d7i4PuffTcNchm8k8?store=small

Der sollte aber nicht benützt werden, sondern derjenige, der in der Dokumentation ist, und der geht so:

/api/v1/photos/d7i4PuffTcNchm8k8?size=small

mgschwend commented 6 years ago

Bug fixed in backend.