diff --git a/spring_online_calculator/src/main/java/premium_store/controller/DTO/ClientDTO.java b/spring_online_calculator/src/main/java/premium_store/controller/DTO/ClientDTO.java index 1753337..061e438 100644 --- a/spring_online_calculator/src/main/java/premium_store/controller/DTO/ClientDTO.java +++ b/spring_online_calculator/src/main/java/premium_store/controller/DTO/ClientDTO.java @@ -62,6 +62,10 @@ public class ClientDTO { return tanks; } + public Long getIdLastTanks(){ + return tanks.get(tanks.size() - 1).getId(); + } + public void setTanks(List tanks) { this.tanks = tanks; } diff --git a/spring_online_calculator/src/main/java/premium_store/controller/DTO/SupportClientDTO.java b/spring_online_calculator/src/main/java/premium_store/controller/DTO/SupportClientDTO.java new file mode 100644 index 0000000..7ae70a1 --- /dev/null +++ b/spring_online_calculator/src/main/java/premium_store/controller/DTO/SupportClientDTO.java @@ -0,0 +1,72 @@ +package premium_store.controller.DTO; + +import com.fasterxml.jackson.annotation.JsonProperty; +import premium_store.model.GameClient; + +import java.util.List; + +//класс, который соединяет танки клиента в одну строчку (нам так захотелось) +public class SupportClientDTO { + private long id; + private String nickName; + private String email; + private Integer balance; + private Long tankId; + + public SupportClientDTO(){ } + + public SupportClientDTO(GameClient gameClient){ + this.id = gameClient.getId(); + this.nickName = gameClient.getNickName(); + this.email = gameClient.getEmail(); + this.balance = gameClient.getBalance(); + + if(gameClient.getTanks().size() >= 1){ + this.tankId = gameClient.getTanks().get(gameClient.getTanks().size() - 1).getId(); + } + else { + this.tankId = null; + } + } + + @JsonProperty(access = JsonProperty.Access.READ_ONLY) + public long getId(){ + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getNickName(){ + return nickName; + } + + public void setNickName(String nickName) { + this.nickName = nickName; + } + + public String getEmail(){ + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Integer getBalance(){ + return balance; + } + + public void setBalance(Integer balance) { + this.balance = balance; + } + + public Long getTankId(){ + return tankId; + } + + public void setTankId(Long tankId) { + this.tankId = tankId; + } +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/java/premium_store/controller/DTO/SupportTankDTO.java b/spring_online_calculator/src/main/java/premium_store/controller/DTO/SupportTankDTO.java new file mode 100644 index 0000000..673afbe --- /dev/null +++ b/spring_online_calculator/src/main/java/premium_store/controller/DTO/SupportTankDTO.java @@ -0,0 +1,63 @@ +package premium_store.controller.DTO; + +import com.fasterxml.jackson.annotation.JsonProperty; +import premium_store.model.Tank; + +public class SupportTankDTO { + private long id; + private String name; + private Long nationId; + private Long levelId; + private int cost; + + public SupportTankDTO(){} + + public SupportTankDTO(Tank tank){ + this.id = tank.getId(); + this.nationId = tank.getNation().getId(); + this.levelId = tank.getLevel().getId(); + this.name = tank.getName(); + this.cost = tank.getCost(); + } + + @JsonProperty(access = JsonProperty.Access.READ_ONLY) + public Long getId(){ + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName(){ + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Long getNationId(){ + return nationId; + } + + public void setNationId(Long nationId) { + this.nationId = nationId; + } + + public Long getLevelId(){ + return levelId; + } + + public void setLevelId(Long levelId) { + this.levelId = levelId; + } + + public int getCost(){ + return cost; + } + + public void setCost(int cost) { + this.cost = cost; + } +} diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/ClientMvcController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/ClientMvcController.java new file mode 100644 index 0000000..a99375b --- /dev/null +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/ClientMvcController.java @@ -0,0 +1,91 @@ +package premium_store.controller.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; +import premium_store.controller.DTO.*; +import premium_store.service.GameClientService; +import premium_store.service.TankService; + +import javax.validation.Valid; +import java.util.List; + +@Controller +@RequestMapping("/client") +public class ClientMvcController { + private final GameClientService gameClientService; + private final TankService tankService; + + public ClientMvcController(GameClientService gameClientService, TankService tankService){ + this.gameClientService = gameClientService; + this.tankService = tankService; + } + + @GetMapping + public String getClients(Model model){ + model.addAttribute("clients", + gameClientService.findAllClients().stream() + .map(ClientDTO::new) + .toList()); + + return "client"; + } + + @GetMapping(value = {"/edit", "/edit/{id}"}) + public String editClient(@PathVariable(required = false) Long id, Model model){ + if(id == null || id <= 0){ + model.addAttribute("supportClientDTO", new SupportClientDTO()); + } + else { + model.addAttribute("clientId", id); + model.addAttribute("supportClientDTO", new SupportClientDTO(gameClientService.findClient(id))); + } + + List tanks = tankService.findAllTanks().stream() + .map(TankDTO::new) + .toList(); + + model.addAttribute("tanks", tanks); + + return "client-edit"; + } + + @GetMapping(value = {"/tanksOfClient", "/tanksOfClient/{id}"}) + public String editTanksOfClient(@PathVariable(required = false) Long id, Model model){ + if(id == null || id <= 0){ + model.addAttribute("clientDTO", new ClientDTO()); + } + else { + model.addAttribute("clientId", id); + model.addAttribute("clientDTO", new ClientDTO(gameClientService.findClient(id))); + } + + return "tanks-of-client-edit"; + } + + @PostMapping(value = {"", "/{id}"}) + public String saveClient(@PathVariable(required = false) Long id, + @ModelAttribute @Valid SupportClientDTO clientDTO, + BindingResult bindingResult, + Model model){ + if(bindingResult.hasErrors()){ + model.addAttribute("errors", bindingResult.getAllErrors()); + return "client-edit"; + } + + if(id == null || id <= 0){ + gameClientService.addClient(clientDTO.getNickName(), clientDTO.getNickName(), clientDTO.getBalance()); + } else { + gameClientService.updateClient(clientDTO); + } + + return "redirect:/client"; + } + + @PostMapping("/delete/{id}") + public String deleteClient(@PathVariable Long id){ + gameClientService.deleteClient(id); + return "redirect:/tank"; + } +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/LevelMvcController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/LevelMvcController.java new file mode 100644 index 0000000..74f8c8c --- /dev/null +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/LevelMvcController.java @@ -0,0 +1,71 @@ +package premium_store.controller.controller; + +import net.bytebuddy.implementation.bind.MethodDelegationBinder; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; +import premium_store.controller.DTO.FullNationDTO; +import premium_store.controller.DTO.LevelDTO; +import premium_store.controller.DTO.SimpleNationDTO; +import premium_store.service.NationService; +import premium_store.service.TankLevelService; + +import javax.validation.Valid; + +@Controller +@RequestMapping("/level") +public class LevelMvcController { + private final TankLevelService levelService; + + public LevelMvcController(TankLevelService levelService){ + this.levelService = levelService; + } + + @GetMapping + public String getLevels(Model model){ + model.addAttribute("levels", + levelService.findAllLevels().stream() + .map(LevelDTO::new) + .toList()); + return "level"; + } + + @GetMapping(value = {"/edit", "/edit/{id}"}) + public String editLevel(@PathVariable(required = false) Long id, Model model){ + if(id == null || id <= 0){ + model.addAttribute("levelDTO", new LevelDTO()); + } + else { + model.addAttribute("levelId", id); + model.addAttribute("levelDTO", new LevelDTO(levelService.findLevel(id))); + } + + return "level-edit"; + } + + @PostMapping(value = {"", "/{id}"}) + public String saveLevel(@PathVariable(required = false) Long id, + @ModelAttribute @Valid LevelDTO levelDTO, + BindingResult bindingResult, + Model model){ + if(bindingResult.hasErrors()){ + model.addAttribute("errors", bindingResult.getAllErrors()); + return "level-edit"; + } + + if(id == null || id <= 0){ + levelService.addLevel(levelDTO.getLevel()); + } else { + levelService.updateLevel(id, levelDTO.getLevel()); + } + + return "redirect:/level"; + } + + @PostMapping("/delete/{id}") + public String deleteLevel(@PathVariable Long id){ + levelService.deleteLevel(id); + return "redirect:/level"; + } +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/java/premium_store/controller/controller/TankMvcController.java b/spring_online_calculator/src/main/java/premium_store/controller/controller/TankMvcController.java new file mode 100644 index 0000000..a1a371a --- /dev/null +++ b/spring_online_calculator/src/main/java/premium_store/controller/controller/TankMvcController.java @@ -0,0 +1,116 @@ +package premium_store.controller.controller; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; +import premium_store.controller.DTO.LevelDTO; +import premium_store.controller.DTO.SimpleNationDTO; +import premium_store.controller.DTO.SupportTankDTO; +import premium_store.controller.DTO.TankDTO; +import premium_store.service.NationService; +import premium_store.service.TankLevelService; +import premium_store.service.TankService; + +import javax.validation.Valid; +import java.util.List; + +@Controller +@RequestMapping("/tank") +public class TankMvcController { + private final TankService tankService; + private final NationService nationService; + private final TankLevelService tankLevelService; + + public TankMvcController(TankService tankService, NationService nationService, TankLevelService tankLevelService){ + this.tankService = tankService; + this.nationService = nationService; + this.tankLevelService = tankLevelService; + } + + @GetMapping + public String getTanks(Model model){ + model.addAttribute("tanks", + tankService.findAllTanks().stream() + .map(TankDTO::new) + .toList()); + + List nations = nationService.findAllNations().stream() + .map(SimpleNationDTO::new) + .toList(); + + model.addAttribute("nations", nations); + + List levels = tankLevelService.findAllLevels().stream() + .map(LevelDTO::new) + .toList(); + + model.addAttribute("levels", levels); + + return "tank"; + } + + @GetMapping(value = {"/edit", "/edit/{id}"}) + public String editTank(@PathVariable(required = false) Long id, Model model){ + if(id == null || id <= 0){ + model.addAttribute("supportTankDTO", new SupportTankDTO()); + } + else { + model.addAttribute("tankId", id); + model.addAttribute("supportTankDTO", new SupportTankDTO(tankService.findTank(id))); + } + + List nations = nationService.findAllNations().stream() + .map(SimpleNationDTO::new) + .toList(); + + model.addAttribute("nations", nations); + + List levels = tankLevelService.findAllLevels().stream() + .map(LevelDTO::new) + .toList(); + + model.addAttribute("levels", levels); + + return "tank-edit"; + } + + @GetMapping("/filteredList/{nation}?{firstLevel}&{secondLevel}") + public String getFilteredTanks(@RequestParam("nation") String nation, + @RequestParam("firstLevel") int firstLevel, + @RequestParam("secondLevel") int secondLevel, + Model model) { + List tanks = tankService.findListTank(nation, firstLevel, secondLevel).stream() + .map(TankDTO::new) + .toList(); + + model.addAttribute("tanks", tanks); + + return "filter"; + } + + @PostMapping(value = {"", "/{id}"}) + public String saveTank(@PathVariable(required = false) Long id, + @ModelAttribute @Valid SupportTankDTO tankDTO, + BindingResult bindingResult, + Model model){ + if(bindingResult.hasErrors()){ + model.addAttribute("errors", bindingResult.getAllErrors()); + return "tank-edit"; + } + + if(id == null || id <= 0){ + tankService.addTank(tankDTO); + } else { + tankService.updateTank(tankDTO); + } + + return "redirect:/tank"; + } + + @PostMapping("/delete/{id}") + public String deleteTank(@PathVariable Long id){ + tankService.deleteTank(id); + return "redirect:/tank"; + } +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/java/premium_store/service/GameClientService.java b/spring_online_calculator/src/main/java/premium_store/service/GameClientService.java index f9b75aa..c476429 100644 --- a/spring_online_calculator/src/main/java/premium_store/service/GameClientService.java +++ b/spring_online_calculator/src/main/java/premium_store/service/GameClientService.java @@ -3,9 +3,12 @@ package premium_store.service; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import premium_store.controller.DTO.ClientDTO; +import premium_store.controller.DTO.SupportClientDTO; import premium_store.model.GameClient; import premium_store.model.Tank; import premium_store.repository.GameClientRepository; +import premium_store.repository.TankRepository; import premium_store.service.exception.ClientNotFoundException; import premium_store.util.validation.ValidatorUtil; @@ -15,10 +18,12 @@ import java.util.Optional; @Service public class GameClientService { private final GameClientRepository gameClientRepository; + private final TankRepository tankRepository; private final ValidatorUtil validatorUtil; - public GameClientService(GameClientRepository gameClientRepository, ValidatorUtil validatorUtil){ + public GameClientService(GameClientRepository gameClientRepository, TankRepository tankRepository, ValidatorUtil validatorUtil){ this.gameClientRepository = gameClientRepository; + this.tankRepository = tankRepository; this.validatorUtil = validatorUtil; } @@ -69,6 +74,25 @@ public class GameClientService { return gameClientRepository.save(currentGameClient); } + @Transactional + public GameClient updateClient(SupportClientDTO clientDTO) { + if (clientDTO.getId() <= 0) { + throw new IllegalArgumentException("Invalid id"); + } + + final GameClient currentGameClient = findClient(clientDTO.getId()); + + currentGameClient.setNickName(clientDTO.getNickName()); + currentGameClient.setEmail(clientDTO.getEmail()); + currentGameClient.setBalance(clientDTO.getBalance()); + + if(clientDTO.getTankId() != null){ + currentGameClient.setTanks(tankRepository.getById(clientDTO.getTankId())); + } + + return gameClientRepository.save(currentGameClient); + } + @Transactional public GameClient deleteClient(Long id) { final GameClient currentGameClient = findClient(id); diff --git a/spring_online_calculator/src/main/java/premium_store/service/TankService.java b/spring_online_calculator/src/main/java/premium_store/service/TankService.java index e44cd86..83e540f 100644 --- a/spring_online_calculator/src/main/java/premium_store/service/TankService.java +++ b/spring_online_calculator/src/main/java/premium_store/service/TankService.java @@ -3,9 +3,13 @@ package premium_store.service; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import premium_store.controller.DTO.SupportTankDTO; +import premium_store.controller.DTO.TankDTO; import premium_store.model.TankLevel; import premium_store.model.Nation; import premium_store.model.Tank; +import premium_store.repository.NationRepository; +import premium_store.repository.TankLevelRepository; import premium_store.repository.TankRepository; import premium_store.service.exception.TankNotFoundException; import premium_store.util.validation.ValidatorUtil; @@ -16,10 +20,14 @@ import java.util.Optional; @Service public class TankService { private final TankRepository tankRepository; + private final NationRepository nationRepository; + private final TankLevelRepository levelRepository; private final ValidatorUtil validatorUtil; - public TankService(TankRepository tankRepository, ValidatorUtil validatorUtil){ + public TankService(TankRepository tankRepository, NationRepository nationRepository, TankLevelRepository levelRepository, ValidatorUtil validatorUtil){ this.tankRepository = tankRepository; + this.nationRepository = nationRepository; + this.levelRepository = levelRepository; this.validatorUtil = validatorUtil; } @@ -31,6 +39,15 @@ public class TankService { return tankRepository.save(tank); } + @Transactional + public Tank addTank(SupportTankDTO tankDTO) { + final Tank tank = new Tank(tankDTO.getName(), nationRepository.getById(tankDTO.getNationId()), + levelRepository.getById(tankDTO.getLevelId()), tankDTO.getCost()); + validatorUtil.validate(tank); + + return tankRepository.save(tank); + } + @Transactional(readOnly = true) public Tank findTank(Long id) { final Optional tank = tankRepository.findById(id); @@ -71,6 +88,22 @@ public class TankService { return tankRepository.save(currentTank); } + @Transactional + public Tank updateTank(SupportTankDTO tankDTO) { + if (tankDTO.getId() <= 0) { + throw new IllegalArgumentException("Invalid id"); + } + + final Tank currentTank = findTank(tankDTO.getId()); + + currentTank.setName(tankDTO.getName()); + currentTank.setNation(nationRepository.getById(tankDTO.getNationId())); + currentTank.setLevel(levelRepository.getById(tankDTO.getLevelId())); + currentTank.setCost(tankDTO.getCost()); + + return tankRepository.save(currentTank); + } + @Transactional public Tank deleteTank(Long id) { final Tank currentTank = findTank(id); diff --git a/spring_online_calculator/src/main/resources/public/css/client.css b/spring_online_calculator/src/main/resources/public/css/client.css new file mode 100644 index 0000000..ec28116 --- /dev/null +++ b/spring_online_calculator/src/main/resources/public/css/client.css @@ -0,0 +1,90 @@ +.add-nation-input{ + padding-left: 10px; + padding-right: 10px; + border: 3px solid; + border-radius: 10px; + border-color: #505050; +} + +.add-level-button{ + border-radius: 10px; + border-color: #505050; + background-color: #FFE430; + font-weight: 900; +} + + +.client-card{ + display: flex; + width: 100%; + padding: 15px; + margin-top: 5px; + border: 5px solid; + border-color: #14A76C; + border-radius: 10px; + opacity: 0.9; + background-color: #151719; + justify-content: space-around; + align-items: center; + font-family: Courier, monospace; + font-weight: 900; +} + +.client-attribute{ + padding: 5px; + border-radius: 10px; + background-color: #FF652F; + font-family: Courier, monospace; + font-weight: 900; + align-items: center; +} + +.client-button-group{ + display: flex; + width: 20%; + justify-content: space-around; + align-items: center; +} + +.client-button{ + padding: 10px; + border-radius: 10px; + background-color: #FF652F; + font-family: Courier, monospace; + font-weight: 900; +} + +.myModal{ + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: none; + background: rgba(0, 0, 0, 0.8); +} + +.myModal.active{ + display: flex; + justify-content: center; + align-items: center; +} + +.myModalContent{ + display: inline-block; + padding: 15px; + background: #FF652F; + border-radius: 16px; + min-width: 300px; + min-height: 100px; + justify-content: space-between; + align-items: center; +} + +.modalButton{ + padding: 5px; + border-radius: 10px; + background-color: #FFE430; + font-family: Courier, monospace; + font-weight: 900; +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/public/css/level.css b/spring_online_calculator/src/main/resources/public/css/level.css new file mode 100644 index 0000000..d272f08 --- /dev/null +++ b/spring_online_calculator/src/main/resources/public/css/level.css @@ -0,0 +1,74 @@ +.level-card{ + display: flex; + width: 100%; + padding: 15px; + margin-top: 5px; + border: 5px solid; + border-color: #14A76C; + border-radius: 10px; + opacity: 0.9; + background-color: #151719; + justify-content: space-around; + align-items: center; + font-family: Courier, monospace; + font-weight: 900; +} + +.level-attribute{ + padding: 5px; + border-radius: 10px; + background-color: #FF652F; + font-family: Courier, monospace; + font-weight: 900; + align-items: center; +} + +.level-button-group{ + display: flex; + width: 20%; + justify-content: space-around; + align-items: center; +} + +.level-button{ + padding: 10px; + border-radius: 10px; + background-color: #FF652F; + font-family: Courier, monospace; + font-weight: 900; +} + +.myModal{ + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: none; + background: rgba(0, 0, 0, 0.8); +} + +.myModal.active{ + display: flex; + justify-content: center; + align-items: center; +} + +.myModalContent{ + display: flex; + padding: 15px; + background: #FF652F; + border-radius: 16px; + min-width: 300px; + min-height: 100px; + justify-content: space-between; + align-items: center; +} + +.modalButton{ + padding: 5px; + border-radius: 10px; + background-color: #FFE430; + font-family: Courier, monospace; + font-weight: 900; +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/public/css/tank.css b/spring_online_calculator/src/main/resources/public/css/tank.css new file mode 100644 index 0000000..2b06edd --- /dev/null +++ b/spring_online_calculator/src/main/resources/public/css/tank.css @@ -0,0 +1,81 @@ +.add-nation-input{ + padding-left: 10px; + padding-right: 10px; + border: 3px solid; + border-radius: 10px; + border-color: #505050; +} + +.tank-card{ + display: flex; + width: 100%; + padding: 15px; + margin-top: 5px; + border: 5px solid; + border-color: #14A76C; + border-radius: 10px; + opacity: 0.9; + background-color: #151719; + justify-content: space-around; + align-items: center; + font-family: Courier, monospace; + font-weight: 900; +} + +.tank-attribute{ + padding: 5px; + border-radius: 10px; + background-color: #FF652F; + font-family: Courier, monospace; + font-weight: 900; + align-items: center; +} + +.tank-button-group{ + display: flex; + width: 20%; + justify-content: space-around; + align-items: center; +} + +.tank-button{ + padding: 10px; + border-radius: 10px; + background-color: #FF652F; + font-family: Courier, monospace; + font-weight: 900; +} + +.myModal{ + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + display: none; + background: rgba(0, 0, 0, 0.8); +} + +.myModal.active{ + display: flex; + justify-content: center; + align-items: center; +} + +.myModalContent{ + display: inline-block; + padding: 15px; + background: #FF652F; + border-radius: 16px; + min-width: 300px; + min-height: 100px; + align-items: center; +} + +.modalButton{ + padding: 5px; + border-radius: 10px; + background-color: #FFE430; + font-family: Courier, monospace; + font-weight: 900; +} \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/client-edit.html b/spring_online_calculator/src/main/resources/templates/client-edit.html new file mode 100644 index 0000000..4fff57d --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/client-edit.html @@ -0,0 +1,64 @@ + + + + + + +
+
+

Генератор клиентов

+
+
+
+ + + + + + + + + + +
+
+
+ + \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/client.html b/spring_online_calculator/src/main/resources/templates/client.html index 566549b..91f0d6f 100644 --- a/spring_online_calculator/src/main/resources/templates/client.html +++ b/spring_online_calculator/src/main/resources/templates/client.html @@ -1,10 +1,54 @@ - + - - Title + + + - +
+
+

Генератор клиентов

+ + Создать клиента + +
+
+

+ Список существующих клиентов: +

+
+
+
+

+

+

+

+
+ +
+
+ +
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/default.html b/spring_online_calculator/src/main/resources/templates/default.html index 6c4bab8..b453385 100644 --- a/spring_online_calculator/src/main/resources/templates/default.html +++ b/spring_online_calculator/src/main/resources/templates/default.html @@ -16,8 +16,8 @@

Мир танков

-
-
+
+
- +
diff --git a/spring_online_calculator/src/main/resources/templates/filter.html b/spring_online_calculator/src/main/resources/templates/filter.html new file mode 100644 index 0000000..566549b --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/filter.html @@ -0,0 +1,10 @@ + + + + + Title + + + + + \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/level-edit.html b/spring_online_calculator/src/main/resources/templates/level-edit.html new file mode 100644 index 0000000..fd346bf --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/level-edit.html @@ -0,0 +1,40 @@ + + + + + + +
+
+

Генератор уровней

+
+
+
+ + + +
+
+
+ + \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/level.html b/spring_online_calculator/src/main/resources/templates/level.html index 566549b..c9a9ab8 100644 --- a/spring_online_calculator/src/main/resources/templates/level.html +++ b/spring_online_calculator/src/main/resources/templates/level.html @@ -1,10 +1,48 @@ - + - - Title + + + - +
+
+

Генератор уровней

+ + Создать уровень + +
+
+

+ Список существующих уровней: +

+
+
+
+

+

+

+
+ +
+
+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/nation-edit.html b/spring_online_calculator/src/main/resources/templates/nation-edit.html index d6f431d..c82f8f2 100644 --- a/spring_online_calculator/src/main/resources/templates/nation-edit.html +++ b/spring_online_calculator/src/main/resources/templates/nation-edit.html @@ -8,6 +8,9 @@
+
+

Генератор наций

+
-

-

+

+

-
+
diff --git a/spring_online_calculator/src/main/resources/templates/tank-edit.html b/spring_online_calculator/src/main/resources/templates/tank-edit.html new file mode 100644 index 0000000..7d31072 --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/tank-edit.html @@ -0,0 +1,63 @@ + + + + + + +
+
+

Генератор танков

+
+ +
+ + + + + + + + + + +
+ +
+ + \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/tank.html b/spring_online_calculator/src/main/resources/templates/tank.html index 566549b..70ba187 100644 --- a/spring_online_calculator/src/main/resources/templates/tank.html +++ b/spring_online_calculator/src/main/resources/templates/tank.html @@ -1,10 +1,93 @@ - + - - Title + + + - +
+
+

Генератор танков

+ + Создать танк + + + +
+
+

+ Список существующих танков: +

+
+
+
+

+

+

+

+

+

+
+ +
+
+ +
+
+
+
+
+ \ No newline at end of file diff --git a/spring_online_calculator/src/main/resources/templates/tanks-of-client-edit.html b/spring_online_calculator/src/main/resources/templates/tanks-of-client-edit.html new file mode 100644 index 0000000..3e1ae47 --- /dev/null +++ b/spring_online_calculator/src/main/resources/templates/tanks-of-client-edit.html @@ -0,0 +1,23 @@ + + + + + + +
+
+
+
+

+

+

+

+

+

+
+
+
+ + \ No newline at end of file