Unverified Commit cdc38cb8 authored by jvoisin's avatar jvoisin Committed by GitHub

Use SVG for the icons for the default_light theme

parent 2d069954
Pipeline #67569771 passed with stages
in 18 minutes and 25 seconds
......@@ -54,6 +54,8 @@ The [Subsonic source code](https://github.com/airsonic/subsonic-svn) was release
The cover zooming feature is provided by [jquery.fancyzoom](https://github.com/keegnotrub/jquery.fancyzoom),
released under [MIT License](http://www.opensource.org/licenses/mit-license.php).
The icons are from the amazing [feather](https://feathericons.com/) project,
and are licensed under [MIT license](https://github.com/feathericons/feather/blob/master/LICENSE).
Usage
-----
......
# Icons used by dark themes.
# Author: Sindre Mehus
addImage = icons/default_dark/add.png
addOverlayImage = icons/default_dark/add_overlay.png
addNextImage = icons/default_dark/add_next.png
addOverlayImage = icons/default_dark/add_overlay.png
androidImage = icons/default_dark/android.png
backImage = icons/default_dark/back.png
castActiveImage = icons/default_dark/cast_active.png
castIdleImage = icons/default_dark/cast_idle.png
castPauseImage = icons/default_dark/cast_pause.png
castPlayImage = icons/default_dark/cast_play.png
clearImage = icons/default_light/clear.svg
clearRatingImage = icons/default_dark/remove.png
currentImage = icons/default_dark/current.png
donateImage = icons/default_dark/donate.png
donateSmallImage = icons/default_dark/donate_small.png
downImage = icons/default_dark/down.png
downloadImage = icons/default_dark/download.png
errorImage = icons/default_dark/error.png
forwardImage = icons/default_dark/forward.png
helpImage = icons/default_dark/help.png
helpPopupImage = icons/default_dark/help_small.png
......@@ -25,33 +26,37 @@ html5Image = icons/default_dark/html5.png
keyboardImage = icons/default_dark/keyboard.png
logImage = icons/default_dark/log.png
logoImage = icons/default_dark/logo_light.png
logoutImage = icons/default_dark/logout.svg
moreImage = icons/default_dark/more.png
muteImage = icons/default_dark/mute.png
nowPlayingImage = icons/default_dark/now_playing.png
playImage = icons/default_dark/play.png
playlistImage = icons/default_dark/playlist.png
playOverlayImage = icons/default_dark/play_overlay.png
playlistImage = icons/default_dark/playlist.png
podcastImage = icons/default_dark/podcast.png
podcastLargeImage = icons/default_dark/podcast_large.png
randomImage = icons/default_dark/random.png
ratingOnImage = icons/default_dark/ratingOn.png
ratingOffImage = icons/default_dark/ratingOff.png
ratingHalfImage = icons/default_dark/ratingHalf.png
ratingOffImage = icons/default_dark/ratingOff.png
ratingOnImage = icons/default_dark/ratingOn.png
removeImage = icons/default_dark/remove.png
repeatOff = icons/default_light/repeat_off.svg
repeatOn = icons/default_light/repeat_on.svg
scanningImage = icons/default_dark/spinner.gif
searchImage = icons/default_dark/search.png
settingsImage = icons/default_dark/settings.png
shareSmallImage = icons/default_dark/share_small.png
shareImage = icons/default_dark/share.png
shareFacebookImage = icons/default_dark/share_facebook.png
shareImage = icons/default_dark/share.png
shareSmallImage = icons/default_dark/share_small.png
shareTwitterImage = icons/default_dark/share_twitter.png
shuffleImage = icons/default_dark/shuffle.png
sidebarImage = icons/default_dark/sidebar.svg
starredImage = icons/default_dark/starred.png
statusImage = icons/default_dark/status.png
statusSmallImage = icons/default_dark/status_small.png
undoImage = icons/default_light/undo.svg
upImage = icons/default_dark/up.png
uploadImage = icons/default_dark/upload.png
viewAsListImage = icons/default_dark/view_as_list.png
viewAsGridImage = icons/default_dark/view_as_grid.png
viewAsListImage = icons/default_dark/view_as_list.png
volumeImage = icons/default_dark/volume.png
errorImage = icons/default_dark/error.png
# Icons used by light themes.
# Author: Sindre Mehus
addImage = icons/default_light/add.png
addOverlayImage = icons/default_light/add_overlay.png
addNextImage = icons/default_light/add_next.png
androidImage = icons/default_light/android.png
backImage = icons/default_light/back.png
castActiveImage = icons/default_light/cast_active.png
castIdleImage = icons/default_light/cast_idle.png
castPauseImage = icons/default_light/cast_pause.png
castPlayImage = icons/default_light/cast_play.png
clearRatingImage = icons/default_light/remove.png
currentImage = icons/default_light/current.png
donateImage = icons/default_light/donate.png
donateSmallImage = icons/default_light/donate_small.png
downImage = icons/default_light/down.png
downloadImage = icons/default_light/download.png
forwardImage = icons/default_light/forward.png
helpImage = icons/default_light/help.png
helpPopupImage = icons/default_light/help_small.png
homeImage = icons/default_light/home.png
addImage = icons/default_light/add.svg
addNextImage = icons/default_light/add_next.svg
addOverlayImage = icons/default_light/add_overlay.svg
androidImage = icons/default_light/android.svg
backImage = icons/default_light/back.svg
castActiveImage = icons/default_light/cast_active.svg
castIdleImage = icons/default_light/cast_idle.svg
castPauseImage = icons/default_light/cast_pause.svg
castPlayImage = icons/default_light/play.svg
clearImage = icons/default_light/clear.svg
clearRatingImage = icons/default_light/remove.svg
currentImage = icons/default_light/current.svg
donateImage = icons/default_light/donate.svg
donateSmallImage = icons/default_light/donate.svg
downImage = icons/default_light/down.svg
downloadImage = icons/default_light/download.svg
errorImage = icons/default_light/error.svg
forwardImage = icons/default_light/forward.svg
helpImage = icons/default_light/help.svg
helpPopupImage = icons/default_light/help.svg
homeImage = icons/default_light/home.svg
html5Image = icons/default_light/html5.png
keyboardImage = icons/default_light/keyboard.png
logImage = icons/default_light/log.png
logImage = icons/default_light/log.svg
logoImage = icons/default_light/logo.png
moreImage = icons/default_light/more.png
muteImage = icons/default_light/mute.png
nowPlayingImage = icons/default_light/now_playing.png
playImage = icons/default_light/play.png
playlistImage = icons/default_light/playlist.png
playOverlayImage = icons/default_light/play_overlay.png
podcastImage = icons/default_light/podcast.png
podcastLargeImage = icons/default_light/podcast_large.png
randomImage = icons/default_light/random.png
ratingOnImage = icons/default_light/ratingOn.png
ratingOffImage = icons/default_light/ratingOff.png
logoutImage = icons/default_light/logout.svg
moreImage = icons/default_light/more.svg
muteImage = icons/default_light/mute.svg
nowPlayingImage = icons/default_light/now_playing.svg
playImage = icons/default_light/play.svg
playOverlayImage = icons/default_light/play_overlay.svg
playlistImage = icons/default_light/playlist.svg
podcastImage = icons/default_light/podcast.svg
podcastLargeImage = icons/default_light/podcast.svg
randomImage = icons/default_dark/random.png
ratingHalfImage = icons/default_light/ratingHalf.png
removeImage = icons/default_light/remove.png
ratingOffImage = icons/default_light/ratingOff.svg
ratingOnImage = icons/default_light/ratingOn.svg
removeImage = icons/default_light/remove.svg
repeatOff = icons/default_light/repeat_off.svg
repeatOn = icons/default_light/repeat_on.svg
scanningImage = icons/default_light/spinner.gif
searchImage = icons/default_light/search.png
settingsImage = icons/default_light/settings.png
shareSmallImage = icons/default_light/share_small.png
shareImage = icons/default_light/share.png
shareFacebookImage = icons/default_light/share_facebook.png
shareTwitterImage = icons/default_light/share_twitter.png
shuffleImage = icons/default_light/shuffle.png
starredImage = icons/default_light/starred.png
statusImage = icons/default_light/status.png
statusSmallImage = icons/default_light/status_small.png
upImage = icons/default_light/up.png
uploadImage = icons/default_light/upload.png
viewAsListImage = icons/default_light/view_as_list.png
viewAsGridImage = icons/default_light/view_as_grid.png
volumeImage = icons/default_light/volume.png
errorImage = icons/default_light/error.png
searchImage = icons/default_light/search.svg
settingsImage = icons/default_light/settings.svg
shareFacebookImage = icons/default_light/share_facebook.svg
shareImage = icons/default_light/share.svg
shareSmallImage = icons/default_light/share.svg
shareTwitterImage = icons/default_light/share_twitter.svg
shuffleImage = icons/default_light/shuffle.svg
sidebarImage = icons/default_light/sidebar.svg
starredImage = icons/default_light/starred.svg
statusImage = icons/default_light/status.svg
statusSmallImage = icons/default_light/status.svg
undoImage = icons/default_light/undo.svg
upImage = icons/default_light/up.svg
uploadImage = icons/default_light/upload.svg
viewAsGridImage = icons/default_light/view_as_grid.svg
viewAsListImage = icons/default_light/view_as_list.svg
volumeImage = icons/default_light/volume.svg
......@@ -164,7 +164,7 @@
<div style="float:left">
<h1>
<img id="starImage" src="<spring:theme code="${not empty model.dir.starredDate ? 'ratingOnImage' : 'ratingOffImage'}"/>"
onclick="toggleStar(${model.dir.id}, '#starImage'); return false;" style="cursor:pointer" alt="">
onclick="toggleStar(${model.dir.id}, '#starImage'); return false;" style="cursor:pointer;height:18px;" alt="">
<span style="vertical-align: middle">
<c:forEach items="${model.ancestors}" var="ancestor">
......@@ -239,7 +239,7 @@
</c:if>
<c:if test="${model.user.shareRole}">
<span class="header"><a href="${shareUrl}"><img src="<spring:theme code="shareSmallImage"/>" alt=""></a>
<span class="header"><a href="${shareUrl}"><img src="<spring:theme code="shareSmallImage"/>" style="height:18px;" alt=""></a>
<a href="${shareUrl}"><fmt:message key="main.sharealbum"/></a> </span> |
</c:if>
......
......@@ -164,8 +164,8 @@
<div style="float:left">
<h1>
<img id="starImage" src="<spring:theme code="${not empty model.dir.starredDate ? 'ratingOnImage' : 'ratingOffImage'}"/>"
onclick="toggleStar(${model.dir.id}, '#starImage'); return false;" style="cursor:pointer" alt="">
<img id="starImage" style="height:18px" src="<spring:theme code="${not empty model.dir.starredDate ? 'ratingOnImage' : 'ratingOffImage'}"/>"
onclick="toggleStar(${model.dir.id}, '#starImage'); return false;" style="cursor:pointer;height:18px;" alt="">
<span style="vertical-align: middle">
<c:forEach items="${model.ancestors}" var="ancestor">
......@@ -321,7 +321,7 @@
<tbody id="topSongsBody">
<tr id="pattern" style="display:none;margin:0;padding:0;border:0">
<td class="fit">
<img id="starSong" onclick="toggleStarTopSong(this.id.substring(8) - 1, '#starSong' + this.id.substring(8))" src="<spring:theme code="ratingOffImage"/>"
<img id="starSong" style="height:18px;" onclick="toggleStarTopSong(this.id.substring(8) - 1, '#starSong' + this.id.substring(8))" src="<spring:theme code="ratingOffImage"/>"
style="cursor:pointer" alt="" title=""></td>
<td class="fit">
<img id="play" src="<spring:theme code="playImage"/>" alt="<fmt:message key="common.play"/>" title="<fmt:message key="common.play"/>"
......
......@@ -7,7 +7,7 @@
<body class="mainframe bgcolor1">
<h1>
<img src="<spring:theme code="shareImage"/>" alt="">
<img src="<spring:theme code="shareImage"/>" alt="" style="height:18px;">
<span style="vertical-align: middle"><fmt:message key="share.title"/></span>
</h1>
......
......@@ -76,7 +76,11 @@
<c:if test="${not empty model.albums}">
<td style="padding-left: 2em">
<a href="javascript:playShuffle()"><img src="<spring:theme code="shuffleImage"/>" alt="">&nbsp;<fmt:message key="home.shuffle"/></a></td>
<a href="javascript:playShuffle()">
<img src="<spring:theme code="shuffleImage"/>" alt="Shuffle" style="height:16px;">
<fmt:message key="home.shuffle"/>
</a>
</td>
</c:if>
</tr>
</table>
......@@ -143,7 +143,7 @@
<h2 style="padding:0;margin:0;border:0">${fn:escapeXml(entry.key.index)}</h2>
</th>
<th style="text-align:right;">
<a href="#top"><img src="<spring:theme code="upImage"/>" alt=""></a>
<a href="#top"><img src="<spring:theme code="upImage"/>" alt="" style="height:18px;"></a>
</th>
</tr>
</table>
......
......@@ -18,11 +18,11 @@ PARAMETERS
<c:if test="${param.asTable}"><td class="fit"></c:if>
<c:choose>
<c:when test="${param.starred}">
<img id="starImage${param.id}" src="<spring:theme code="ratingOnImage"/>" alt="" style="cursor:pointer"
<img id="starImage${param.id}" src="<spring:theme code="ratingOnImage"/>" alt="" style="cursor:pointer;height:18px;"
onclick="toggleStar(${param.id}, '#starImage${param.id}'); return false;">
</c:when>
<c:otherwise>
<img id="starImage${param.id}" src="<spring:theme code="ratingOffImage"/>" alt="" style="cursor:pointer"
<img id="starImage${param.id}" src="<spring:theme code="ratingOffImage"/>" alt="" style="cursor:pointer;height:18px;"
onclick="toggleStar(${param.id}, '#starImage${param.id}'); return false;">
</c:otherwise>
</c:choose>
......@@ -41,11 +41,11 @@ PARAMETERS
title="<fmt:message key="common.play"/>"></a>
</c:when>
<c:when test="${not empty param.onPlay}">
<img src="<spring:theme code="playImage"/>" alt="<fmt:message key="common.play"/>" style="cursor:pointer"
<img src="<spring:theme code="playImage"/>" alt="<fmt:message key="common.play"/>" style="cursor:pointer; height:18px;"
onclick="${param.onPlay}; return false;" title="<fmt:message key="common.play"/>">
</c:when>
<c:otherwise>
<img src="<spring:theme code="playImage"/>" alt="<fmt:message key="common.play"/>" style="cursor:pointer"
<img src="<spring:theme code="playImage"/>" alt="<fmt:message key="common.play"/>" style="cursor:pointer; height:18px;"
onclick="top.playQueue.onPlay(${param.id}); return false;" title="<fmt:message key="common.play"/>">
</c:otherwise>
</c:choose>
......@@ -56,7 +56,7 @@ PARAMETERS
<c:if test="${(empty param.addEnabled or param.addEnabled) and not param.video}">
<img id="add${param.id}" src="<spring:theme code="addImage"/>" alt="<fmt:message key="main.addlast"/>"
onclick="top.playQueue.onAdd(${param.id}); $().toastmessage('showSuccessToast', '<fmt:message key="main.addlast.toast"/>'); return false;"
style="cursor:pointer" title="<fmt:message key="main.addlast"/>">
style="cursor:pointer; height:18px;" title="<fmt:message key="main.addlast"/>">
</c:if>
<c:if test="${param.asTable}"></td></c:if>
......@@ -64,7 +64,7 @@ PARAMETERS
<c:if test="${(empty param.addEnabled or param.addEnabled) and not param.video}">
<img id="add${param.id}" src="<spring:theme code="addNextImage"/>" alt="<fmt:message key="main.addnext"/>"
onclick="top.playQueue.onAddNext(${param.id}); $().toastmessage('showSuccessToast', '<fmt:message key="main.addnext.toast"/>'); return false;"
style="cursor:pointer" title="<fmt:message key="main.addnext"/>">
style="cursor:pointer; height:18px;" title="<fmt:message key="main.addnext"/>">
</c:if>
<c:if test="${param.asTable}"></td></c:if>
......
......@@ -420,9 +420,11 @@
if (radioEnabled) {
$("#toggleRepeat").html("<fmt:message key="playlist.repeat_radio"/>");
} else if (repeatEnabled) {
$("#toggleRepeat").html("<fmt:message key="playlist.repeat_on"/>");
$("#toggleRepeat").attr('src', '<spring:theme code="repeatOn"/>');
$("#toggleRepeat").attr('alt', 'Repeat On');
} else {
$("#toggleRepeat").html("<fmt:message key="playlist.repeat_off"/>");
$("#toggleRepeat").attr('src', '<spring:theme code="repeatOff"/>');
$("#toggleRepeat").attr('alt', 'Repeat Off');
}
}
......@@ -691,8 +693,8 @@
</c:if>
<c:if test="${model.player.web}">
<td>
<div id="player" style="width:340px; height:40px;padding-right:10px">
<audio id="audioPlayer" class="mejs__player" data-mejsoptions='{"alwaysShowControls": true, "enableKeyboard": false}' width="340px" height="40px" tabindex="-1" />
<div id="player" style="width:340px; height:40px">
<audio id="audioPlayer" class="mejs__player" data-mejsoptions='{"alwaysShowControls": true, "enableKeyboard": false}' width="340px" height"40px" tabindex="-1" />
</div>
<div id="castPlayer" style="display: none">
<div style="float:left">
......@@ -741,21 +743,47 @@
<img src="<spring:theme code="backImage"/>" alt="" onclick="onPrevious()" style="cursor:pointer"></span>
</td>
<td><span class="header">
<img src="<spring:theme code="forwardImage"/>" alt="" onclick="onNext(false)" style="cursor:pointer"></span>
<img src="<spring:theme code="forwardImage"/>" alt="" onclick="onNext(false)" style="cursor:pointer"></span> |
</td>
</c:if>
<td style="white-space:nowrap;"><span class="header"><a href="javascript:onClear()"><fmt:message key="playlist.clear"/></a></span> |</td>
<td style="white-space:nowrap;"><span class="header"><a href="javascript:onShuffle()"><fmt:message key="playlist.shuffle"/></a></span> |</td>
<td style="white-space:nowrap;">
<span class="header">
<a href="javascript:onClear()">
<img src="<spring:theme code="clearImage"/>" alt="Clear playlist" style="cursor:pointer; height:18px">
</a>
</span> |</td>
<td style="white-space:nowrap;">
<span class="header">
<a href="javascript:onShuffle()">
<img src="<spring:theme code="shuffleImage"/>" alt="shuffle" style="cursor:pointer; height:18px">
</a>
</span> |</td>
<c:if test="${model.player.web or model.player.jukebox or model.player.external}">
<td style="white-space:nowrap;"><span class="header"><a href="javascript:onToggleRepeat()"><span id="toggleRepeat"><fmt:message key="playlist.repeat_on"/></span></a></span> |</td>
<td style="white-space:nowrap;">
<span class="header">
<a href="javascript:onToggleRepeat()">
<img id="toggleRepeat" src="<spring:theme code="repeatOn"/>" alt="repeatOn" style="cursor:pointer; height:18px">
</a>
</span> |</td>
</c:if>
<td style="white-space:nowrap;"><span class="header"><a href="javascript:onUndo()"><fmt:message key="playlist.undo"/></a></span> |</td>
<td style="white-space:nowrap;">
<span class="header">
<a href="javascript:onUndo()">
<img src="<spring:theme code="undoImage"/>" alt="undo" style="cursor:pointer; height:18px">
</a>
</span> |</td>
<c:if test="${model.user.settingsRole}">
<td style="white-space:nowrap;"><span class="header"><a href="playerSettings.view?id=${model.player.id}" target="main"><fmt:message key="playlist.settings"/></a></span> |</td>
<td style="white-space:nowrap;">
<span class="header">
<a href="playerSettings.view?id=${model.player.id}" target="main">
<img src="<spring:theme code="settingsImage"/>" alt="Settings" style="cursor:pointer; height:18px">
</a>
</span> |</td>
</c:if>
<td style="white-space:nowrap;"><select id="moreActions" onchange="actionSelected(this.options[selectedIndex].id)">
......@@ -802,11 +830,11 @@
<tr id="pattern" style="display:none;margin:0;padding:0;border:0">
<td class="fit">
<img id="starSong" onclick="onStar(this.id.substring(8) - 1)" src="<spring:theme code="ratingOffImage"/>"
style="cursor:pointer" alt="" title=""></td>
style="cursor:pointer;height:18px;" alt="" title=""></td>
<td class="fit">
<img id="removeSong" onclick="onRemove(this.id.substring(10) - 1)" src="<spring:theme code="removeImage"/>"
style="cursor:pointer" alt="<fmt:message key="playlist.remove"/>" title="<fmt:message key="playlist.remove"/>"></td>
<td class="fit"><input type="checkbox" id="songIndex"></td>
style="cursor:pointer; height:18px;" alt="<fmt:message key="playlist.remove"/>" title="<fmt:message key="playlist.remove"/>"></td>
<td class="fit"><input type="checkbox" class="checkbox" id="songIndex"></td>
<c:if test="${model.visibility.trackNumberVisible}">
<td class="fit rightalign"><span class="detail" id="trackNumber">1</span></td>
......
......@@ -228,16 +228,16 @@
<tr id="pattern" style="display:none;margin:0;padding:0;border:0">
<td class="fit">
<img id="starSong" onclick="onStar(this.id.substring(8) - 1)" src="<spring:theme code="ratingOffImage"/>"
style="cursor:pointer" alt="" title=""></td>
style="cursor:pointer;height:18px;" alt="" title=""></td>
<td class="fit">
<img id="play" src="<spring:theme code="playImage"/>" alt="<fmt:message key="common.play"/>" title="<fmt:message key="common.play"/>"
style="padding-right:0.1em;cursor:pointer" onclick="onPlay(this.id.substring(4) - 1)"></td>
style="padding-right:0.1em;cursor:pointer;height:18px;" onclick="onPlay(this.id.substring(4) - 1)"></td>
<td class="fit">
<img id="add" src="<spring:theme code="addImage"/>" alt="<fmt:message key="common.add"/>" title="<fmt:message key="common.add"/>"
style="padding-right:0.1em;cursor:pointer" onclick="onAdd(this.id.substring(3) - 1)"></td>
style="padding-right:0.1em;cursor:pointer;height:18px;" onclick="onAdd(this.id.substring(3) - 1)"></td>
<td class="fit" style="padding-right:30px">
<img id="addNext" src="<spring:theme code="addNextImage"/>" alt="<fmt:message key="main.addnext"/>" title="<fmt:message key="main.addnext"/>"
style="padding-right:0.1em;cursor:pointer" onclick="onAddNext(this.id.substring(7) - 1)"></td>
style="padding-right:0.1em;cursor:pointer;height:18px;" onclick="onAddNext(this.id.substring(7) - 1)"></td>
<td class="fit rightalign"><span id="index">1</span></td>
<td class="fit"><span id="missing" class="playlist-missing"><fmt:message key="playlist.missing"/></span></td>
......@@ -249,7 +249,7 @@
<c:if test="${model.editAllowed}">
<td class="fit">
<img id="removeSong" onclick="onRemove(this.id.substring(10) - 1)" src="<spring:theme code="removeImage"/>"
style="cursor:pointer" alt="<fmt:message key="playlist.remove"/>" title="<fmt:message key="playlist.remove"/>"></td>
style="cursor:pointer;height:18px;" alt="<fmt:message key="playlist.remove"/>" title="<fmt:message key="playlist.remove"/>"></td>
</c:if>
</tr>
</tbody>
......
......@@ -31,10 +31,10 @@ PARAMETERS
<c:choose>
<c:when test="${param.readonly}">
<img src="${imageUrl}" style="margin-right:-3px" alt="" title="<fmt:message key="rating.rating"/> ${param.rating/10}">
<img style="height:18px" src="${imageUrl}" style="margin-right:-3px;height:18px;" alt="" title="<fmt:message key="rating.rating"/> ${param.rating/10}">
</c:when>
<c:otherwise>
<a href="${ratingUrl}"><img src="${imageUrl}" style="margin-right:-3px" alt="" title="<fmt:message key="rating.rating"/> ${i}"></a>
<a href="${ratingUrl}"><img src="${imageUrl}" style="margin-right:-3px;height:18px" alt="" title="<fmt:message key="rating.rating"/> ${i}"></a>
</c:otherwise>
</c:choose>
......@@ -47,5 +47,5 @@ PARAMETERS
</sub:url>
<c:if test="${not param.readonly}">
&nbsp;| <a href="${clearRatingUrl}"><img src="<spring:theme code="clearRatingImage"/>" alt="" title="<fmt:message key="rating.clearrating"/>" style="margin-right:5px"></a>
&nbsp;| <a href="${clearRatingUrl}"><img src="<spring:theme code="clearRatingImage"/>" alt="" title="<fmt:message key="rating.clearrating"/>" style="margin-right:5px;height:18px"></a>
</c:if>
......@@ -81,8 +81,8 @@
<table style="margin:0;padding-top:5px">
<tr>
<td style="padding-right:4.5em;">
<img id="show-left-frame" src="<spring:theme code="viewAsListImage"/>" onclick="showLeftFrame()" alt="" style="display:${model.showSideBar ? 'none' : 'inline'};cursor:pointer">
<img id="hide-left-frame" src="<spring:theme code="viewAsListImage"/>" onclick="hideLeftFrame()" alt="" style="display:${model.showSideBar ? 'inline' : 'none'};cursor:pointer">
<img id="show-left-frame" src="<spring:theme code="sidebarImage"/>" onclick="showLeftFrame()" alt="" style="display:${model.showSideBar ? 'none' : 'inline'};cursor:pointer">
<img id="hide-left-frame" src="<spring:theme code="sidebarImage"/>" onclick="hideLeftFrame()" alt="" style="display:${model.showSideBar ? 'inline' : 'none'};cursor:pointer">
</td>
<td style="min-width:3em;padding-right:1em;text-align: center">
<a href="home.view?" target="main"><img src="<spring:theme code="homeImage"/>" title="${home}" alt="${home}"></a>
......@@ -133,7 +133,8 @@
<td style="padding-left:15pt;padding-right:5pt;vertical-align: middle;width: 100%;text-align: center">
<c:if test="${model.showAvatar}">
<c:choose>
<c:when test="${model.showAvatar}">
<sub:url value="avatar.view" var="avatarUrl">
<sub:param name="username" value="${model.user.username}"/>
</sub:url>
......@@ -142,10 +143,15 @@
<img src="${avatarUrl}" alt="" width="30" height="30">
<c:if test="${model.user.settingsRole}"></a></c:if>
</div>
</c:if>
</c:when>
<c:otherwise>
<img src="<spring:theme code="logoutImage"/>" alt="logout" height="24">
</c:otherwise>
</c:choose>
<div class="detail">
<fmt:message key="top.logout" var="logout"><fmt:param value="${model.user.username}"/></fmt:message>
<fmt:message key="top.logout" var="logout"><br/>
<fmt:param value="${model.user.username}"/></fmt:message>
<a href="<c:url value="/logout"/>" target="_top">${fn:escapeXml(logout)}</a>
</div>
</td>
......
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-log-out"><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"></path><polyline points="16 17 21 12 16 7"></polyline><line x1="21" y1="12" x2="9" y2="12"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sidebar"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect><line x1="9" y1="3" x2="9" y2="21"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-plus"><line x1="12" y1="5" x2="12" y2="19"></line><line x1="5" y1="12" x2="19" y2="12"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="#696969"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather feather-plus-circle"
version="1.1"
id="svg8"
sodipodi:docname="add_overlay.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1366"
inkscape:window-height="747"
id="namedview10"
showgrid="false"
inkscape:zoom="19.666667"
inkscape:cx="18.32376"
inkscape:cy="14.036397"
inkscape:window-x="0"
inkscape:window-y="21"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<circle
cx="12"
cy="12"
r="10"
id="circle2"
style="fill:#696969;fill-opacity:1" />
<line
x1="12"
y1="8"
x2="12"
y2="16"
id="line4"
style="fill:none;fill-opacity:1;stroke:#fffffa;stroke-opacity:1" />
<line
x1="8"
y1="12"
x2="16"
y2="12"
id="line6"
style="stroke:#ffffff;stroke-opacity:1" />
<ellipse
cx="11.942599"
cy="12.08386"
id="circle2-3"
style="fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:0.93742383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
rx="11.356136"
ry="11.314013" />
</svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-smartphone"><rect x="5" y="2" width="14" height="20" rx="2" ry="2"></rect><line x1="12" y1="18" x2="12" y2="18"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-cast"><path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path><line x1="2" y1="20" x2="2" y2="20"></line></svg>
\ No newline at end of file
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-cast"><path d="M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6"></path><line x1="2" y1="20" x2="2" y2="20"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-pause"><rect x="6" y="4" width="4" height="16"></rect><rect x="14" y="4" width="4" height="16"></rect></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right"><polyline points="9 18 15 12 9 6"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-trash-2"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"></path><line x1="10" y1="11" x2="10" y2="17"></line><line x1="14" y1="11" x2="14" y2="17"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevrons-right"><polyline points="13 17 18 12 13 7"></polyline><polyline points="6 17 11 12 6 7"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-dollar-sign"><line x1="12" y1="1" x2="12" y2="23"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-down"><line x1="12" y1="5" x2="12" y2="19"></line><polyline points="19 12 12 19 5 12"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-download"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-alert-octagon"><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon><line x1="12" y1="8" x2="12" y2="12"></line><line x1="12" y1="16" x2="12" y2="16"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-info"><circle cx="12" cy="12" r="10"></circle><line x1="12" y1="16" x2="12" y2="12"></line><line x1="12" y1="8" x2="12" y2="8"></line></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-home"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path><polyline points="9 22 9 12 15 12 15 22"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#696969" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file-text"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><polyline points="14 2 14 8 20 8"></polyline><line x1="16" y1="13" x2="8" y2="13"></line><line x1="16" y1="17" x2="8" y2="17"></line><polyline points="10 9 9 9 8 9"></polyline></svg>