Fri, 22 May 2020 17:26:27 +0200
removes that dynamic_fragment bullshit
--- a/src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java Fri May 22 17:26:27 2020 +0200 @@ -228,20 +228,17 @@ } /** - * Sets the name of the dynamic fragment. + * Sets the name of the content page. * <p> * It is sufficient to specify the name without any extension. The extension * is added automatically if not specified. - * <p> - * The fragment must be located in the dynamic fragments folder. * - * @param req the servlet request object - * @param fragmentName the name of the fragment - * @see Constants#DYN_FRAGMENT_PATH_PREFIX - * @see Constants#REQ_ATTR_FRAGMENT + * @param req the servlet request object + * @param pageName the name of the content page + * @see Constants#REQ_ATTR_CONTENT_PAGE */ - protected void setDynamicFragment(HttpServletRequest req, String fragmentName) { - req.setAttribute(Constants.REQ_ATTR_FRAGMENT, Functions.dynFragmentPath(fragmentName)); + protected void setContentPage(HttpServletRequest req, String pageName) { + req.setAttribute(Constants.REQ_ATTR_CONTENT_PAGE, Functions.jspPath(pageName)); } /**
--- a/src/main/java/de/uapcore/lightpit/Constants.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/Constants.java Fri May 22 17:26:27 2020 +0200 @@ -36,11 +36,15 @@ * Constants with (class) local scope are defined in their respective classes. */ public final class Constants { + /** + * The path where the JSP files reside. + */ public static final String JSP_PATH_PREFIX = "/WEB-INF/jsp/"; - public static final String DYN_FRAGMENT_PATH_PREFIX = "/WEB-INF/dynamic_fragments/"; - - public static final String DYN_FRAGMENT_COMMIT_SUCCESSFUL = "commit-successful"; + /** + * The name of the generic JSP page that is displayed after a successful commit. + */ + public static final String JSP_COMMIT_SUCCESSFUL = "commit-successful"; /** * Name for the context parameter specifying the available languages. @@ -83,9 +87,9 @@ public static final String REQ_ATTR_PATH = fqn(AbstractLightPITServlet.class, "path"); /** - * Key for the name of the fragment which should be rendered. + * Key for the name of the page which should be rendered. */ - public static final String REQ_ATTR_FRAGMENT = fqn(AbstractLightPITServlet.class, "fragment"); + public static final String REQ_ATTR_CONTENT_PAGE = fqn(AbstractLightPITServlet.class, "content-page"); /** * Key for the name of the additional stylesheet used by a module.
--- a/src/main/java/de/uapcore/lightpit/Functions.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/Functions.java Fri May 22 17:26:27 2020 +0200 @@ -54,10 +54,6 @@ return enforceExt(Constants.JSP_PATH_PREFIX + filename, ".jsp"); } - public static String dynFragmentPath(String filename) { - return enforceExt(Constants.DYN_FRAGMENT_PATH_PREFIX + filename, ".jsp"); - } - public static String fqn(String base, String name) { return base + "." + name; }
--- a/src/main/java/de/uapcore/lightpit/modules/ErrorModule.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/modules/ErrorModule.java Fri May 22 17:26:27 2020 +0200 @@ -59,7 +59,7 @@ ); setStylesheet(req, "error"); - setDynamicFragment(req, "error"); + setContentPage(req, "error"); return ResponseType.HTML; }
--- a/src/main/java/de/uapcore/lightpit/modules/LanguageModule.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/modules/LanguageModule.java Fri May 22 17:26:27 2020 +0200 @@ -91,7 +91,7 @@ req.setAttribute("browserLanguage", req.getLocale()); setStylesheet(req, "language"); - setDynamicFragment(req, "language"); + setContentPage(req, "language"); return ResponseType.HTML; }
--- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Fri May 22 17:26:27 2020 +0200 @@ -111,7 +111,7 @@ final var projectList = dao.getProjectDao().list(); req.setAttribute("projects", projectList); - setDynamicFragment(req, "projects"); + setContentPage(req, "projects"); setStylesheet(req, "projects"); final var selectedProject = getSelectedProject(req, dao); @@ -130,7 +130,7 @@ } req.setAttribute("users", dao.getUserDao().list()); - setDynamicFragment(req, "project-form"); + setContentPage(req, "project-form"); } @RequestMapping(requestPath = "edit", method = HttpMethod.GET) @@ -161,7 +161,7 @@ dao.getProjectDao().saveOrUpdate(project); setRedirectLocation(req, "./projects/"); - setDynamicFragment(req, Constants.DYN_FRAGMENT_COMMIT_SUCCESSFUL); + setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); LOG.debug("Successfully updated project {}", project.getName()); } catch (NoSuchElementException | NumberFormatException | SQLException ex) { // TODO: set request attribute with error text @@ -187,7 +187,7 @@ // TODO: add more levels depending on last visited location setBreadcrumbs(req, getBreadcrumbs(1, selectedProject)); - setDynamicFragment(req, "project-details"); + setContentPage(req, "project-details"); return ResponseType.HTML; } @@ -196,7 +196,7 @@ req.setAttribute("version", version.orElse(new Version(-1, selectedProject))); req.setAttribute("versionStatusEnum", VersionStatus.values()); - setDynamicFragment(req, "version-form"); + setContentPage(req, "version-form"); } @RequestMapping(requestPath = "versions/edit", method = HttpMethod.GET) @@ -231,7 +231,7 @@ dao.getVersionDao().saveOrUpdate(version); setRedirectLocation(req, "./projects/versions/"); - setDynamicFragment(req, Constants.DYN_FRAGMENT_COMMIT_SUCCESSFUL); + setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); LOG.debug("Successfully updated version {} for project {}", version.getName(), selectedProject.getName()); } catch (NoSuchElementException | NumberFormatException | SQLException ex) { // TODO: set request attribute with error text @@ -250,7 +250,7 @@ req.setAttribute("issueCategoryEnum", IssueCategory.values()); req.setAttribute("versions", dao.getVersionDao().list(selectedProject)); - setDynamicFragment(req, "issue-form"); + setContentPage(req, "issue-form"); } @RequestMapping(requestPath = "issues/edit", method = HttpMethod.GET) @@ -285,7 +285,7 @@ dao.getIssueDao().saveOrUpdate(issue); setRedirectLocation(req, "./projects/issues/"); - setDynamicFragment(req, Constants.DYN_FRAGMENT_COMMIT_SUCCESSFUL); + setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); LOG.debug("Successfully updated issue {} for project {}", issue.getId(), selectedProject.getName()); } catch (NoSuchElementException | NumberFormatException | SQLException ex) { // TODO: set request attribute with error text
--- a/src/main/java/de/uapcore/lightpit/modules/UsersModule.java Fri May 22 17:19:09 2020 +0200 +++ b/src/main/java/de/uapcore/lightpit/modules/UsersModule.java Fri May 22 17:26:27 2020 +0200 @@ -58,7 +58,7 @@ final var userDao = dao.getUserDao(); req.setAttribute("users", userDao.list()); - setDynamicFragment(req, "users"); + setContentPage(req, "users"); return ResponseType.HTML; } @@ -69,7 +69,7 @@ req.setAttribute("user", findByParameter(req, Integer.class, "id", dao.getUserDao()::find).orElse(new User(-1))); - setDynamicFragment(req, "user-form"); + setContentPage(req, "user-form"); return ResponseType.HTML; } @@ -88,13 +88,13 @@ dao.getUserDao().saveOrUpdate(user); setRedirectLocation(req, "./teams/"); - setDynamicFragment(req, Constants.DYN_FRAGMENT_COMMIT_SUCCESSFUL); + setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); LOG.debug("Successfully updated user {}", user.getUsername()); } catch (NoSuchElementException | NumberFormatException | SQLException ex) { // TODO: set request attribute with error text req.setAttribute("user", user); - setDynamicFragment(req, "user-form"); + setContentPage(req, "user-form"); LOG.warn("Form validation failure: {}", ex.getMessage()); LOG.debug("Details:", ex); }
--- a/src/main/webapp/WEB-INF/dynamic_fragments/commit-successful.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="redirectLocation" value="${requestScope[Constants.REQ_ATTR_REDIRECT_LOCATION]}"/> - -<fmt:message bundle="${lightpit_bundle}" key="commit.success"/> -<fmt:message bundle="${lightpit_bundle}" key="commit.redirect-link"/>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/error.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@page import="de.uapcore.lightpit.modules.ErrorModule" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> -<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> - -<c:set scope="page" var="baseHref" value="${requestScope[Constants.REQ_ATTR_BASE_HREF]}"/> -<c:set scope="page" var="errorCode" value="${requestScope['javax.servlet.error.status_code']}"/> -<c:set scope="page" var="returnLink" value="${requestScope[ErrorModule.REQ_ATTR_RETURN_LINK]}"/> - -<div id="error-page"> - <h1><fmt:message key="h1"/></h1> - <table> - <tr> - <th><fmt:message key="errorCode"/>:</th> - <td>${errorCode} - <fmt:message key="code.${errorCode}"/></td> - </tr> - <tr> - <th><fmt:message key="errorMessage"/>:</th> - <td><c:out value="${requestScope['javax.servlet.error.message']}"/></td> - </tr> - <tr> - <th><fmt:message key="errorTimestamp"/>:</th> - <td><fmt:formatDate type="both" value="<%= new java.util.Date()%>"/></td> - </tr> - <%--@elvariable id="exception" type="java.lang.Exception"--%> - <c:if test="${not empty exception}"> - <tr> - <th><fmt:message key="errorExceptionText"/>:</th> - <td>${exception['class'].name} - ${exception.message}</td> - </tr> - </c:if> - <c:if test="${fn:startsWith(returnLink, baseHref)}"> - <tr> - <th><fmt:message key="errorReturnLink"/>:</th> - <td><a href="${returnLink}">${returnLink}</a></td> - </tr> - </c:if> - </table> -</div>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/language.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<jsp:useBean id="languages" type="java.util.List<java.util.Locale>" scope="request"/> -<jsp:useBean id="browserLanguage" type="java.util.Locale" scope="request"/> - -<c:set scope="page" var="currentLanguage" value="${sessionScope[Constants.SESSION_ATTR_LANGUAGE]}"/> - -<form method="POST" id="lang-selector"> - <c:forEach items="${languages}" var="l"> - <label> - <input type="radio" name="language" value="${l.language}" - <c:if test="${l.language eq currentLanguage.language}">checked</c:if>/> - ${l.displayLanguage} - (${l.getDisplayLanguage(currentLanguage)} - <c:if test="${not empty browserLanguage and l.language eq browserLanguage.language}"><c:set - var="browserLanguagePresent" value="true"/> - <fmt:message key="browserLanguage"/></c:if>) - </label> - </c:forEach> - <c:if test="${not browserLanguagePresent}"> - <span class="blNA"><fmt:message key="browserLanguageNotAvailable"/></span> - </c:if> - <input type="submit" value="<fmt:message key="submit" />"/> -</form>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/project-details.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@page import="de.uapcore.lightpit.modules.ProjectsModule" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> -<c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> - -<jsp:useBean id="versions" type="java.util.List<de.uapcore.lightpit.entities.Version>" scope="request"/> -<jsp:useBean id="issues" type="java.util.List<de.uapcore.lightpit.entities.Issue>" scope="request"/> - -<div id="tool-area"> - <a href="./${moduleInfo.modulePath}/versions/edit" class="button"><fmt:message key="button.version.create"/></a> - <a href="./${moduleInfo.modulePath}/issues/edit" class="button"><fmt:message key="button.issue.create"/></a> -</div> - -<c:if test="${not empty versions}"> - <table id="version-list" class="datatable medskip"> - <thead> - <tr> - <th></th> - <th><fmt:message key="thead.version.name"/></th> - <th><fmt:message key="thead.version.status"/></th> - </tr> - </thead> - <tbody> - <c:forEach var="version" items="${versions}"> - <tr class="nowrap"> - <td style="width: 2em;"><a href="./${moduleInfo.modulePath}/versions/edit?id=${version.id}">✎</a> - </td> - <td><c:out value="${version.name}"/></td> - <td><fmt:message key="version.status.${version.status}"/></td> - </tr> - </c:forEach> - </tbody> - </table> -</c:if> - -<table id="issue-list" class="datatable medskip"> - <thead> - <tr> - <th></th> - <th><fmt:message key="thead.issue.subject"/></th> - <th><fmt:message key="thead.issue.category"/></th> - <th><fmt:message key="thead.issue.status"/></th> - <th><fmt:message key="thead.issue.created"/></th> - <th><fmt:message key="thead.issue.updated"/></th> - <th><fmt:message key="thead.issue.eta"/></th> - <!-- TODO: add other information --> - </tr> - </thead> - <!-- TODO: add actual list --> -</table>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/project-form.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> - -<jsp:useBean id="project" type="de.uapcore.lightpit.entities.Project" scope="request"/> -<jsp:useBean id="users" type="java.util.List<de.uapcore.lightpit.entities.User>" scope="request"/> - -<form action="./${moduleInfo.modulePath}/commit" method="post"> - <table class="formtable"> - <colgroup> - <col> - <col style="width: 75ch"> - </colgroup> - <tbody> - <tr> - <th><fmt:message key="thead.name"/></th> - <td><input name="name" type="text" maxlength="20" required value="${project.name}"/></td> - </tr> - <tr> - <th class="vtop"><fmt:message key="thead.description"/></th> - <td><input type="text" name="description" maxlength="200" value="${project.description}"/></td> - </tr> - <tr> - <th><fmt:message key="thead.repoUrl"/></th> - <td><input name="repoUrl" type="url" maxlength="50" value="${project.repoUrl}"/></td> - </tr> - <tr> - <th><fmt:message key="thead.owner"/></th> - <td> - <select name="owner"> - <option value="-1"><fmt:message key="placeholder.null-owner"/></option> - <c:forEach var="user" items="${users}"> - <option - <c:if test="${not empty project.owner and user.id eq project.owner.id}">selected</c:if> - value="${user.id}"><c:out value="${user.displayname}"/></option> - </c:forEach> - </select> - </td> - </tr> - </tbody> - <tfoot> - <tr> - <td colspan="2"> - <input type="hidden" name="id" value="${project.id}"/> - <a href="./${moduleInfo.modulePath}/" class="button"><fmt:message bundle="${lightpit_bundle}" - key="button.cancel"/></a> - <button type="submit"><fmt:message bundle="${lightpit_bundle}" key="button.okay"/></button> - </td> - </tr> - </tfoot> - </table> -</form>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/projects.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@page import="de.uapcore.lightpit.modules.ProjectsModule" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> -<c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> - -<jsp:useBean id="projects" type="java.util.List<de.uapcore.lightpit.entities.Project>" scope="request"/> - -<c:if test="${empty projects}"> - <div class="info-box"> - <fmt:message key="no-projects"/> - </div> -</c:if> - -<div id="tool-area"> - <a href="./${moduleInfo.modulePath}/edit" class="button"><fmt:message key="button.create"/></a> -</div> - -<c:if test="${not empty projects}"> - <table id="project-list" class="datatable medskip fullwidth"> - <colgroup> - <col> - <col style="width: 10%"> - <col style="width: 35%"> - <col style="width: 30%"> - <col style="width: 25%"> - </colgroup> - <thead> - <tr> - <th></th> - <th><fmt:message key="thead.name"/></th> - <th><fmt:message key="thead.description"/></th> - <th><fmt:message key="thead.repoUrl"/></th> - <th><fmt:message key="thead.owner"/></th> - </tr> - </thead> - <tbody> - <c:forEach var="project" items="${projects}"> - <tr class="nowrap"> - <td style="width: 2em;"><a href="./${moduleInfo.modulePath}/edit?id=${project.id}">✎</a></td> - <td><a href="./${moduleInfo.modulePath}/view?pid=${project.id}"><c:out value="${project.name}"/></a> - </td> - <td><c:out value="${project.description}"/></td> - <td> - <c:if test="${not empty project.repoUrl}"> - <a target="_blank" href="<c:out value="${project.repoUrl}"/>"><c:out - value="${project.repoUrl}"/></a> - </c:if> - </td> - <td> - <c:if test="${not empty project.owner}"><c:out value="${project.owner.displayname}"/></c:if> - <c:if test="${empty project.owner}"><fmt:message key="placeholder.null-owner"/></c:if> - </td> - </tr> - </c:forEach> - </tbody> - </table> -</c:if>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/user-form.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> - -<jsp:useBean id="user" type="de.uapcore.lightpit.entities.User" scope="request"/> - -<form action="./${moduleInfo.modulePath}/commit" method="post"> - <table class="formtable"> - <colgroup> - <col> - <col style="width: 50ch"> - </colgroup> - <tbody> - <tr> - <th><fmt:message key="thead.username"/></th> - <td><input name="username" type="text" maxlength="50" required value="${user.username}" - <c:if test="${user.id ge 0}">readonly</c:if> /></td> - </tr> - <tr> - <th><fmt:message key="thead.givenname"/></th> - <td><input name="givenname" type="text" maxlength="50" value="${user.givenname}"/></td> - </tr> - <tr> - <th><fmt:message key="thead.lastname"/></th> - <td><input name="lastname" type="text" maxlength="50" value="${user.lastname}"/></td> - </tr> - <tr> - <th><fmt:message key="thead.mail"/></th> - <td><input name="mail" type="email" maxlength="50" value="${user.mail}"/></td> - </tr> - </tbody> - <tfoot> - <tr> - <td colspan="2"> - <input type="hidden" name="userid" value="${user.id}"/> - <a href="./${moduleInfo.modulePath}/" class="button"><fmt:message bundle="${lightpit_bundle}" - key="button.cancel"/></a> - <button type="submit"><fmt:message bundle="${lightpit_bundle}" key="button.okay"/></button> - </td> - </tr> - </tfoot> - </table> -</form>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/users.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> - -<jsp:useBean id="users" type="java.util.List<de.uapcore.lightpit.entities.User>" scope="request"/> - -<c:if test="${empty users}"> - <div class="info-box"> - <fmt:message key="no-users"/> - </div> -</c:if> - -<div id="tool-area"> - <a href="./${moduleInfo.modulePath}/edit" class="button"><fmt:message key="button.create"/></a> -</div> - -<c:if test="${not empty users}"> - <table class="datatable medskip"> - <thead> - <tr> - <th></th> - <th><fmt:message key="thead.displayname"/></th> - </tr> - </thead> - <tbody> - <c:forEach var="user" items="${users}"> - <tr> - <td><a href="./${moduleInfo.modulePath}/edit?id=${user.id}">✎</a></td> - <td><c:out value="${user.displayname}"/></td> - </tr> - </c:forEach> - </tbody> - </table> -</c:if>
--- a/src/main/webapp/WEB-INF/dynamic_fragments/version-form.jsp Fri May 22 17:19:09 2020 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +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. ---%> -<%@page pageEncoding="UTF-8" %> -<%@page import="de.uapcore.lightpit.Constants" %> -<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> -<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> - -<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> -<c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> - -<jsp:useBean id="version" type="de.uapcore.lightpit.entities.Version" scope="request"/> -<jsp:useBean id="versionStatusEnum" type="de.uapcore.lightpit.entities.VersionStatus[]" scope="request"/> - -<form action="./${moduleInfo.modulePath}/versions/commit" method="post"> - <table class="formtable" style="width: 35ch"> - <colgroup> - <col> - <col style="width: 100%"> - </colgroup> - <tbody> - <tr> - <th><fmt:message key="thead.version.name"/></th> - <td><input name="name" type="text" maxlength="20" required value="${version.name}"/></td> - </tr> - <tr> - <th><fmt:message key="thead.version.status"/></th> - <td> - <select name="status" required> - <c:forEach var="elem" items="${versionStatusEnum}"> - <option - <c:if test="${elem eq version.status}">selected</c:if> value="${elem}"><fmt:message - key="version.status.${elem}"/></option> - </c:forEach> - </select> - </td> - </tr> - <tr title="<fmt:message key="tooltip.ordinal" />"> - <th><fmt:message key="thead.version.ordinal"/></th> - <td> - <input name="ordinal" type="number" min="0" value="${version.ordinal}"/> - </td> - </tr> - </tbody> - <tfoot> - <tr> - <td colspan="2"> - <input type="hidden" name="id" value="${version.id}"/> - <a href="./${moduleInfo.modulePath}/versions/" class="button"><fmt:message bundle="${lightpit_bundle}" - key="button.cancel"/></a> - <button type="submit"><fmt:message bundle="${lightpit_bundle}" key="button.okay"/></button> - </td> - </tr> - </tfoot> - </table> -</form>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/commit-successful.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,34 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="redirectLocation" value="${requestScope[Constants.REQ_ATTR_REDIRECT_LOCATION]}"/> + +<fmt:message bundle="${lightpit_bundle}" key="commit.success"/> +<fmt:message bundle="${lightpit_bundle}" key="commit.redirect-link"/>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/error.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,67 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@page import="de.uapcore.lightpit.modules.ErrorModule" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> + +<c:set scope="page" var="baseHref" value="${requestScope[Constants.REQ_ATTR_BASE_HREF]}"/> +<c:set scope="page" var="errorCode" value="${requestScope['javax.servlet.error.status_code']}"/> +<c:set scope="page" var="returnLink" value="${requestScope[ErrorModule.REQ_ATTR_RETURN_LINK]}"/> + +<div id="error-page"> + <h1><fmt:message key="h1"/></h1> + <table> + <tr> + <th><fmt:message key="errorCode"/>:</th> + <td>${errorCode} - <fmt:message key="code.${errorCode}"/></td> + </tr> + <tr> + <th><fmt:message key="errorMessage"/>:</th> + <td><c:out value="${requestScope['javax.servlet.error.message']}"/></td> + </tr> + <tr> + <th><fmt:message key="errorTimestamp"/>:</th> + <td><fmt:formatDate type="both" value="<%= new java.util.Date()%>"/></td> + </tr> + <%--@elvariable id="exception" type="java.lang.Exception"--%> + <c:if test="${not empty exception}"> + <tr> + <th><fmt:message key="errorExceptionText"/>:</th> + <td>${exception['class'].name} - ${exception.message}</td> + </tr> + </c:if> + <c:if test="${fn:startsWith(returnLink, baseHref)}"> + <tr> + <th><fmt:message key="errorReturnLink"/>:</th> + <td><a href="${returnLink}">${returnLink}</a></td> + </tr> + </c:if> + </table> +</div>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/language.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,52 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<jsp:useBean id="languages" type="java.util.List<java.util.Locale>" scope="request"/> +<jsp:useBean id="browserLanguage" type="java.util.Locale" scope="request"/> + +<c:set scope="page" var="currentLanguage" value="${sessionScope[Constants.SESSION_ATTR_LANGUAGE]}"/> + +<form method="POST" id="lang-selector"> + <c:forEach items="${languages}" var="l"> + <label> + <input type="radio" name="language" value="${l.language}" + <c:if test="${l.language eq currentLanguage.language}">checked</c:if>/> + ${l.displayLanguage} + (${l.getDisplayLanguage(currentLanguage)} + <c:if test="${not empty browserLanguage and l.language eq browserLanguage.language}"><c:set + var="browserLanguagePresent" value="true"/> - <fmt:message key="browserLanguage"/></c:if>) + </label> + </c:forEach> + <c:if test="${not browserLanguagePresent}"> + <span class="blNA"><fmt:message key="browserLanguageNotAvailable"/></span> + </c:if> + <input type="submit" value="<fmt:message key="submit" />"/> +</form>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/project-details.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,80 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@page import="de.uapcore.lightpit.modules.ProjectsModule" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> +<c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> + +<jsp:useBean id="versions" type="java.util.List<de.uapcore.lightpit.entities.Version>" scope="request"/> +<jsp:useBean id="issues" type="java.util.List<de.uapcore.lightpit.entities.Issue>" scope="request"/> + +<div id="tool-area"> + <a href="./${moduleInfo.modulePath}/versions/edit" class="button"><fmt:message key="button.version.create"/></a> + <a href="./${moduleInfo.modulePath}/issues/edit" class="button"><fmt:message key="button.issue.create"/></a> +</div> + +<c:if test="${not empty versions}"> + <table id="version-list" class="datatable medskip"> + <thead> + <tr> + <th></th> + <th><fmt:message key="thead.version.name"/></th> + <th><fmt:message key="thead.version.status"/></th> + </tr> + </thead> + <tbody> + <c:forEach var="version" items="${versions}"> + <tr class="nowrap"> + <td style="width: 2em;"><a href="./${moduleInfo.modulePath}/versions/edit?id=${version.id}">✎</a> + </td> + <td><c:out value="${version.name}"/></td> + <td><fmt:message key="version.status.${version.status}"/></td> + </tr> + </c:forEach> + </tbody> + </table> +</c:if> + +<table id="issue-list" class="datatable medskip"> + <thead> + <tr> + <th></th> + <th><fmt:message key="thead.issue.subject"/></th> + <th><fmt:message key="thead.issue.category"/></th> + <th><fmt:message key="thead.issue.status"/></th> + <th><fmt:message key="thead.issue.created"/></th> + <th><fmt:message key="thead.issue.updated"/></th> + <th><fmt:message key="thead.issue.eta"/></th> + <!-- TODO: add other information --> + </tr> + </thead> + <!-- TODO: add actual list --> +</table>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/project-form.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,81 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> + +<jsp:useBean id="project" type="de.uapcore.lightpit.entities.Project" scope="request"/> +<jsp:useBean id="users" type="java.util.List<de.uapcore.lightpit.entities.User>" scope="request"/> + +<form action="./${moduleInfo.modulePath}/commit" method="post"> + <table class="formtable"> + <colgroup> + <col> + <col style="width: 75ch"> + </colgroup> + <tbody> + <tr> + <th><fmt:message key="thead.name"/></th> + <td><input name="name" type="text" maxlength="20" required value="${project.name}"/></td> + </tr> + <tr> + <th class="vtop"><fmt:message key="thead.description"/></th> + <td><input type="text" name="description" maxlength="200" value="${project.description}"/></td> + </tr> + <tr> + <th><fmt:message key="thead.repoUrl"/></th> + <td><input name="repoUrl" type="url" maxlength="50" value="${project.repoUrl}"/></td> + </tr> + <tr> + <th><fmt:message key="thead.owner"/></th> + <td> + <select name="owner"> + <option value="-1"><fmt:message key="placeholder.null-owner"/></option> + <c:forEach var="user" items="${users}"> + <option + <c:if test="${not empty project.owner and user.id eq project.owner.id}">selected</c:if> + value="${user.id}"><c:out value="${user.displayname}"/></option> + </c:forEach> + </select> + </td> + </tr> + </tbody> + <tfoot> + <tr> + <td colspan="2"> + <input type="hidden" name="id" value="${project.id}"/> + <a href="./${moduleInfo.modulePath}/" class="button"><fmt:message bundle="${lightpit_bundle}" + key="button.cancel"/></a> + <button type="submit"><fmt:message bundle="${lightpit_bundle}" key="button.okay"/></button> + </td> + </tr> + </tfoot> + </table> +</form>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/projects.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,87 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@page import="de.uapcore.lightpit.modules.ProjectsModule" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> +<c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> + +<jsp:useBean id="projects" type="java.util.List<de.uapcore.lightpit.entities.Project>" scope="request"/> + +<c:if test="${empty projects}"> + <div class="info-box"> + <fmt:message key="no-projects"/> + </div> +</c:if> + +<div id="tool-area"> + <a href="./${moduleInfo.modulePath}/edit" class="button"><fmt:message key="button.create"/></a> +</div> + +<c:if test="${not empty projects}"> + <table id="project-list" class="datatable medskip fullwidth"> + <colgroup> + <col> + <col style="width: 10%"> + <col style="width: 35%"> + <col style="width: 30%"> + <col style="width: 25%"> + </colgroup> + <thead> + <tr> + <th></th> + <th><fmt:message key="thead.name"/></th> + <th><fmt:message key="thead.description"/></th> + <th><fmt:message key="thead.repoUrl"/></th> + <th><fmt:message key="thead.owner"/></th> + </tr> + </thead> + <tbody> + <c:forEach var="project" items="${projects}"> + <tr class="nowrap"> + <td style="width: 2em;"><a href="./${moduleInfo.modulePath}/edit?id=${project.id}">✎</a></td> + <td><a href="./${moduleInfo.modulePath}/view?pid=${project.id}"><c:out value="${project.name}"/></a> + </td> + <td><c:out value="${project.description}"/></td> + <td> + <c:if test="${not empty project.repoUrl}"> + <a target="_blank" href="<c:out value="${project.repoUrl}"/>"><c:out + value="${project.repoUrl}"/></a> + </c:if> + </td> + <td> + <c:if test="${not empty project.owner}"><c:out value="${project.owner.displayname}"/></c:if> + <c:if test="${empty project.owner}"><fmt:message key="placeholder.null-owner"/></c:if> + </td> + </tr> + </c:forEach> + </tbody> + </table> +</c:if>
--- a/src/main/webapp/WEB-INF/jsp/site.jsp Fri May 22 17:19:09 2020 +0200 +++ b/src/main/webapp/WEB-INF/jsp/site.jsp Fri May 22 17:26:27 2020 +0200 @@ -43,8 +43,8 @@ <%-- Define an alias for the main menu --%> <c:set scope="page" var="breadcrumbs" value="${requestScope[Constants.REQ_ATTR_BREADCRUMBS]}"/> -<%-- Define an alias for the fragment name --%> -<c:set scope="page" var="fragment" value="${requestScope[Constants.REQ_ATTR_FRAGMENT]}"/> +<%-- Define an alias for the content page name --%> +<c:set scope="page" var="contentPage" value="${requestScope[Constants.REQ_ATTR_CONTENT_PAGE]}"/> <%-- Define an alias for the optional redirect location --%> <c:set scope="page" var="redirectLocation" value="${requestScope[Constants.REQ_ATTR_REDIRECT_LOCATION]}"/> @@ -95,10 +95,10 @@ </div> </c:if> <div id="content-area"> - <c:if test="${not empty fragment}"> + <c:if test="${not empty contentPage}"> <fmt:setBundle scope="request" basename="${moduleInfo.bundleBaseName}"/> <fmt:setBundle scope="request" var="lightpit_bundle" basename="localization.lightpit"/> - <c:import url="${fragment}"/> + <c:import url="${contentPage}"/> </c:if> </div> </body>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/user-form.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,72 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> + +<jsp:useBean id="user" type="de.uapcore.lightpit.entities.User" scope="request"/> + +<form action="./${moduleInfo.modulePath}/commit" method="post"> + <table class="formtable"> + <colgroup> + <col> + <col style="width: 50ch"> + </colgroup> + <tbody> + <tr> + <th><fmt:message key="thead.username"/></th> + <td><input name="username" type="text" maxlength="50" required value="${user.username}" + <c:if test="${user.id ge 0}">readonly</c:if> /></td> + </tr> + <tr> + <th><fmt:message key="thead.givenname"/></th> + <td><input name="givenname" type="text" maxlength="50" value="${user.givenname}"/></td> + </tr> + <tr> + <th><fmt:message key="thead.lastname"/></th> + <td><input name="lastname" type="text" maxlength="50" value="${user.lastname}"/></td> + </tr> + <tr> + <th><fmt:message key="thead.mail"/></th> + <td><input name="mail" type="email" maxlength="50" value="${user.mail}"/></td> + </tr> + </tbody> + <tfoot> + <tr> + <td colspan="2"> + <input type="hidden" name="userid" value="${user.id}"/> + <a href="./${moduleInfo.modulePath}/" class="button"><fmt:message bundle="${lightpit_bundle}" + key="button.cancel"/></a> + <button type="submit"><fmt:message bundle="${lightpit_bundle}" key="button.okay"/></button> + </td> + </tr> + </tfoot> + </table> +</form>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/users.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,63 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> + +<jsp:useBean id="users" type="java.util.List<de.uapcore.lightpit.entities.User>" scope="request"/> + +<c:if test="${empty users}"> + <div class="info-box"> + <fmt:message key="no-users"/> + </div> +</c:if> + +<div id="tool-area"> + <a href="./${moduleInfo.modulePath}/edit" class="button"><fmt:message key="button.create"/></a> +</div> + +<c:if test="${not empty users}"> + <table class="datatable medskip"> + <thead> + <tr> + <th></th> + <th><fmt:message key="thead.displayname"/></th> + </tr> + </thead> + <tbody> + <c:forEach var="user" items="${users}"> + <tr> + <td><a href="./${moduleInfo.modulePath}/edit?id=${user.id}">✎</a></td> + <td><c:out value="${user.displayname}"/></td> + </tr> + </c:forEach> + </tbody> + </table> +</c:if>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/WEB-INF/jsp/version-form.jsp Fri May 22 17:26:27 2020 +0200 @@ -0,0 +1,79 @@ +<%-- +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. +--%> +<%@page pageEncoding="UTF-8" %> +<%@page import="de.uapcore.lightpit.Constants" %> +<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> + +<c:set scope="page" var="moduleInfo" value="${requestScope[Constants.REQ_ATTR_MODULE_INFO]}"/> +<c:set scope="page" var="selectedProject" value="${sessionScope[ProjectsModule.SESSION_ATTR_SELECTED_PROJECT]}"/> + +<jsp:useBean id="version" type="de.uapcore.lightpit.entities.Version" scope="request"/> +<jsp:useBean id="versionStatusEnum" type="de.uapcore.lightpit.entities.VersionStatus[]" scope="request"/> + +<form action="./${moduleInfo.modulePath}/versions/commit" method="post"> + <table class="formtable" style="width: 35ch"> + <colgroup> + <col> + <col style="width: 100%"> + </colgroup> + <tbody> + <tr> + <th><fmt:message key="thead.version.name"/></th> + <td><input name="name" type="text" maxlength="20" required value="${version.name}"/></td> + </tr> + <tr> + <th><fmt:message key="thead.version.status"/></th> + <td> + <select name="status" required> + <c:forEach var="elem" items="${versionStatusEnum}"> + <option + <c:if test="${elem eq version.status}">selected</c:if> value="${elem}"><fmt:message + key="version.status.${elem}"/></option> + </c:forEach> + </select> + </td> + </tr> + <tr title="<fmt:message key="tooltip.ordinal" />"> + <th><fmt:message key="thead.version.ordinal"/></th> + <td> + <input name="ordinal" type="number" min="0" value="${version.ordinal}"/> + </td> + </tr> + </tbody> + <tfoot> + <tr> + <td colspan="2"> + <input type="hidden" name="id" value="${version.id}"/> + <a href="./${moduleInfo.modulePath}/versions/" class="button"><fmt:message bundle="${lightpit_bundle}" + key="button.cancel"/></a> + <button type="submit"><fmt:message bundle="${lightpit_bundle}" key="button.okay"/></button> + </td> + </tr> + </tfoot> + </table> +</form>