Changes between Version 14 and Version 15 of UseCasePrototypeImplementation
- Timestamp:
- 02/05/22 12:03:09 (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
UseCasePrototypeImplementation
v14 v15 34 34 [[Image("createPlannerPrototype.png")]] 35 35 \\ 36 1. На адреса http://localhost:8080/create/planner се наоѓаат сите креирани планери (таа листа од планери е поставена како атрибут во модел). На оваа страница има и линк "Create initial planner" кој е дефиниран во create-homepagе.html документот и кој е href линк кој пренасочува на друга страница: http://localhost:8080/create . Во Planner Controller-от, кој не е RestController туку Controller, е креиран GET методот за земање и прикажување на формата за креирање нов планер кој враќа create-planner html документ. Во овој темплејт има поле за внес на име и опис, и копче "Submit". По клик на копчето "Submit", кое е вметнато во POST форма во create-planner.html, се прави action="create/planner" на метод дефиниран во контролерот. Ова е POST метод кој како RequestParam ги прима опис и име. Се повикува методот за креирање на планер од plannerService и се враќа redirect:/create/planner.36 1. На адреса http://localhost:8080/create/planner се наоѓаат сите креирани планери (таа листа од планери е поставена како атрибут во модел). На оваа страница има и линк "Create initial planner" кој е дефиниран во create-homepagе.html документот и кој е href линк кој пренасочува на друга страница: http://localhost:8080/create . Во Create Planner Controller-от, кој не е RestController туку Controller, е креиран GET методот за земање и прикажување на формата за креирање нов планер кој враќа create-planner html документ. Во овој темплејт има поле за внес на име и опис, и копче "Submit". По клик на копчето "Submit", кое е вметнато во POST форма во create-planner.html, се прави action="create/planner" на метод дефиниран во контролерот. Ова е POST метод кој како RequestParam ги прима опис и име. Се повикува методот за креирање на планер од plannerService и се враќа redirect:/create/planner. 37 37 38 38 … … 59 59 ||= **Забелешки** =|| / || 60 60 1. Корисникот - турист ажурира планер 61 На адреса http://localhost:8080/create/planner се наоѓаат сите креирани планери (таа листа од планери е поставена како атрибут во модел). Кај секој card од планери има копче "Edit" кое е линк кој го зема id-то на планерот и пренасочува на друга страница th:href="@{/create/planner/{id}(id=${plan.getId()})}". На оваа адреса /create/planner/{id} , се прави GetMapping на методот editShow, каде како аргументи се земени id-то на планерот и Model класата. Во овој метод во Planner Controller-от се креира инстанца од Planner моделот, се повикува plannerService со методот findById за да може да се земе соодветниот планер. Оваа инстанца се става како атрибут на моделот и се враќа edit-return.html. Во овој html се наоѓаат и двете полиња за име и опис како, копчето за зачувување на формата и линк за додавање нови локации кои ги гледа корисникот. Во полињата е прикажана земената вредност за име/опис од планерот со th:text="*{detailsAboutPlanner.get().getDescription()} и th:value="${detailsAboutPlanner.get().getName()}" . Корисникот може да направи промена во описот и името и/или да одбере61 На адреса http://localhost:8080/create/planner се наоѓаат сите креирани планери (таа листа од планери е поставена како атрибут во модел). Кај секој card од планери има копче "Edit" кое е линк кој го зема id-то на планерот и пренасочува на друга страница th:href="@{/create/planner/{id}(id=${plan.getId()})}". На оваа адреса /create/planner/{id} , се прави GetMapping на методот editShow, каде како аргументи се земени id-то на планерот и Model класата. Во овој метод во Create Planner Controller-от се креира инстанца од Planner моделот, се повикува plannerService со методот findById за да може да се земе соодветниот планер. Оваа инстанца се става како атрибут на моделот и се враќа edit-return.html. Во овој html се наоѓаат и двете полиња за име и опис како, копчето за зачувување на формата и линк за додавање нови локации кои ги гледа корисникот. Во полињата е прикажана земената вредност за име/опис од планерот со th:text="*{detailsAboutPlanner.get().getDescription()} и th:value="${detailsAboutPlanner.get().getName()}" . Корисникот може да направи промена во описот и името и/или да одбере да ја посети формата за генерирање предлог локации со кликнување на линкот "Add location". Доколку внесе нови податоци за име и опис или воопшто не ги промени, а кликне на копчето "Edit save", тогаш се прави POST request кој ја ажурира промената и се пренасочува корисникот "redirect:/create/planner". Доколку корисникот кликне на линкот "Add location", тогаш се пренасочува на адреса http://localhost:8080/create/locations каде се наоѓа формата за пополнување и селектирање податоци. Со клик на копчето "Create my planner" се прави GET request кој како параметри ги прима вредностите на полињата од формата (категории, придружба, број на денови и дестинација). Во методот allLocations() се прави проверка и дали е избран регион или град и преку plannerService се повикува соодветен метод за извлекување локации. Потоа, кориникот се пренасочува на адреса http://localhost:8080/create/trip/locations каде се излистани локациите и опција за преглед на детали. Корисникот може да погледне детали за локацијата, така што тогаш се повикува методот seeDetailsAboutLocation од Create Planner Controller-от, е кој е GET метод и во модел се става објект од Location id.