removes (now) unnecessary possibility to customize the main menu

Fri, 23 Oct 2020 12:38:20 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 23 Oct 2020 12:38:20 +0200
changeset 145
6d2d69fd1c12
parent 144
7e06b75cf1b9
child 146
b0e83cab0bde

removes (now) unnecessary possibility to customize the main menu

src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/Constants.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/MenuEntry.java file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jsp/site.jsp file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jspf/menu-entry.jspf file | annotate | diff | comparison | revisions
--- a/src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java	Fri Oct 23 12:26:08 2020 +0200
+++ b/src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java	Fri Oct 23 12:38:20 2020 +0200
@@ -376,24 +376,6 @@
         }
     }
 
-    private void forwardToFullView(HttpServletRequest req, HttpServletResponse resp)
-            throws IOException, ServletException {
-
-        final String lightpitBundle = "localization.lightpit";
-        final var mainMenu = List.of(
-                new MenuEntry(new ResourceKey(lightpitBundle, "menu.projects"), "projects/"),
-                new MenuEntry(new ResourceKey(lightpitBundle, "menu.users"), "teams/"),
-                new MenuEntry(new ResourceKey(lightpitBundle, "menu.languages"), "language/")
-        );
-        for (var entry : mainMenu) {
-            if (Functions.fullPath(req).startsWith("/" + entry.getPathName())) {
-                entry.setActive(true);
-            }
-        }
-        req.setAttribute(Constants.REQ_ATTR_MENU, mainMenu);
-        req.getRequestDispatcher(SITE_JSP).forward(req, resp);
-    }
-
     private String sanitizeRequestPath(HttpServletRequest req) {
         return Optional.ofNullable(req.getPathInfo()).orElse("/");
     }
@@ -412,7 +394,7 @@
             case NONE:
                 return;
             case HTML:
-                forwardToFullView(req, resp);
+                req.getRequestDispatcher(SITE_JSP).forward(req, resp);
                 return;
             // TODO: implement remaining response types
             default:
--- a/src/main/java/de/uapcore/lightpit/Constants.java	Fri Oct 23 12:26:08 2020 +0200
+++ b/src/main/java/de/uapcore/lightpit/Constants.java	Fri Oct 23 12:38:20 2020 +0200
@@ -67,11 +67,6 @@
     public static final String REQ_ATTR_RESOURCE_BUNDLE = fqn(AbstractLightPITServlet.class, "bundleName");
 
     /**
-     * Key for the request attribute containing the menu list.
-     */
-    public static final String REQ_ATTR_MENU = fqn(AbstractLightPITServlet.class, "mainMenu");
-
-    /**
      * Key for the request attribute containing the optional navigation menu jsp.
      */
     public static final String REQ_ATTR_NAVIGATION = fqn(AbstractLightPITServlet.class, "navMenu");
--- a/src/main/java/de/uapcore/lightpit/MenuEntry.java	Fri Oct 23 12:26:08 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-/*
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
- *
- * Copyright 2018 Mike Becker. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- *   1. Redistributions of source code must retain the above copyright
- *      notice, this list of conditions and the following disclaimer.
- *
- *   2. Redistributions in binary form must reproduce the above copyright
- *      notice, this list of conditions and the following disclaimer in the
- *      documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- */
-package de.uapcore.lightpit;
-
-public class MenuEntry {
-
-    /**
-     * Resource key for the menu label.
-     */
-    private final ResourceKey resourceKey;
-
-    /**
-     * Custom menu text.
-     */
-    private final String text;
-
-    /**
-     * Path name of the module, linked by this menu entry.
-     */
-    private final String pathName;
-
-    /**
-     * True if this menu entry is active.
-     */
-    private boolean active = false;
-
-    public MenuEntry(ResourceKey resourceKey, String pathName) {
-        this.text = null;
-        this.resourceKey = resourceKey;
-        this.pathName = pathName;
-    }
-
-    public ResourceKey getResourceKey() {
-        return resourceKey;
-    }
-
-    public String getText() {
-        return text;
-    }
-
-    public String getPathName() {
-        return pathName;
-    }
-
-    public boolean isActive() {
-        return this.active;
-    }
-
-    public void setActive(boolean active) {
-        this.active = active;
-    }
-}
--- a/src/main/webapp/WEB-INF/jsp/site.jsp	Fri Oct 23 12:26:08 2020 +0200
+++ b/src/main/webapp/WEB-INF/jsp/site.jsp	Fri Oct 23 12:38:20 2020 +0200
@@ -36,9 +36,6 @@
 <%-- Define an alias for the request path --%>
 <c:set scope="page" var="requestPath" value="${requestScope[Constants.REQ_ATTR_PATH]}"/>
 
-<%-- Define an alias for the main menu --%>
-<c:set scope="page" var="mainMenu" value="${requestScope[Constants.REQ_ATTR_MENU]}"/>
-
 <%-- Define an alias for the navigation menu --%>
 <c:set scope="page" var="navMenu" value="${requestScope[Constants.REQ_ATTR_NAVIGATION]}"/>
 
@@ -79,9 +76,21 @@
 </head>
 <body>
 <div id="mainMenu">
-    <c:forEach var="menu" items="${mainMenu}">
-        <%@include file="../jspf/menu-entry.jspf" %>
-    </c:forEach>
+    <div class="menuEntry" <c:if test="${fn:startsWith(requestPath, '/projects/')}">data-active</c:if> >
+        <a href="projects/">
+            <fmt:message bundle="${lightpit_bundle}" key="menu.projects"/>
+        </a>
+    </div>
+    <div class="menuEntry" <c:if test="${fn:startsWith(requestPath, '/teams/')}">data-active</c:if> >
+        <a href="teams/">
+            <fmt:message bundle="${lightpit_bundle}" key="menu.users"/>
+        </a>
+    </div>
+    <div class="menuEntry" <c:if test="${fn:startsWith(requestPath, '/language/')}">data-active</c:if> >
+        <a href="language/">
+            <fmt:message bundle="${lightpit_bundle}" key="menu.languages"/>
+        </a>
+    </div>
 </div>
 <div>
     <c:if test="${not empty navMenu}">
--- a/src/main/webapp/WEB-INF/jspf/menu-entry.jspf	Fri Oct 23 12:26:08 2020 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<div class="menuEntry"
-     <c:if test="${menu.active}">data-active</c:if> >
-    <a href="${menu.pathName}">
-        <c:if test="${empty menu.resourceKey}">
-            <c:out value="${menu.text}"/>
-        </c:if>
-        <c:if test="${not empty menu.resourceKey}">
-            <fmt:bundle basename="${menu.resourceKey.bundle}">
-                <fmt:message key="${menu.resourceKey.key}"/>
-            </fmt:bundle>
-        </c:if>
-    </a>
-</div>
\ No newline at end of file

mercurial