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 a1e5f57..2e0db0d 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 @@ -248,7 +248,7 @@ public class AnimalController { } @RequestMapping(value = IndexController.URL_ANIMAL_EDIT_CONSENT_BEHAVIOR, method = RequestMethod.POST) - public String doPostEditAnimal(final ModelMap pModel, HttpSession httpSession, + public String doPostEditConsentBehavior(final ModelMap pModel, HttpSession httpSession, @PathVariable(value = "animal_id") final int animalId, @PathVariable(value = "consent_behavior_id") final int consentBehaviorId, @RequestParam(name = "name", required = true) String name, @@ -328,6 +328,44 @@ public class AnimalController { return ret; } + @RequestMapping(value = IndexController.URL_ANIMAL_EDIT_PROGRESSION, method = RequestMethod.POST) + public String doPostEditProgression(final ModelMap pModel, HttpSession httpSession, + @PathVariable(value = "animal_id") final int animalId, + @PathVariable(value = "progression_id") final int progressionId, + @RequestParam(name = "progression_by_me", required = true) String progressionByMe, + @RequestParam(name = "progression_by_someone_else", required = true) String progressionBySomeoneElse, + @RequestParam(name = "progression_by_veterinary", required = true) String progressionByVeterinary, + @RequestParam(name = "care_id", required = true) int careId, + @RequestParam(name = "consent_behavior_id", required = true) int consentBehaviorId, + @RequestParam(value = "page", required = true) final String pageFrom) { + + 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.updateProgression(animalId, userDetails.getUsername(), progressionId, progressionByMe, progressionBySomeoneElse, progressionByVeterinary); + } + + if (pageFrom.equals("care")) { + ret = IndexController.URL_REDIRECT + IndexController.URL_ANIMAL_CARE + .replaceAll("\\{care_id\\}", careId + ""); + } else if (pageFrom.equals("consent_behavior")) { + ret = IndexController.URL_REDIRECT + IndexController.URL_ANIMAL_BEHAVIOR + .replaceAll("\\{consent_behavior_id\\}", consentBehaviorId + ""); + } else { + ret = IndexController.URL_REDIRECT + IndexController.URL_ANIMAL_CARES_AND_BEHAVIORS_LIST; + } + ret = ret.replaceAll("\\{animal_id\\}", animalId + ""); + } else { + ret = IndexController.URL_REDIRECT + IndexController.URL_LOGIN; + } + + return ret; + } + @RequestMapping(value = IndexController.URL_ANIMAL_PROGRESSION_DELETE, method = RequestMethod.POST) public String doPostDeleteProgression(final ModelMap pModel, HttpSession httpSession, @PathVariable(value = "animal_id") final int animalId, 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 a630cb4..5f3dc16 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 @@ -63,6 +63,7 @@ public class IndexController { public static final String URL_ANIMAL_EDIT = "/animal/{animal_id}/edit"; public static final String URL_ANIMAL_EDIT_CARE = "/animal/{animal_id}/edit/care/{care_id}"; public static final String URL_ANIMAL_EDIT_CONSENT_BEHAVIOR = "/animal/{animal_id}/edit/consent_behavior/{consent_behavior_id}"; + public static final String URL_ANIMAL_EDIT_PROGRESSION = "/animal/{animal_id}/edit/progression/{progression_id}"; public static final String URL_REDIRECT = "redirect:"; // diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/dao/IProgressionDao.java b/src/main/java/fr/geoffrey/medical_training_tracker/dao/IProgressionDao.java index b2fa9f4..0cb30b9 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/dao/IProgressionDao.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/dao/IProgressionDao.java @@ -21,4 +21,6 @@ public interface IProgressionDao extends CommonDao { public void fillAnimalProgressionByVeterinary(Animal animal, String progressionByVeterinary); public void addProgression(int animalId, int careId, int consentBehaviorId); + + public void updateProgression(int animalId, String owner, int progressionId, String progressionByMe, String progressionBySomeoneElse, String progressionByVeterinary); } diff --git a/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/ProgressionDao.java b/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/ProgressionDao.java index 60c186d..68096c0 100644 --- a/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/ProgressionDao.java +++ b/src/main/java/fr/geoffrey/medical_training_tracker/dao/bdd/postgres/ProgressionDao.java @@ -691,4 +691,42 @@ public class ProgressionDao extends PostgresSqlDao implements IProgressionDao { } } } + + @Override + public void updateProgression(int animalId, String owner, int progressionId, String progressionByMe, String progressionBySomeoneElse, String progressionByVeterinary) { + Connection conn = null; + PreparedStatement statement = null; + try { + conn = mDataSource.getConnection(); + statement = conn.prepareStatement("UPDATE "+TABLE_NAME+" SET progression_by_me = ?, progression_by_someone_else = ?, progression_by_veterinary = ? WHERE id = ? AND animal = (" + + "SELECT id FROM "+AnimalDao.TABLE_NAME+" WHERE owner = ? AND id = ?)"); + statement.setString(1, progressionByMe); + statement.setString(2, progressionBySomeoneElse); + statement.setString(3, progressionByVeterinary); + statement.setInt(4, progressionId); + statement.setString(5, owner); + statement.setInt(6, animalId); + System.out.println(IndexController.LOG_TAG + " SQL -> " + statement.toString()); + statement.executeUpdate(); + } catch (SQLException ex) { + System.err.println(IndexController.LOG_TAG + " SQLException -> updateCare()"); + 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 -> updateCare()"); + } + } + if (conn != null) { + try { + conn.close(); + } catch (SQLException ex) { + System.err.println(IndexController.LOG_TAG + " Failed close connection -> updateCare()"); + } + } + } + } } 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 a11b46b..1fa3d49 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 @@ -32,4 +32,6 @@ public interface IServiceAnimal { public void updateCare(int careId, int animalId, String owner, String name, String description); public void updateConsentBehavior(int consentBehaviorId, int animalId, String owner, String name, String description); + public void updateProgression(int animalId, String owner, int progressionId, String progressionByMe, String progressionBySomeoneElse, String progressionByVeterinary); + } 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 3fe04b9..a84145c 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 @@ -165,4 +165,9 @@ public class ServiceAnimal implements IServiceAnimal { public void updateConsentBehavior(int consentBehaviorId, int animalId, String owner, String name, String description) { consentBehaviorDao.updateConsentBehavior(consentBehaviorId, animalId, owner, name, description); } + + @Override + public void updateProgression(int animalId, String owner, int progressionId, String progressionByMe, String progressionBySomeoneElse, String progressionByVeterinary) { + progressionDao.updateProgression(animalId, owner, progressionId, progressionByMe, progressionBySomeoneElse, progressionByVeterinary); + } } diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index e665532..5685b74 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -105,3 +105,8 @@ animal_care_and_behavior.edit_behavior.modal.name.label=Consent behavior name: animal_care_and_behavior.edit_behavior.modal.name.placeholder=Consent behavior name animal_care_and_behavior.edit_behavior.modal.description.label=Consent behavior description: animal_care_and_behavior.edit_behavior.modal.description.placeholder=Consent behavior description (optional) +animal_care.button.edit.tooltip=Edit +animal_consent_behavior.button.edit.tooltip=Edit +animal_care_and_behavior.care_list.empty=No cares yet +animal_care_and_behavior.behavior_list.empty=No consent behaviors yet +animal_list.animal_list.empty=No animals yet diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index f4b512c..f0a5de2 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -101,3 +101,8 @@ animal_care_and_behavior.edit_behavior.modal.name.label=Consent behavior name: animal_care_and_behavior.edit_behavior.modal.name.placeholder=Consent behavior name animal_care_and_behavior.edit_behavior.modal.description.label=Consent behavior description: animal_care_and_behavior.edit_behavior.modal.description.placeholder=Consent behavior description (optional) +animal_care.button.edit.tooltip=Edit +animal_consent_behavior.button.edit.tooltip=Edit +animal_care_and_behavior.care_list.empty=No cares yet +animal_care_and_behavior.behavior_list.empty=No consent behaviors yet +animal_list.animal_list.empty=No animals yet diff --git a/src/main/resources/messages_fr.properties b/src/main/resources/messages_fr.properties index 53ab14c..54afa60 100644 --- a/src/main/resources/messages_fr.properties +++ b/src/main/resources/messages_fr.properties @@ -101,3 +101,8 @@ animal_care_and_behavior.edit_behavior.modal.name.label=Nom du comportement de c animal_care_and_behavior.edit_behavior.modal.name.placeholder=Nom du comportement de consentement animal_care_and_behavior.edit_behavior.modal.description.label=Description du comportement de consentment : animal_care_and_behavior.edit_behavior.modal.description.placeholder=Description du comportement de consentement (optionelle) +animal_care.button.edit.tooltip=Modifier +animal_consent_behavior.button.edit.tooltip=Modifier +animal_care_and_behavior.care_list.empty=Pas encore de soins +animal_care_and_behavior.behavior_list.empty=Pas encore de comportements de consentement +animal_list.animal_list.empty=Pas encore d'animaux diff --git a/src/main/webapp/vue/animal_behavior.jsp b/src/main/webapp/vue/animal_behavior.jsp index dce83c6..c0bee2e 100644 --- a/src/main/webapp/vue/animal_behavior.jsp +++ b/src/main/webapp/vue/animal_behavior.jsp @@ -4,6 +4,7 @@ <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@ page isELIgnored="false" %> + <%@ include file="base/language.jsp" %> @@ -94,6 +95,15 @@ + +
+ + + + + + +
@@ -150,27 +160,95 @@ - - diff --git a/src/main/webapp/vue/animal_care.jsp b/src/main/webapp/vue/animal_care.jsp index 2bc225d..27584a0 100644 --- a/src/main/webapp/vue/animal_care.jsp +++ b/src/main/webapp/vue/animal_care.jsp @@ -4,6 +4,7 @@ <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%> <%@ page isELIgnored="false" %> + <%@ include file="base/language.jsp" %> @@ -94,6 +95,15 @@ + +
+ + + + + + +
@@ -149,27 +159,95 @@ - - diff --git a/src/main/webapp/vue/animal_cares_and_behaviors.jsp b/src/main/webapp/vue/animal_cares_and_behaviors.jsp index 25af213..1799d74 100644 --- a/src/main/webapp/vue/animal_cares_and_behaviors.jsp +++ b/src/main/webapp/vue/animal_cares_and_behaviors.jsp @@ -48,31 +48,36 @@

+ +

+
+ +
+ ${care.getName()} +
+ + +
+ +
+ + + +
+
+
+
+
+
${care.getDescription()}
+
+ + + +

@@ -87,6 +92,10 @@

+ +

+
+ +

diff --git a/src/main/webapp/vue/animal_list.jsp b/src/main/webapp/vue/animal_list.jsp index 430a749..426a3f2 100644 --- a/src/main/webapp/vue/animal_list.jsp +++ b/src/main/webapp/vue/animal_list.jsp @@ -36,28 +36,33 @@