Fri, 20 Feb 2026 15:27:09 +0100
replaced edit icon Unicode char with an SVG icon - fixes #805
--- a/src/main/kotlin/de/uapcore/lightpit/Constants.kt Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/kotlin/de/uapcore/lightpit/Constants.kt Fri Feb 20 15:27:09 2026 +0100 @@ -27,9 +27,9 @@ object Constants { /** - * A data in yyyy-mm-dd format to identify the release. + * A date in yyyy-mm-dd format to identify the release. */ - const val VERSION_DATE = "2026-01-06" + const val VERSION_DATE = "2026-02-20" /** * The path where the JSP files reside.
--- a/src/main/webapp/WEB-INF/changelogs/changelog-de.jspf Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/changelogs/changelog-de.jspf Fri Feb 20 15:27:09 2026 +0100 @@ -40,7 +40,8 @@ <li>Die Standardkategorie für neue Vorgänge in veröffentlichten Versionen ist nun "Fehler" anstelle von "Feature".</li> <li>Die Links zu den Varianten in der Vorgangsansicht wechseln nun lediglich die geöffnete Variante, anstatt zur Vorgangsliste zurückzukehren.</li> <li>Die erzeugten URLs für Filter und Sortierung sind nun deutlich schlanker (diese Änderung ist komplett abwärtskompatibel).</li> - <li>Positionen der Schaltflächen unterhalb der Vorgangsfilter getauscht, um Konsistent mit allen anderen Schaltflächen in der Anwendung zu sein.</li> + <li>Positionen der Schaltflächen unterhalb der Vorgangsfilter getauscht, um konsistent mit allen anderen Schaltflächen in der Anwendung zu sein.</li> + <li>Die Unicode-Bleistift-Icons sind nun durch richtige SVG Icons ersetzt.</li> <li>Fehlerhafte Delta-Anzeige in RSS-Feeds behoben.</li> <li>Ungefiltertes HTML aus Vorgangsbeschreibungen in RSS-Feeds behoben.</li> <li>Vorgänge können nicht länger mit sich selbst verlinkt werden.</li>
--- a/src/main/webapp/WEB-INF/changelogs/changelog.jspf Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/changelogs/changelog.jspf Fri Feb 20 15:27:09 2026 +0100 @@ -40,7 +40,8 @@ <li>Change that the default category for new issues in released versions is Bug instead of Feature.</li> <li>Change that the variant links in the issue view now stay within the issue and only switch the opened variant.</li> <li>Change the default filter and sort URLs to be less verbose (fully backwards compatible).</li> - <li>Switch position of Apply and Remove buttons below the filter to be in line with the design rule that submit buttons are always right aligned.</li> + <li>Change positions of Apply and Remove buttons below the filter to be in line with the design rule that submit buttons are always right aligned.</li> + <li>Change edit pencil icons from a font-dependent Unicode character to an SVG icon.</li> <li>Fix wrong diffs in RSS feed.</li> <li>Fix unescaped HTML in RSS feed.</li> <li>Fix that issues could relate to themselves.</li>
--- a/src/main/webapp/WEB-INF/jsp/components.jsp Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jsp/components.jsp Fri Feb 20 15:27:09 2026 +0100 @@ -72,7 +72,7 @@ <tbody> <c:forEach var="componentInfo" items="${viewmodel.componentInfos}" > <tr> - <td rowspan="2" style="width: 2em;"><a href="./projects/${project.node}/components/${componentInfo.component.node}/edit">✎</a></td> + <td rowspan="2" style="min-width: 2em;"><a class="edit-icon" href="./projects/${project.node}/components/${componentInfo.component.node}/edit"></a></td> <td rowspan="2"> <div class="navmenu-icon" style="background-color: ${componentInfo.component.color}"></div> <a href="./projects/${project.node}/issues/-/${componentInfo.component.node}/-/"
--- a/src/main/webapp/WEB-INF/jsp/issue-view.jsp Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jsp/issue-view.jsp Fri Feb 20 15:27:09 2026 +0100 @@ -368,7 +368,7 @@ </a> </c:if> <c:if test="${comment.author eq viewmodel.authenticatedUser}"> - <a class="comment-edit-icon" onclick="showCommentEditor(${comment.id})">✎</a> + <a class="edit-icon" onclick="showCommentEditor(${comment.id})"></a> </c:if> </c:if> <c:if test="${empty comment.author}">
--- a/src/main/webapp/WEB-INF/jsp/projects.jsp Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jsp/projects.jsp Fri Feb 20 15:27:09 2026 +0100 @@ -68,7 +68,7 @@ <c:forEach var="projectInfo" items="${viewmodel.projects}"> <c:set var="project" scope="page" value="${projectInfo.project}"/> <tr class="nowrap"> - <td style="width: 2em;"><a href="./projects/${project.node}/edit">✎</a></td> + <td style="min-width: 2em;"><a class="edit-icon" href="./projects/${project.node}/edit"></a></td> <td><a href="./projects/${project.node}"><c:out value="${project.name}"/></a> </td> <td>
--- a/src/main/webapp/WEB-INF/jsp/users.jsp Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jsp/users.jsp Fri Feb 20 15:27:09 2026 +0100 @@ -67,7 +67,7 @@ <tbody> <c:forEach var="userdata" items="${viewmodel.users}"> <tr> - <td><a href="./users/${userdata.user.id}/edit">✎</a></td> + <td style="min-width: 2em;"><a class="edit-icon" href="./users/${userdata.user.id}/edit"></a></td> <td><c:out value="${userdata.user.displayname}"/></td> <td class="hright"><a href="./issues/?filter=u.${userdata.user.id}&filter=s.0">${userdata.issueSummary.open}</a></td> <td class="hright"><a href="./issues/?filter=u.${userdata.user.id}&filter=s.1">${userdata.issueSummary.active}</a></td>
--- a/src/main/webapp/WEB-INF/jsp/variants.jsp Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jsp/variants.jsp Fri Feb 20 15:27:09 2026 +0100 @@ -72,7 +72,7 @@ <tbody> <c:forEach var="variantInfo" items="${viewmodel.variantInfos}" > <tr> - <td rowspan="2" style="width: 2em;"><a href="./projects/${project.node}/variants/${variantInfo.variant.node}/edit">✎</a></td> + <td rowspan="2" style="min-width: 2em;"><a class="edit-icon" href="./projects/${project.node}/variants/${variantInfo.variant.node}/edit"></a></td> <td rowspan="2"> <div class="navmenu-icon" style="background-color: ${variantInfo.variant.color}"></div> <a href="./projects/${project.node}/issues/-/-/${variantInfo.variant.node}/"
--- a/src/main/webapp/WEB-INF/jsp/versions.jsp Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jsp/versions.jsp Fri Feb 20 15:27:09 2026 +0100 @@ -78,8 +78,7 @@ <tbody> <c:forEach var="versionInfo" items="${viewmodel.versionInfos}"> <tr> - <td rowspan="2" style="width: 2em;"><a - href="./projects/${project.node}/versions/${versionInfo.version.node}/edit">✎</a></td> + <td rowspan="2" style="min-width: 2em;"><a class="edit-icon" href="./projects/${project.node}/versions/${versionInfo.version.node}/edit"></a></td> <td rowspan="2"> <a href="./projects/${project.node}/issues/${versionInfo.version.node}/-/-/"> <c:out value="${versionInfo.version.name}"/>
--- a/src/main/webapp/WEB-INF/jspf/navmenu.jspf Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/WEB-INF/jspf/navmenu.jspf Fri Feb 20 15:27:09 2026 +0100 @@ -52,9 +52,7 @@ </c:if> </a> <c:if test="${not empty entry.editHref}"> - <span class="edit-icon-container"> - <a class="onhover-edit-icon" href="${entry.editHref}">✎</a> - </span> + <a class="edit-icon" href="${entry.editHref}"></a> </c:if> </div> </c:forEach>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/webapp/edit.svg Fri Feb 20 15:27:09 2026 +0100 @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<svg xmlns="http://www.w3.org/2000/svg" version="1.1" + id="edit" fill="#000000" height="64" width="64" viewBox="0 0 64 64"> + <path id="path" + d="M 13.51075,0 57.2445,43.733875 64,64 43.734,57.2445 0,13.51075 Z M 27.021375,18.914875 24.31925,21.617 50.17025,47.468125 52.872375,44.766 Z M 55.0585,56.9915 56.991375,55.058625 54.7395,48.30325 48.303125,54.739625 Z M 44.766125,52.872375 47.46825,50.17025 21.617125,24.319125 18.915,27.02125 Z m -28.55325,-28.553 8.1065,-8.1065 -2.702125,-2.702125 -8.1065,8.1065 z M 18.915125,10.8085 13.510875,5.404125 5.40425,13.51075 10.808625,18.915 Z" + /> +</svg>
--- a/src/main/webapp/lightpit.css Thu Feb 19 17:48:07 2026 +0100 +++ b/src/main/webapp/lightpit.css Fri Feb 20 15:27:09 2026 +0100 @@ -59,6 +59,25 @@ color: #1c204e; } +.edit-icon { + margin-left: 1ex; + margin-right: 1ex; +} + +.edit-icon::before { + display: inline-block; + width: .8em; + height: .8em; + margin: 0; + padding: 0; + content: ''; + mask-image: url('edit.svg'); + mask-size: contain; + mask-repeat: no-repeat; + mask-position: center; + background-color: currentColor; +} + textarea, input, button, select { font-family: inherit; font-size: inherit; @@ -130,17 +149,11 @@ border-bottom-color: #d7d7df; } -#sideMenu .menuEntry .edit-icon-container { - width: .9em; - height: .9em; - display: inline-block; -} - -#sideMenu .menuEntry .onhover-edit-icon { +#sideMenu .menuEntry .edit-icon { display: none; } -#sideMenu .menuEntry:hover .onhover-edit-icon { +#sideMenu .menuEntry:hover .edit-icon { display: initial; }