Browse Source

PersonImage Forms

Andrew Grant 1 month ago
parent
commit
d4d8141687

+ 8 - 1
src/main/java/scot/carricksoftware/grants/controllers/images/personImages/PersonImageFormControllerImpl.java

@@ -20,6 +20,7 @@ import scot.carricksoftware.grants.commands.images.PersonImageCommandImpl;
 import scot.carricksoftware.grants.constants.*;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageConverterImpl;
+import scot.carricksoftware.grants.services.images.image.ImageService;
 import scot.carricksoftware.grants.services.images.personimage.PersonImageService;
 import scot.carricksoftware.grants.services.people.PersonService;
 import scot.carricksoftware.grants.validators.images.PersonImageCommandValidator;
@@ -35,12 +36,13 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
     private final PersonImageConverterImpl personImageConverter;
     private final PersonImageCommandValidator personImageCommandValidator;
     private final PersonService personService;
+    private final ImageService imageService;
 
 
     public PersonImageFormControllerImpl(PersonImageService personImageService,
                                          PersonImageCommandConverterImpl personImageCommandConverter,
                                          PersonImageConverterImpl personImageConverter,
-                                         PersonImageCommandValidator personImageCommandValidator, PersonService personService) {
+                                         PersonImageCommandValidator personImageCommandValidator, PersonService personService, ImageService imageService) {
         this.personImageService = personImageService;
         this.personImageCommandConverter = personImageCommandConverter;
 
@@ -48,6 +50,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
         this.personImageConverter = personImageConverter;
         this.personImageCommandValidator = personImageCommandValidator;
         this.personService = personService;
+        this.imageService = imageService;
     }
 
     @SuppressWarnings("SameReturnValue")
@@ -56,6 +59,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
         logger.debug("PersonImageFormControllerImpl::getNewPersonImage");
         model.addAttribute(ImageAttributeConstants.PERSON_IMAGE_COMMAND, new PersonImageCommandImpl());
         model.addAttribute(AttributeConstants.PEOPLE, personService.findAll());
+        model.addAttribute(AttributeConstants.IMAGES, imageService.findAll());
         return ViewConstants.PERSON_IMAGE_FORM;
     }
 
@@ -65,6 +69,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
         logger.debug("PersonImageFormControllerImpl::personImageEdit");
         model.addAttribute(ImageAttributeConstants.PERSON_IMAGE_COMMAND, personImageService.findById(Long.valueOf(id)));
         model.addAttribute(AttributeConstants.PEOPLE, personService.findAll());
+        model.addAttribute(AttributeConstants.IMAGES, imageService.findAll());
         return ViewConstants.PERSON_IMAGE_FORM;
     }
 
@@ -86,6 +91,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
         PersonImageCommand savedCommand = personImageService.savePersonImageCommand(personImageCommand);
         model.addAttribute(ImageAttributeConstants.PERSON_IMAGE_COMMAND, savedCommand);
         model.addAttribute(AttributeConstants.PEOPLE, personService.findAll());
+        model.addAttribute(AttributeConstants.IMAGES, imageService.findAll());
         return MappingConstants.REDIRECT + ImageMappingConstants.PERSON_IMAGE_SHOW.replace("{id}", "" + savedCommand.getId());
     }
 
@@ -98,6 +104,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
         PersonImageCommand savedCommand = personImageConverter.convert(personImageService.findById(Long.valueOf(id)));
         model.addAttribute(ImageAttributeConstants.PERSON_IMAGE_COMMAND, savedCommand);
         model.addAttribute(AttributeConstants.PEOPLE, personService.findAll());
+        model.addAttribute(AttributeConstants.IMAGES, imageService.findAll());
         return ViewConstants.PERSON_IMAGE_FORM;
     }
 

+ 54 - 0
src/main/resources/templates/images/personImage/form.html

@@ -54,6 +54,60 @@
                     </div>
                 </td>
             </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="image">Image : &nbsp;</label>
+                </td>
+                <td>
+                    <select id="image" name="image" th:field="*{image}"
+                            class="form-control" th:errorclass="has-error">
+                        <option th:value="${''}" th:text="${''}"></option>
+                        <option th:each="image : ${images}"
+                                th:value="${image.id}" th:text="${image.name}"></option>
+                    </select>
+                </td>
+            </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="order">Order :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <input class="form-control" id="order"
+                           th:field="*{order}" type="text">
+                    <div th:if="${#fields.hasErrors('order')}">
+                        <ul class="text-danger">
+                            <li th:each="err : ${#fields.errors('order')}" th:text="${err}"/>
+                        </ul>
+                    </div>
+                </td>
+            </tr><tr>
+            <td style="text-align: right;">
+                <label for="level">Level :&nbsp;</label>
+            </td>
+            <td style="text-align: left;">
+                <input class="form-control" id="level"
+                       th:field="*{level}" type="text">
+                <div th:if="${#fields.hasErrors('level')}">
+                    <ul class="text-danger">
+                        <li th:each="err : ${#fields.errors('level')}" th:text="${err}"/>
+                    </ul>
+                </div>
+            </td>
+        </tr>
+            <tr>
+                <td style="text-align: right;">
+                    <label for="caption">Caption :&nbsp;</label>
+                </td>
+                <td style="text-align: left;">
+                    <input class="form-control" id="caption"
+                           th:field="*{caption}" type="text">
+                    <div th:if="${#fields.hasErrors('caption')}">
+                        <ul class="text-danger">
+                            <li th:each="err : ${#fields.errors('caption')}" th:text="${err}"/>
+                        </ul>
+                    </div>
+                </td>
+            </tr>
             <tr><td>&nbsp;</td></tr>
         </table>
         <button type="submit" class="btn btn-primary">Commit</button>

+ 6 - 2
src/main/resources/templates/images/personImage/list.html

@@ -24,7 +24,9 @@
             <tr>
                 <th>ID</th>
                 <th>Person</th>
-                <th></th>
+                <th>Order</th>
+                <th>Level</th>
+                <th>Caption</th>
                 <th></th>
             </tr>
             </thead>
@@ -33,7 +35,9 @@
                 <!--/*@thymesVar id="person" type="scot.carricksoftware.grants.domains.people.Person"*/-->
                 <td th:text="${image.id}">123</td>
                 <td th:text="${image.person.toString()}">123</td>
-                <td></td>
+                <td th:text="${image.order}"></td>
+                <td th:text="${image.level}"></td>
+                <td th:text="${image.caption}"></td>
                 <td><span>
                         <a th:action="delete" class="btn btn-danger btn-sm" href=""
                            th:href="'personImage/' + ${image.id} + '/delete'"

+ 1 - 1
src/main/resources/templates/person/form.html

@@ -91,7 +91,7 @@ rounded-3 text-center p-4">
                     <label for="image">Image : &nbsp;</label>
                 </td>
                 <td>
-                    <select id="image" name="region" th:field="*{image}"
+                    <select id="image" name="image" th:field="*{image}"
                             class="form-control" th:errorclass="has-error">
                         <option th:value="${''}" th:text="${''}"></option>
                         <option th:each="image : ${images}"

+ 6 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/personimages/PersonImageFormControllerSaveOrUpdateTest.java

@@ -17,6 +17,7 @@ import scot.carricksoftware.grants.commands.images.PersonImageCommandImpl;
 import scot.carricksoftware.grants.controllers.images.personImages.PersonImageFormControllerImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageConverterImpl;
+import scot.carricksoftware.grants.services.images.image.ImageService;
 import scot.carricksoftware.grants.services.images.personimage.PersonImageService;
 import scot.carricksoftware.grants.services.people.PersonService;
 import scot.carricksoftware.grants.validators.images.PersonImageCommandValidator;
@@ -44,6 +45,9 @@ public class PersonImageFormControllerSaveOrUpdateTest {
     @Mock
     private PersonService personServiceMock;
 
+    @Mock
+    private ImageService imageServiceMock;
+
     @Mock
     Model modelMock;
 
@@ -62,7 +66,8 @@ public class PersonImageFormControllerSaveOrUpdateTest {
                 personImageCommandConverterMock,
                 personImageConverterMock,
                 personImageCommandValidatorMock,
-                personServiceMock);
+                personServiceMock,
+                imageServiceMock);
         personImageCommand = new PersonImageCommandImpl();
     }
 

+ 6 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/personimages/PersonImageFormControllerTest.java

@@ -19,6 +19,7 @@ import scot.carricksoftware.grants.controllers.images.personImages.PersonImageFo
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageConverterImpl;
 import scot.carricksoftware.grants.domains.images.PersonImage;
+import scot.carricksoftware.grants.services.images.image.ImageService;
 import scot.carricksoftware.grants.services.images.personimage.PersonImageService;
 import scot.carricksoftware.grants.services.people.PersonService;
 import scot.carricksoftware.grants.validators.images.PersonImageCommandValidator;
@@ -54,6 +55,9 @@ public class PersonImageFormControllerTest {
     @Mock
     private PersonService personServiceMock;
 
+    @Mock
+    private ImageService imageServiceMock;
+
 
     @BeforeEach
     public void setUp() {
@@ -61,7 +65,8 @@ public class PersonImageFormControllerTest {
                 personImageCommandConverterMock,
                 personImageConverterMock,
                 personImageCommandValidatorMock,
-                personServiceMock);
+                personServiceMock,
+                imageServiceMock);
     }
 
     @Test

+ 6 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/personimages/PersonImageFormControllerValidationTest.java

@@ -17,6 +17,7 @@ import scot.carricksoftware.grants.commands.images.PersonImageCommand;
 import scot.carricksoftware.grants.controllers.images.personImages.PersonImageFormControllerImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageConverterImpl;
+import scot.carricksoftware.grants.services.images.image.ImageService;
 import scot.carricksoftware.grants.services.images.personimage.PersonImageService;
 import scot.carricksoftware.grants.services.people.PersonService;
 import scot.carricksoftware.grants.validators.images.PersonImageCommandValidator;
@@ -51,6 +52,9 @@ public class PersonImageFormControllerValidationTest {
     @Mock
     private PersonService personServiceMocK;
 
+    @Mock
+    private ImageService imageServiceMocK;
+
     @Mock
     private PersonImageCommandValidator personImageCommandValidatorMock;
 
@@ -64,7 +68,8 @@ public class PersonImageFormControllerValidationTest {
                 personImageCommandConverterMock,
                 personImageConverterMock,
                 personImageCommandValidatorMock,
-                personServiceMocK);
+                personServiceMocK,
+                imageServiceMocK);
     }