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

Filtrowanie po typie (modelu) tramwaju #8

Open
domints opened this issue Apr 19, 2017 · 6 comments
Open

Filtrowanie po typie (modelu) tramwaju #8

domints opened this issue Apr 19, 2017 · 6 comments

Comments

@domints
Copy link

domints commented Apr 19, 2017

W komentarzach pod postem ZIKiT padła sugestia, żeby kolorować strzałki w zależności od modelu tramwaju, jednak doszliśmy do konsensusu, że to może dokładać zbędne informacje na mapę, dla ludzi, którym jest to nie potrzebne.
Ostatecznie stanęliśmy przy wersji, żeby dodać filtrowanie po typie pojazdu.

https://www.facebook.com/ZIKiT.Krakow/posts/1284003588320356?comment_id=1284041251649923

@domints
Copy link
Author

domints commented Apr 19, 2017

Biorę ten issue ;)

@domints
Copy link
Author

domints commented Apr 19, 2017

@jacekkow Chciałbym, żebyś zobaczył to, co utworzyłem, ogólnie chodzi mi raczej o logikę, front ze mnie kiepski.
Podgląd możesz znaleźć na http://vps.dszymanski.pl/mpk-ttss/map.html
A zmiany na 3d9dc1d
Myślę, że jeszcze trzeba poprawić tu UX, no i nie wiem czemu trójkąty znikają dopiero po jakimś czasie, może OpenLayer tak ma.
Nie usuwam też tramwajów, lecz tylko znikam ikonki (cyfry na torach zostają).

Ponadto zrobiłem też delikatny refactor, typy tramwajów wydzieliłem do czegoś w rodzaju enuma, dzięki czemu dodawanie / usuwanie i podłączanie się do tego w przyszłości powinno być łatwiejsze.

I jeszcze jedna ważna kwestia, dodałem mock dla proxy - gdy zmienna $MOCK jest ustawiona na true, proxy zwraca z góry zadane wartości dla przewidzianych funkcji - na razie jest dla mapy, dla całej reszty rzuci wyjątkiem. Do deployu trzeba zmienić $MOCK na false, żeby przywrócić normalne działanie.
Ogólnie, to przydatna opcja jak się programuje w nocy, jak tramwaje nie jeżdżą ;)

@jacekkow
Copy link
Owner

Dzięki! Przejrzę to pewnie w sobotę.

Prosiłbym jeszcze o potwierdzenie, że udostępniasz te zmiany na licencji BSD: https://github.com/jacekkow/mpk-ttss/blob/master/LICENSE

Mock to dobry pomysł, można potem rozbudować testy integracyjne.

@domints
Copy link
Author

domints commented Apr 21, 2017

W sumie to jednak muszę to przerobić, logikę też - chyba lepiej będzie przenosić feature ukrytych pojazdów na inną warstwę, która będzie niewidoczna, powinno to działać natychmiastowo, w odróżnieniu od aktualnego rozwiązania ;)

@domints
Copy link
Author

domints commented Apr 21, 2017

Ale chciałbym, żebyś wypowiedział się na temat koncepcji takiego menu pojawiającego się z prawej po kliknięciu przycisku. Przycisk wg. mnie wygląda nawet estetycznie, tylko menu trzeba poprawić.
No i na urządzeniach mobilnych trzeba by ukryć cały div z mapą, a menu pokazać jako pełnoekranowy formularz.

Co do BSD, to tak, udostępniam te zmiany na licencji BSD, z resztą na forku jest ta sama licencja i BSD nie przewiduje udostępniania zmian na innej licencji niż BSD.

@jacekkow
Copy link
Owner

Przejrzałem - uwagi mam takie:

  • zamiast pokazywać/ukrywać obrazek, lepiej ustawić styl na poprzedni/null i poinformować o zmianach/przerysuje mapę (nie przenosić do innej warstwy!) - coś takiego:
    • stworzyć funkcję, która ustawia styl dla danego feature (załóżmy póki co, że dla pojazdu),
    • zamiast hideFeatureImage zrobić feature.setStyle(null),
    • zamiast showFeatureImage użyć tej nowej funkcji,
    • sprawdzić czy source.changed() wystarczy, by przerysować - jeśli tak, użyć.
  • parseVehicle(feature.getId().substr(1)) to powinno być po prostu feature.get('vehicle_type'),
  • mock - dobry pomysł, ale zamiast zmiennej, proponuję do proxy.php dodać tylko trzy linijki:
    if(xxx) {
      include('mock/proxy.php');
      die();
    }
    
    a całą resztę (w szczególności poszczególne zwracane JSON-y) wstawić do osobnych plików w nowym katalogu mock
  • w funkcji hash() trzeba uwzględnić, że wybrany tramwaj może być ukryty - proponuję w takim wypadku ustawić filtr na "wszystkie",
  • zamiast osobnej opcji "wszystkie" lepsze byłyby przyciski typu "wszystkie / żaden", które zaznaczają/odznaczają wszystkie pola wyboru - uproszczą ci funkcję i poprawią obsługę,
  • przy filtrowaniu tramwajów, trzeba sprawdzić, czy nie ma "dymka" dla wybranego tramwaju - jeśli jest - wypadałoby go ukryć,
  • "nowy" tramwaj na mapie (dajmy na to wyjeżdżający z zajezdni) nie zostanie przefiltrowany - trzeba to robić w funkcji updateVehicles,
  • przycisk z menu wyświetla się w tym samym miejscu, co ewentualny komunikat błędu i go przykrywa.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants