From fcbe4880955bdf663d0b8c6edae0dcf5d24c519e Mon Sep 17 00:00:00 2001 From: Geoffrey POUZET Date: Sun, 25 Oct 2020 15:08:53 +0100 Subject: [PATCH] Can edit animal's name. --- .../controller/AnimalController.java | 22 +++++ .../controller/IndexController.java | 2 + .../dao/IAnimalDao.java | 2 + .../dao/bdd/postgres/AnimalDao.java | 34 +++++++ .../services/IServiceAnimal.java | 2 + .../services/ServiceAnimal.java | 5 ++ src/main/resources/messages.properties | 4 + src/main/resources/messages_en.properties | 4 + src/main/resources/messages_fr.properties | 4 + src/main/webapp/vue/animal_list.jsp | 88 ++++++++++++++----- 10 files changed, 145 insertions(+), 22 deletions(-) diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/controller/AnimalController.java b/src/main/java/fr/geoffrey/medical_training_tracker/controller/AnimalController.java index a41cd6c..0b8ee95 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/controller/AnimalController.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/controller/AnimalController.java @@ -82,6 +82,28 @@ public class AnimalController { return ret; } + @RequestMapping(value = IndexController.URL_ANIMAL_EDIT, method = RequestMethod.POST) + public String doPostEditAnimal(final ModelMap pModel, HttpSession httpSession, + @PathVariable(value = "animal_id") final int animalId, + @RequestParam(name = "name", required = true) String name) { + + String ret; + if (LoginController.isUserAlreadyAuth(httpSession)) { + Authentication authentication = (Authentication) httpSession.getAttribute(IndexController.SESSION_ATTRIBUTE_AUTHENTICATION); + Object oUserDetails = authentication.getPrincipal(); + if (oUserDetails instanceof UserDetails) { + UserDetails userDetails = (UserDetails) oUserDetails; + + serviceAnimal.changeAnimalName(animalId, userDetails.getUsername(), name); + } + ret = IndexController.URL_REDIRECT + IndexController.URL_ANIMAL_LIST; + } else { + ret = IndexController.URL_REDIRECT + IndexController.URL_LOGIN; + } + + return ret; + } + @RequestMapping(value = IndexController.URL_ANIMAL_DELETE, method = RequestMethod.POST) public String doGetDeleteAnimal(final ModelMap pModel, HttpSession httpSession, @PathVariable(value = "animal_id") final int animalId) { String ret; diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/controller/IndexController.java b/src/main/java/fr/geoffrey/medical_training_tracker/controller/IndexController.java index ecc6e96..52733e7 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/controller/IndexController.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/controller/IndexController.java @@ -59,6 +59,8 @@ public class IndexController { public static final String URL_ANIMAL_CARES_DELETE = "/animal/{animal_id}/delete/care/{care_id}"; public static final String URL_ANIMAL_CONSENT_BEHAVIOR_DELETE = "/animal/{animal_id}/delete/consent_behavior/{consent_behavior_id}"; public static final String URL_ANIMAL_PROGRESSION_DELETE = "/animal/{animal_id}/delete/progression/{progression_id}"; + // Edit URL + public static final String URL_ANIMAL_EDIT = "/animal/edit/{animal_id}"; public static final String URL_REDIRECT = "redirect:"; // diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/dao/IAnimalDao.java b/src/main/java/fr/geoffrey/medical_training_tracker/dao/IAnimalDao.java index e886dcd..eb1c4c5 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/dao/IAnimalDao.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/dao/IAnimalDao.java @@ -14,4 +14,6 @@ public interface IAnimalDao extends CommonDao { public void addAnimal(String name, String owner); public void deleteAnimal(int animalId, String owner); + + public void changeName(int animalId, String owner, String name); } diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/AnimalDao.java b/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/AnimalDao.java index 47958d7..500d70a 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/AnimalDao.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/AnimalDao.java @@ -201,4 +201,38 @@ public class AnimalDao extends PostgresSqlDao implements IAnimalDao { } } } + + @Override + public void changeName(int animalId, String owner, String name) { + Connection conn = null; + PreparedStatement statement = null; + try { + conn = mDataSource.getConnection(); + statement = conn.prepareStatement("UPDATE "+TABLE_NAME+" SET name = ? WHERE id = ? AND owner = ?;"); + statement.setString(1, name); + statement.setInt(2, animalId); + statement.setString(3, owner); + System.out.println(IndexController.LOG_TAG + " SQL -> " + statement.toString()); + statement.executeUpdate(); + } catch (SQLException ex) { + System.err.println(IndexController.LOG_TAG + " SQLException -> changeName()"); + System.err.println(ex.getMessage()); + ex.printStackTrace(); + } finally { + if (statement != null) { + try { + statement.close(); + } catch (SQLException ex) { + System.err.println(IndexController.LOG_TAG + " Failed close statement -> changeName()"); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException ex) { + System.err.println(IndexController.LOG_TAG + " Failed close connection -> changeName()"); + } + } + } + } } diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/services/IServiceAnimal.java b/src/main/java/fr/geoffrey/medical_training_tracker/services/IServiceAnimal.java index 940401e..2603e42 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/services/IServiceAnimal.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/services/IServiceAnimal.java @@ -27,4 +27,6 @@ public interface IServiceAnimal { public void deleteAnimalConsentBehavior(int animalId, String owner, int consentBehaviorId); public void deleteAnimalProgression(int animalId, String owner, int progressionId); + public void changeAnimalName(int animalId, String owner, String name); + } diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/services/ServiceAnimal.java b/src/main/java/fr/geoffrey/medical_training_tracker/services/ServiceAnimal.java index 76b8cee..be4fa44 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/services/ServiceAnimal.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/services/ServiceAnimal.java @@ -150,4 +150,9 @@ public class ServiceAnimal implements IServiceAnimal { public void addProgression(int animalId, int careId, int consentBehaviorId) { progressionDao.addProgression(animalId, careId, consentBehaviorId); } + + @Override + public void changeAnimalName(int animalId, String owner, String name) { + animalDao.changeName(animalId, owner, name); + } } diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index 5c0551d..cd18c5e 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -89,3 +89,7 @@ animal_behavior.button.delete.tooltip=Delete animal_behavior.button.add.tooltip=Add animal_behavior.add_care=Add care to this consent behavior animal_behavior.add_care.empty_list=No more cares to add +animal_list.animal.edit.tooltip=Edit +animal_list.edit_animal.modal.label=Animal's name: +animal_list.edit_animal.modal.placeholder=New name +modal_button.edit=Edit diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 232d967..16fab5c 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -85,3 +85,7 @@ animal_behavior.button.delete.tooltip=Delete animal_behavior.button.add.tooltip=Add animal_behavior.add_care=Add care to this consent behavior animal_behavior.add_care.empty_list=No more cares to add +animal_list.animal.edit.tooltip=Edit +animal_list.edit_animal.modal.label=Animal's name: +animal_list.edit_animal.modal.placeholder=New name +modal_button.edit=Edit diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties index ed545c7..51c4496 100644 --- a/src/main/resources/messages_fr.properties +++ b/src/main/resources/messages_fr.properties @@ -85,3 +85,7 @@ animal_behavior.button.delete.tooltip=Supprimer animal_behavior.button.add.tooltip=Ajouter animal_behavior.add_care=Ajouter un soin \u00e0 ce comportement de consentement animal_behavior.add_care.empty_list=Aucun soins \u00e0 ajouter +animal_list.animal.edit.tooltip=Modifier +animal_list.edit_animal.modal.label=Nom de l'animal : +animal_list.edit_animal.modal.placeholder=Nouveau nom +modal_button.edit=Modifier diff --git a/src/main/webapp/vue/animal_list.jsp b/src/main/webapp/vue/animal_list.jsp index 2b24201..6214846 100644 --- a/src/main/webapp/vue/animal_list.jsp +++ b/src/main/webapp/vue/animal_list.jsp @@ -4,6 +4,7 @@ <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@ page isELIgnored="false" %> + <%@ include file="base/language.jsp" %> @@ -33,19 +34,24 @@
<%@ include file="base/navbar.jsp" %>

-
-
-

-
+
+
+

+
${animal.getName()}
-
-
- + + +
+