Andrew Grant 6 mesi fa
parent
commit
d069eea028

+ 4 - 0
src/main/java/scot/carricksoftware/grants/constants/ViewConstants.java

@@ -63,6 +63,10 @@ public class ViewConstants {
     public static final String PERSON_TEXT_LIST = "text/personText/list";
     public static final String PERSON_TEXT_FORM = "text/personText/form";
 
+    public static final String PLACE_TEXT_LIST = "text/placeText/list";
+    public static final String PLACE_TEXT_FORM = "text/placeText/form";
+
+
 }
 
 

+ 29 - 0
src/main/java/scot/carricksoftware/grants/controllers/text/placetext/PlaceTextListController.java

@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:08. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.controllers.text.placetext;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.PathVariable;
+
+@SuppressWarnings("unused")
+@Controller
+public interface PlaceTextListController {
+
+    String getListPage(final Model model);
+
+    String getNextPage(final Model model);
+
+    String getPreviousPage(final Model model);
+
+    String getFirstPage(final Model model);
+
+    String getLastPage(final Model model);
+
+    String PlaceTextDelete(@PathVariable String id);
+
+    int getPageNumber();
+}

+ 104 - 0
src/main/java/scot/carricksoftware/grants/controllers/text/placetext/PlaceTextListControllerImpl.java

@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:08. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.controllers.text.placetext;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import scot.carricksoftware.grants.constants.*;
+import scot.carricksoftware.grants.controllers.ControllerHelper;
+import scot.carricksoftware.grants.services.text.placetext.PlaceTextService;
+
+import static java.lang.Integer.max;
+
+@Controller
+public class PlaceTextListControllerImpl implements PlaceTextListController {
+
+    private static final Logger logger = LogManager.getLogger(PlaceTextListControllerImpl.class);
+
+
+    private int currentPage = 0;
+    private final ControllerHelper controllerHelper;
+    private final PlaceTextService placeTextService;
+
+    public PlaceTextListControllerImpl(ControllerHelper controllerHelper,
+                                       PlaceTextService placeTextService) {
+        this.controllerHelper = controllerHelper;
+        this.placeTextService = placeTextService;
+    }
+
+
+    @SuppressWarnings("SameReturnValue")
+    @GetMapping(TextMappingConstants.PLACE_TEXT_LIST)
+    @Override
+    public final String getListPage(final Model model) {
+        logger.debug("PlaceTextListControllerImpl::getImagePage");
+        currentPage = 0;
+        return sendAttributesAndReturn(model);
+    }
+
+    @SuppressWarnings("SameReturnValue")
+    private String sendAttributesAndReturn(Model model) {
+        model.addAttribute(TextAttributeConstants.PLACE_TEXTS, placeTextService.getPagedPlaceTexts(currentPage));
+        controllerHelper.addAttributes(model);
+        return ViewConstants.PLACE_TEXT_LIST;
+    }
+
+    @SuppressWarnings("SameReturnValue")
+    @GetMapping(TextMappingConstants.PLACE_TEXT_NEXT)
+    @Override
+    public final String getNextPage(final Model model) {
+        logger.debug("PlaceTextListControllerImpl::getNextPage");
+        currentPage++;
+        return sendAttributesAndReturn(model);
+    }
+
+    @SuppressWarnings("SameReturnValue")
+    @GetMapping(TextMappingConstants.PLACE_TEXT_PREVIOUS)
+    @Override
+    public final String getPreviousPage(final Model model) {
+        logger.debug("PlaceTextListControllerImpl::getPreviousPage");
+        currentPage = max(0, currentPage - 1);
+        return sendAttributesAndReturn(model);
+    }
+
+    @SuppressWarnings("SameReturnValue")
+    @GetMapping(TextMappingConstants.PLACE_TEXT_REWIND)
+    public final String getFirstPage(final Model model) {
+        logger.debug("PlaceTextListControllerImpl::getFirstPage");
+        currentPage = 0;
+        return sendAttributesAndReturn(model);
+    }
+
+    @SuppressWarnings("SameReturnValue")
+    @GetMapping(TextMappingConstants.PLACE_TEXT_FF)
+    @Override
+    public final String getLastPage(final Model model) {
+        logger.debug("PlaceTextListControllerImpl::getLastPage");
+        long imageCount = placeTextService.count();
+        currentPage = (int) (imageCount / ApplicationConstants.DEFAULT_PAGE_SIZE);
+        return sendAttributesAndReturn(model);
+    }
+
+
+    @SuppressWarnings("SameReturnValue")
+    @GetMapping(TextMappingConstants.PLACE_TEXT_DELETE)
+    @Override
+    public final String PlaceTextDelete(@PathVariable final String id) {
+        logger.debug("PlaceTextListControllerImpl::imageDelete");
+        placeTextService.deleteById(Long.valueOf(id));
+        return MappingConstants.REDIRECT + TextMappingConstants.PLACE_TEXT_LIST;
+    }
+
+    @Override
+    public int getPageNumber() {
+        return currentPage;
+    }
+    
+}

+ 7 - 5
src/main/resources/templates/text/placeText/list.html

@@ -18,21 +18,23 @@
 <div class="container text-center">
     <div class="container border border-info
                     rounded-3 text-center p-4">
-        <h3>Person Texts</h3>
+        <h3>Place Texts</h3>
         <table class="table table-striped table-bordered">
             <thead class="table-dark">
             <tr>
                 <th>ID</th>
-                <th></th>
+                <th>Place</th>
                 <th></th>
                 <th></th>
             </tr>
             </thead>
 
-            <!--/*@thymesVar id="text" type="scot.carricksoftware.grants.domains.text.PersonText"*/-->
-            <tr th:each="text : ${document_texts}">
+            <!--/*@thymesVar id="text" type="scot.carricksoftware.grants.domains.text.PlaceText"*/-->
+            <!--/*@thymesVar id="place" type="scot.carricksoftware.grants.domains.places.Place"*/-->
+
+            <tr th:each="text : ${place_texts}">
                 <td th:text="${text.id}">123</td>
-                <td></td>
+                <td th:text="${text.place.toString()}">123</td>
                 <td></td>
                 <td><span>
                         <a th:action="delete" class="btn btn-danger btn-sm" href=""