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="20250307"/> |
34 <c:set scope="page" var="versionSuffix" value="20250309"/> |
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 --%> |
83 <c:if test="${not empty extraCss}"> |
83 <c:if test="${not empty extraCss}"> |
84 <c:forEach items="${extraCss}" var="cssFile"> |
84 <c:forEach items="${extraCss}" var="cssFile"> |
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> |
|
89 const baseHref='${baseHref}'; |
|
90 </script> |
|
91 <script src="issue-search.js?v=${versionSuffix}" type="text/javascript"></script> |
88 <c:if test="${not empty javascriptFile}"> |
92 <c:if test="${not empty javascriptFile}"> |
89 <script src="${javascriptFile}?v=${versionSuffix}" type="text/javascript"></script> |
93 <script src="${javascriptFile}?v=${versionSuffix}" type="text/javascript"></script> |
90 </c:if> |
94 </c:if> |
91 </head> |
95 </head> |
92 <body> |
96 <body> |
93 <div id="body-area"> |
97 <div id="body-area"> |
94 <div id="mainMenu"> |
98 <div id="mainMenu"> |
120 <c:if test="${fn:startsWith(requestPath, '/about/')}">data-active</c:if> > |
124 <c:if test="${fn:startsWith(requestPath, '/about/')}">data-active</c:if> > |
121 <a href="about/"> |
125 <a href="about/"> |
122 <fmt:message key="menu.about"/> |
126 <fmt:message key="menu.about"/> |
123 </a> |
127 </a> |
124 </div> |
128 </div> |
|
129 <div class="searchBox"> |
|
130 🔍 |
|
131 <input id="search-box" list="search-box-list" autocomplete="off"> |
|
132 <datalist id="search-box-list"></datalist> |
|
133 </div> |
125 </div> |
134 </div> |
126 <c:if test="${not empty navMenu}"> |
135 <c:if test="${not empty navMenu}"> |
127 <div id="sideMenu"> |
136 <div id="sideMenu"> |
128 <%@include file="../jspf/navmenu.jspf" %> |
137 <%@include file="../jspf/navmenu.jspf" %> |
129 </div> |
138 </div> |