Wdrożenie projektu
15 godz. 6 min · UI, UX i Webdesign
Krzysiek PiekarzAutomation Specialist / No-code DeveloperMateriał szkoleniowy został zaprojektowany tak, aby mogło z niego skorzystać jak najszersze grono odbiorców. Nieważne czy jesteś totalnym laikiem, czy też posiadasz już wiedzę z zakresu programowania lub designu, na pewno znajdziesz tu coś dla siebie. A więc kto jeszcze może skorzystać z wiedzy zawartej w tym kursie?
W tej lekcji kontynuujemy naszą pracę z widokami Dashboard dla hosta i oczywiście
rozpoczynamy od pierwszego, czyli od listingu.
Ja już przygotowałem odpowiedni full state.
Jeżeli się przełącza to jak widzisz nie ma tutaj nic trudnego.
Jest to znowu ponowienie tego co w zasadzie robiliśmy.
Ja sobie skopiowałem XML element
z booking z repo, zamieniłem tylko nazwę na tych przyciskach.
Zostawiłem sortowanie po dacie, a tutaj
wrzuciłem repeat Grupę z listingu to akurat skopiowałem sobie ze strony
search, wkleiłem tutaj i oczywiście odpowiednio dostosowałem style
dla widoków mobilnych tak aby ta lista się tam odpowiednio prezentowała.
Możesz sobie zerknąć na mój edytor, ale myślę, że poradzisz sobie z tym sam.
Nie ma tutaj nic trudnego, oczywiście dla
odpowiednich condition all i wyświetlamy taki element.
I oczywiście nie możemy zapomnieć o tym,
aby działał ten przycisk przełączania do empty state.
Natomiast nie to jest najważniejsze,
ponieważ myślę, że z tą częścią radził sobie w zupełności sam.
Ja chciałbym, aby ta lekcja była nieco
bardziej interesująca, dlatego też dodałem tutaj nową stronę,
którą będziemy otwierać po kliknięciu w przycisk New Listing tutaj.
W tym zawiera element.
Albo tutaj właśnie za pomocą naszego bara.
Ta strona nazywa sie u mnie New listing.
Jeżeli sobie kliknę.
To otwiera mi się taki formularz, za
pomocą którego nasz host będzie mógł dodać właśnie nowy listing.
Zależało mi na tym, aby pokazać Ci jak w
prosty sposób możesz przygotować właśnie taki stopniowy formularz.
Jak widzisz mam tutaj informację, na którym kroku aktualnie jestem.
Mogę się przełączać pomiędzy tymi krokami?
Ten pasek postępu nam się tutaj odpowiednio dostosowuje.
Dlaczego Ja utworzyłem to w zasadzie jako nową stronę?
Ponieważ zależało mi na tym, aby host miał
jak najmniej rozpraszaczy w momencie, kiedy będzie wystawiał nową ofertę.
Dlatego też jak widzisz uprościłem do absolutnego minimum.
Jest to tylko logo i przycisk Cancel.
Po jego kliknięciu wracamy do Dashboard do widoku Hosting Things.
Natomiast tutaj za pomocą tych guzików
mogę się przełączać pomiędzy kolejnymi krokami.
Jak widzisz, za każdym razem jest tutaj coś innego.
Natomiast znów,
żeby nie marnować tutaj zbyt wiele czasu, ja większość grup wykorzystałem po prostu
z tych, które już mieliśmy wcześniej przygotowane, głównie z naszego Popup u na
stronie serii, gdzie dodawaliśmy odpowiednie filtry.
Jak widzisz, jeżeli wróciłbym do pierwszego.
To mam tutaj property type type of place
po prostu żywcem skopiowane z tego popup u.
Następnie mamy tutaj liczbę gości, łóżek, łazienek.
Kolejno nasz host będzie mógł podać
lokalizację takiego lokalu oraz ustalić jego cenę za noc.
Następnym kroku, kiedy będziemy mieć już
zaimplementowaną odpowiednią lokalizację i mapkę, będziemy mogli osiedlać pozycję
jego listingu na mapie, aby mógł ją potwierdzić.
Kolejna może wskazać udogodnienia oraz języki, z jakich korzysta.
W kolejnym kroku będzie mógł wysłać zdjęcie, a tutaj po prostu już na sztywno
ustawiłem jakąś fotkę tak aby to fajnie wyglądało.
Natomiast w sprincie numer 2 zadbamy o to,
aby dodać pixel order i odpowiednio to obsługiwać.
Podobnie zresztą zrobiłem w kolejnym kroku dałem tutaj po prostu repeat, grupę
oraz listing i wyciągam sobie stąd tylko obrazki oraz tą ikonkę, za pomocą której w
przyszłości nasz host będzie mógł usunąć to zdjęcie, które mu nie pasuje.
Te przyciski też tutaj nic nie robią.
One są na razie po prostu dodane, tylko aby za modelować taki wygląd.
Kolejny krok to tutaj prosimy o podanie
tytułu i opisu takiego listingu i w ostatnim kroku
wskazania właśnie feature ów, jakie oferuje dla swojego listingu.
A guzik Publish będzie nas przenosił z powrotem.
To dashboard tutaj właśnie do widoku Listing.
Natomiast jak skonstruowana jest ta strona?
Otóż przejdźmy do edytora.
Przejdźmy do strony New Listing.
Już Ci pokazuję co tutaj zrobiłem.
Mam na Page listing ustawiony standardowo Layout jest to Row 1440.
Tutaj wkleiłem sobie RS.
Następnie odpiąłem go od instancji tylko po to, aby zostawić w środku.
Jak widzisz mam tutaj tylko container.
Grupę na logo wrapper.
Z niej usuwałem wszelkie conditions, aby
ona się nie ukrywała w określonych rozdzielczościach.
Dodatkowo zostawiłem tutaj tą grupę na etc group.
Natomiast do środka wstawiłem tylko ten przycisk Cancel.
Wrzuciłem właśnie ten odnośnik do naszego menu jak i samo menu.
To kolejna.
Powiesiłem sobie właśnie taki
mega uproszczony i zrobiłem z niego footer tylko dodałem border na górze.
W środku mam tylko i wyłącznie footer container.
A w nim umieszczony tekst,
który odnosi się do aktualnego kroku oraz progress bara.
Teraz Ci pokażę jak to jest w ogóle skonstruowane, żeby to całość działała.
Cały ten multi step form
musimy tutaj dla całego tego elementu dodać odpowiednie staty.
Ja standardowo przypisałem sobie do page wrapper i są to dwa oba typu number.
Pierwszy nosi nazwę Current Step, czyli
aktualny krok na którym jesteśmy, a drugi to Total Steps, czyli maksymalna
ilość kroków jakie przewidujesz w swoim formularzu.
U mnie domyślnie jest ich dziewięć,
a zaczynamy właśnie od Default value dla Current Step Równego 1.
W ten sposób w tym tekście możemy się do tego odnieść.
Widzisz, mam tutaj sklep wpisany na sztywno.
Następnie wyciągamy sobie wartość Current Step łamaną na Page Wrapper Total Steps.
Natomiast żeby ten Progress bar nam tutaj
odpowiednio zadziałał i dostosowywał się do tych wartości,
to musimy zastosować taki dosyć skomplikowany na pierwszy rzut oka zapis.
Natomiast jest on niesamowicie prosty.
W pierwszej kolejności musimy 100%, bo taką wartość maksymalną może mieć nasz
Progress Bar podzielić sobie na liczbę kroków.
Natomiast jeżeli wpisał byś tutaj ręcznie to ja sobie tak skopiuje tą wartość.
Całe to expression.
Wyczyszczę i zobaczę jeżeli chciał bym tutaj wpisać 100.
I teraz podzielić to.
Liczba kroków, to nie mam tutaj żadnej opcji.
Nic mi się więcej nie pojawia, Nie mogę z tym nic więcej zrobić.
Dlatego też mogę wykorzystać tutaj tę opcję arbitrażu i tekst.
I w ten sposób tu wpisać sobie 100.
Normalnie po prostu na sztywno.
I teraz mogę taki tekst przekonwertować na wartość liczbową.
Czyli mamy tu już storage bazę.
I teraz dopiero mogę zastosować
te operacje matematyczne, czyli najpierw podzielić to przez liczbę kroków.
Przywróćmy sobie to moje pierwotne
wyrażenie i rozbijemy je tutaj na poszczególne kroki.
A więc mamy tutaj wpisane na sztywno 100.
Które zamieniamy na wartość liczbową.
W ten sposób możemy zastosować tutaj dzielenie.
Podzielić to przez.
Total Steps, czyli maksymalną liczbę kroków, jaką Twój będzie miał Twój
formularz, a następnie mnożymy to przez Karen Step, dzięki czemu jeżeli będziemy
się przełączać, to będziemy właśnie tą wartość sobie zwiększać.
To zresztą właśnie mogę Ci pokazać, jeżeli przejdziemy sobie tutaj, odświeżamy.
Do listingu.
Jak widzisz mamy tutaj 100% podzielone na
9 razy 1, bo to jest karnet step karnet step jest równy 1.
W tym momencie przechodzę do następnego kroku i mam tu
właśnie to Wartość pomnożona przez 2, potem przez 3 itd aż do końca.
Wracamy do edytora, a więc tutaj na futer mamy z głowy.
Przejdźmy do najważniejszej części, czyli w naszym przypadku tutaj Damage rapera.
W środku mamy container.
Oraz kolejne grupy, które będę wyświetlał.
Jak się domyślasz, one są domyślnie ukryte, natomiast wyświetlamy je tylko
wtedy, kiedy Current Step ma odpowiednią wartość dla grupy 1.
Jest to oczywiście tutaj wartość 1.
Tu będę miał niemal standardowy układ, jeżeli sobie to sprawdzisz.
Tak. Cała taka grupa.
Ma tutaj rok 48 pikseli.
Zawsze mamy tutaj nagłówek, zawsze mamy
grupę etc, w której będzie albo 1 albo 2 przyciski w zależności od kroku.
A w środku mamy grupę z contentem Rock up 32 piksele.
I tu najczęściej właśnie będę umieszczał konkretny content.
W większości przypadków jak sam zaraz
zobaczysz będą to grupy skopiowane bezpośrednio z naszego popup u.
Natomiast tak, żeby te odstępy były tutaj
odpowiednie, to ja sobie dla wszystkich tych tekstów ustawiłem Lens Passing na 1.
W ten sposób.
Jeżeli stosujemy tutaj divide
to mamy odpowiedni odstęp pomiędzy tymi elementami.
Jeżeli zastosował byś tutaj jakieś większe elementy passing to jak widzisz dodawany
jest tutaj taki odstęp od góry i od dołu tego tekstu.
My nie chcemy mieć niczego takiego, a więc wracamy do 1 ki.
Grupie mamy odstęp 16 pikseli i to w zasadzie wszystko.
Natomiast tak jeżeli utworzysz sobie taką jedną grupę, to przycisk next.
Ja skonstruowałem go w ten sposób, że
dałem mu minimalną szerokość i to content start.
Edit Workflow I w tym przypadku zmieniasz sobie custom state developera w ten
sposób, że odnosimy się tak, tak, a Rent step i następnie tutaj value przekazujemy
Page wrapper Karen Step, czyli jego aktualną wartość.
Jaką właśnie ma. W momencie kliknięcia w ten przycisk +1.
Jak się domyślasz, przycisk Back będzie obejmował 1.
A więc będzie sobie pobierał aktualną wartość i dodawał Albo podejmował 1.
Jeżeli skonstruował jeszcze jedną taką
grupę, to po prostu skopiuję ją sobie razem z workflow i powiem
w ten sposób będzie Ci dużo łatwiej z tym pracować, bo mam np.
grupę numer 2, gdzie są już 2 przyciski i odpowiednio powielone to workflow.
Jeżeli właśnie będziesz tą grupę pobierał
razem z workflow, to nie będziesz musiał ręcznie ustawiać ich dla tych przycisków.
Babel zadba o to, aby to powielić.
Jedyne co musisz zrobić to oczywiście zadbać o odpowiednie wyświetlanie takiej
grupy i tylko zmianę tych nazw przycisków na odpowiedni krok.
Oczywiście nic nie stoi na przeszkodzie,
żebyś zamiast takiego rozbudowanego formularza stworzył po prostu jedną stronę
i zamiast tych dziesięciu grup, które ja mam tutaj, która pokazuje na odpowiednich
krokach, wyświetlił to po prostu w formie jednej długiej strony.
Natomiast mówię to jest moja inwencja twórcza.
Chciałbym cię w tej lekcji nauczyć czegoś
nowego i pokazać, że takie multi step forms, Babel wymagają trochę pracy.
Jak widzisz, nie są zbyt skomplikowane.
Wystarczy tylko prosta technika odpowiedniego przełączania się pomiędzy
tymi krokami i dostosowania sobie właśnie np.
progress bara do tego, aby wyświetlał właściwe kroki.
Znów zachęcam Cię do tego, abyś w
pierwszej kolejności spróbował przeklikać się przez ten formularz, który ja
stworzyłem i spróbował go odwzorować bez zaglądania do mojego edytora.
Natomiast jeżeli będziesz miał jakieś
problemy, coś będzie niejasne, no to oczywiście wtedy możesz sobie to tutaj
sprawdzić, porównać Twoje rozwiązanie z moim i wprowadzić odpowiednie poprawki.
A ja dziękuję Ci za uwagę i widzimy się w kolejnej lekcji.