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" %>