| 29 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
29 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
| 30 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
30 <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> |
| 31 <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> |
31 <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> |
| 32 |
32 |
| 33 <%-- Version suffix for forcing browsers to update the CSS / JS files --%> |
33 <%-- Version suffix for forcing browsers to update the CSS / JS files --%> |
| 34 <c:set scope="page" var="versionSuffix" value="20250313"/> |
34 <c:set scope="page" var="versionSuffix" value="20250517"/> |
| 35 |
35 |
| 36 <%-- Make the base href easily available at request scope --%> |
36 <%-- Make the base href easily available at request scope --%> |
| 37 <c:set scope="page" var="baseHref" value="${requestScope[Constants.REQ_ATTR_BASE_HREF]}"/> |
37 <c:set scope="page" var="baseHref" value="${requestScope[Constants.REQ_ATTR_BASE_HREF]}"/> |
| 38 |
38 |
| 39 <%-- Define an alias for the request path --%> |
39 <%-- Define an alias for the request path --%> |
| 85 <link rel="stylesheet" href="${cssFile}?v=${versionSuffix}" type="text/css"> |
85 <link rel="stylesheet" href="${cssFile}?v=${versionSuffix}" type="text/css"> |
| 86 </c:forEach> |
86 </c:forEach> |
| 87 </c:if> |
87 </c:if> |
| 88 <script> |
88 <script> |
| 89 const baseHref='${baseHref}'; |
89 const baseHref='${baseHref}'; |
| |
90 <c:if test="${showWhatsNew}"> |
| |
91 function closeWhatsNew(showMore) { |
| |
92 if (showMore) { |
| |
93 location.assign(baseHref + 'about'); |
| |
94 } else { |
| |
95 document.getElementById('whats-new').style.display = 'none'; |
| |
96 document.getElementById('page-area').classList.remove('blurred'); |
| |
97 } |
| |
98 } |
| |
99 </c:if> |
| 90 </script> |
100 </script> |
| 91 <script src="issue-search.js?v=${versionSuffix}" type="text/javascript"></script> |
101 <script src="issue-search.js?v=${versionSuffix}" type="text/javascript"></script> |
| 92 <c:if test="${not empty javascriptFile}"> |
102 <c:if test="${not empty javascriptFile}"> |
| 93 <script src="${javascriptFile}?v=${versionSuffix}" type="text/javascript"></script> |
103 <script src="${javascriptFile}?v=${versionSuffix}" type="text/javascript"></script> |
| 94 </c:if> |
104 </c:if> |
| 95 </head> |
105 </head> |
| 96 <body> |
106 <body> |
| 97 <div id="page-area"> |
107 <div id="page-area" <c:if test="${showWhatsNew}">class="blurred"</c:if> > |
| 98 <div id="mainMenu"> |
108 <div id="mainMenu"> |
| 99 <div class="menuEntry" |
109 <div class="menuEntry" |
| 100 <c:if test="${fn:startsWith(requestPath, '/projects/')}">data-active</c:if> > |
110 <c:if test="${fn:startsWith(requestPath, '/projects/')}">data-active</c:if> > |
| 101 <a href="projects/"> |
111 <a href="projects/"> |
| 102 <fmt:message key="menu.projects"/> |
112 <fmt:message key="menu.projects"/> |