Changeset eac569a
- Timestamp:
- 03/04/23 19:55:18 (21 months ago)
- Branches:
- main
- Children:
- 33b9f30
- Parents:
- 3c7bf5b (diff), f194b4e (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- Prototype Application/Paw5/src/main
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
Prototype Application/Paw5/src/main/java/finki/paw5/service/PetService.java
r3c7bf5b reac569a 2 2 3 3 import finki.paw5.model.entities.Pet; 4 import finki.paw5.web.controllers.PostController;5 4 6 5 import java.util.List; 7 import java.util.Optional;8 6 9 7 public interface PetService { … … 11 9 void save (Pet pet); 12 10 13 List<Pet> findAll();11 List<Pet> listpets(); 14 12 15 Optional<Pet> findById(Integer petId);13 Pet findById(Integer id); 16 14 } -
Prototype Application/Paw5/src/main/java/finki/paw5/service/PostService.java
r3c7bf5b reac569a 2 2 3 3 import finki.paw5.model.entities.Post; 4 5 4 import java.util.List; 6 5 import java.util.Optional; -
Prototype Application/Paw5/src/main/java/finki/paw5/service/implementation/PetServiceImplementation.java
r3c7bf5b reac569a 7 7 8 8 import java.util.List; 9 import java.util.Optional;10 9 11 10 @Service … … 23 22 } 24 23 25 @Override 26 public List<Pet> findAll() { 27 return this.petRepository.findAll(); 28 } 24 public List<Pet> listpets() {return this.petRepository.findAll();} 29 25 30 26 @Override 31 public Optional<Pet> findById(Integer petId) {32 return this.petRepository.findById( petId);27 public Pet findById(Integer id) { 28 return this.petRepository.findById(id).get(); 33 29 } 34 30 } -
Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/HomeController.java
r3c7bf5b reac569a 1 1 package finki.paw5.web.controllers; 2 2 3 import jakarta.servlet.http.HttpServletRequest; 3 4 import org.springframework.stereotype.Controller; 4 5 import org.springframework.web.bind.annotation.GetMapping; … … 10 11 11 12 @GetMapping 12 public String getHomePage(){ 13 public String getHomePage(HttpServletRequest request) { 14 if(request.getSession().getAttribute("user")==null){ 15 return "redirect:/login"; 16 } 13 17 return "home"; 14 18 } 19 15 20 @GetMapping("/aboutUs") 16 public String getSuccessPage() {21 public String getSuccessPage() { 17 22 return "/aboutUs"; 18 23 } -
Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PetController.java
r3c7bf5b reac569a 28 28 public String saveAdoption(@PathVariable Integer id, HttpServletRequest request) { 29 29 30 Pet pet = this.petService.findById(id) .orElseThrow(InvalidPetIdException::new);30 Pet pet = this.petService.findById(id); 31 31 32 32 User user = (User) request.getSession().getAttribute("user"); -
Prototype Application/Paw5/src/main/java/finki/paw5/web/controllers/PostController.java
r3c7bf5b reac569a 1 1 package finki.paw5.web.controllers; 2 3 import finki.paw5.model.entities.PersonalProfile;4 2 import finki.paw5.model.entities.Pet; 5 3 import finki.paw5.model.entities.Post; 6 import finki.paw5.model.entities. Shelter;4 import finki.paw5.model.entities.Employee; 7 5 import finki.paw5.model.enumerations.AgeGroup; 8 6 import finki.paw5.model.enumerations.Gender; … … 37 35 } 38 36 39 @GetMapping(" create-post")37 @GetMapping("/create-post") 40 38 public String get(Model model) { 41 //TODO: vakvo ama za lista so pets 42 // List<Manufacturer> manufacturers = this.manufacturerService.findAll(); 43 // model.addAttribute("manufacturers", manufacturers); 39 model.addAttribute("pets", this.petService.listpets()); 44 40 return "create-post"; 45 41 } 46 42 47 @PostMapping("submit-post") 48 public String savePost(@RequestParam(required = false) String name, 49 @RequestParam String gender, 50 @RequestParam String ageGroup, 51 @RequestParam String size, 52 @RequestParam String species, 43 @PostMapping("/submit-post") 44 public String savePost(@RequestParam(required = false) Integer petId, 45 @RequestParam(required = false) boolean newPetCheckbox, 46 @RequestParam(required = false) String name, 47 @RequestParam(required = false) String gender, 48 @RequestParam(required = false) String ageGroup, 49 @RequestParam(required = false) String size, 50 @RequestParam(required = false) String species, 53 51 @RequestParam(required = false) String breed, 54 52 @RequestParam(required = false) String imageUrl, 55 @RequestParam(required = false) boolean canBeFostered) { 53 @RequestParam(required = false) boolean canBeFostered, 54 HttpServletRequest request) { 56 55 57 Pet pet = new Pet(imageUrl, AgeGroup.valueOf(ageGroup), Size.valueOf(size), breed, name, Species.valueOf(species), Gender.valueOf(gender), canBeFostered, null, 1); 58 this.petService.save(pet); 56 Employee employee = (Employee) request.getSession().getAttribute("user"); 59 57 60 Post post = new Post(LocalDate.now(), imageUrl, pet.getId(), null, 10);//TODO: employee id da se zeme preku session user getid 61 this.postService.save(post); 58 if(newPetCheckbox == true){ 59 60 Pet newPet = new Pet(imageUrl, AgeGroup.valueOf(ageGroup), Size.valueOf(size), breed, name, Species.valueOf(species), Gender.valueOf(gender), canBeFostered, null, employee.getShelterId()); 61 this.petService.save(newPet); 62 63 Post post = new Post(LocalDate.now(), imageUrl, newPet.getId(), null, employee.getId()); 64 this.postService.save(post); 65 66 } else{ 67 68 Pet selectedPet = this.petService.findById(petId); 69 70 Post post = new Post(LocalDate.now(), imageUrl, selectedPet.getId(), null, employee.getId()); 71 this.postService.save(post); 72 73 } 62 74 63 75 return "redirect:/home"; … … 68 80 69 81 List<Post> posts = this.postService.findAll(); 70 List<Pet> pets = this.petService. findAll();82 List<Pet> pets = this.petService.listpets(); 71 83 //model.addAttribute("posts", posts); 72 84 //model.addAttribute("pets",pets); … … 81 93 82 94 Post post = this.postService.findById(id).get(); 83 Pet pet = this.petService.findById(post.getPetId()) .get();95 Pet pet = this.petService.findById(post.getPetId()); 84 96 85 97 //model.addAttribute("pet", pet); -
Prototype Application/Paw5/src/main/resources/templates/aboutUs.html
r3c7bf5b reac569a 1 1 <!DOCTYPE html> 2 <html lang="en" >2 <html lang="en" xmlns:th="http://thymeleaf.org"> 3 3 <head> 4 4 <meta charset="UTF-8"> -
Prototype Application/Paw5/src/main/resources/templates/create-post.html
r3c7bf5b reac569a 1 1 <!DOCTYPE html> 2 2 <html xmlns="http://www.w3.org/1999/xhtml" 3 xmlns:th="http:// www.thymeleaf.org"3 xmlns:th="http://thymeleaf.org" 4 4 xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3" 5 5 xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> … … 7 7 <meta charset="UTF-8"> 8 8 <title>Create a post</title> 9 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> 10 <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> 11 <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script> 12 <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> 13 <script> 14 function addNewPet(addNewPetCheckBox){ 15 16 if(addNewPetCheckBox.checked){ 17 18 document.getElementById("name").disabled = false; 19 document.getElementById("gender").disabled = false; 20 document.getElementById("ageGroup").disabled = false; 21 document.getElementById("size").disabled = false; 22 document.getElementById("species").disabled = false; 23 document.getElementById("breed").disabled = false; 24 document.getElementById("imageUrl").disabled = false; 25 document.getElementById("canBeFostered").disabled = false; 26 27 document.getElementById("petId").disabled = true; 28 } else{ 29 30 document.getElementById("name").disabled = true; 31 document.getElementById("gender").disabled = true; 32 document.getElementById("ageGroup").disabled = true; 33 document.getElementById("size").disabled = true; 34 document.getElementById("species").disabled = true; 35 document.getElementById("breed").disabled = true; 36 document.getElementById("imageUrl").disabled = true; 37 document.getElementById("canBeFostered").disabled = true; 38 39 document.getElementById("petId").disabled = false; 40 41 } 42 } 43 </script> 9 44 </head> 10 45 <body> 46 <header> 47 <nav class="navbar navbar-expand-md navbar-dark bg-dark"> 48 <div class="container"> 49 <a class="navbar-brand" href="/home">Paw 5</a> 50 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarsExampleDefault" 51 aria-controls="navbarsExampleDefault" aria-expanded="false" aria-label="Toggle navigation"> 52 <span class="navbar-toggler-icon"></span> 53 </button> 54 55 <div class="collapse navbar-collapse justify-content-end" id="navbarsExampleDefault"> 56 <ul class="navbar-nav m-auto"> 57 <li class="nav-item m-auto"> 58 <a class="nav-link active" href="/home/aboutUs">About us</a> 59 </li> 60 <li class="nav-item m-auto"> 61 <a class="nav-link active" href="/login">Login</a> 62 </li> 63 <li class="nav-item m-auto"> 64 <a class="nav-link active" href="/register">Register</a> 65 </li> 66 </ul> 67 </div> 68 </div> 69 </nav> 70 </header> 11 71 <h1>Create post</h1> 12 72 <form th:action="@{/submit-post}" method="post"> 13 73 14 74 <div> 15 <label for="pet">Selet pet:</label> 16 <select id="pet"> 75 <label for="petId">Select pet:</label> 76 <select id="petId" name="petId"> 77 <option 78 th:each="pet :${pets}" 79 th:text="${pet.getName()}" 80 th:value="${pet.getId()}"> 81 </option> 17 82 </select> 18 83 </div> 19 84 20 85 <div> 21 <label for="new pet">Add new pet:</label>22 <input id="new pet" name="newpet" placeholder="newpet" type="checkbox">86 <label for="newPetCheckbox">Add new pet:</label> 87 <input id="newPetCheckbox" name="newPetCheckbox" type="checkbox" onclick="addNewPet(this)"> 23 88 </div> 24 89 … … 29 94 name="name" 30 95 class="form-control" 31 placeholder="Enter name"> 96 placeholder="Enter name" 97 disabled> 32 98 </div> 33 99 … … 36 102 <select id="gender" 37 103 name="gender" 38 class="form-control"> 104 class="form-control" 105 disabled> 39 106 <option value = "MALE">male</option> 40 107 <option value = "FEMALE">female</option> … … 46 113 <select id="ageGroup" 47 114 name="ageGroup" 48 class="form-control"> 115 class="form-control" 116 disabled> 49 117 <option value = "YOUNG">young</option> 50 118 <option value = "ADULT">adult</option> … … 57 125 <select id="size" 58 126 name="size" 59 class="form-control"> 127 class="form-control" 128 disabled> 60 129 <option value = "XSMALL">extra small</option> 61 130 <option value = "SMALL">small</option> … … 70 139 <select id="species" 71 140 name="species" 72 class="form-control"> 141 class="form-control" 142 disabled> 73 143 <option value = "CAT">cat</option> 74 144 <option value = "DOG">dog</option> … … 83 153 name="breed" 84 154 class="form-control" 85 placeholder="Enter breed" > 155 placeholder="Enter breed" 156 disabled> 86 157 </div> 87 158 … … 92 163 name="imageUrl" 93 164 class="form-control" 94 placeholder="Enter image URL"> 165 placeholder="Enter image URL" 166 disabled> 95 167 <!-- <label for="upload">Image:</label> 96 168 <input id="upload" type="file" accept="image/*"> … … 104 176 name="canBeFostered" 105 177 class="form-control" 106 value=false> 178 value=false 179 disabled> 107 180 </div> 108 181 -
Prototype Application/Paw5/src/main/resources/templates/home.html
r3c7bf5b reac569a 1 1 <!DOCTYPE html> 2 <html lang="en" >2 <html lang="en" xmlns:th="http://thymeleaf.org"> 3 3 <head> 4 4 <meta charset="UTF-8"> … … 35 35 </nav> 36 36 </header> 37 37 <div> 38 <form method="get" th:action="@{'/create-post'}"> 39 <button id="submit" type="submit">Create an Adoption Post</button> 40 </form> 41 </div> 38 42 <div> 39 43 <h1>Welcome to Paw 5</h1> -
Prototype Application/Paw5/src/main/resources/templates/login.html
r3c7bf5b reac569a 1 1 <!DOCTYPE html> 2 <html lang="en" >2 <html lang="en" xmlns:th="http://thymeleaf.org"> 3 3 <head> 4 4 <meta charset="UTF-8"> -
Prototype Application/Paw5/src/main/resources/templates/register.html
r3c7bf5b reac569a 1 1 <!DOCTYPE html> 2 <html lang="en" xmlns:th="http:// www.thymeleaf.org">2 <html lang="en" xmlns:th="http://thymeleaf.org"> 3 3 <head> 4 4 <meta charset="UTF-8">
Note:
See TracChangeset
for help on using the changeset viewer.