%PDF- %PDF-
Direktori : /proc/309157/root/home/waritko/subsonic/ROOT/WEB-INF/jsp/ |
Current File : //proc/309157/root/home/waritko/subsonic/ROOT/WEB-INF/jsp/artists.jsp |
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head> <%@ include file="head.jsp" %> <%@ include file="jquery.jsp" %> <script type="text/javascript" src="<c:url value="/dwr/engine.js"/>"></script> <script type="text/javascript" src="<c:url value="/dwr/interface/multiService.js"/>"></script> <script type="text/javascript" src="<c:url value="/dwr/interface/starService.js"/>"></script> <style type="text/css"> .browse-index-shortcut { padding-bottom: 8px; font-size: 105%; line-height: 100%; font-weight: 300; } .browse-index-title { clear: both; font-size: 4em; line-height: 100%; padding-top: 20px; padding-bottom: 5px; } .browse-artist { float: left; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; width: 12em; padding: 0.2em 1.5em 0.2em 1.5em; font-weight: 300; } </style> <script type="text/javascript" language="javascript"> function changeMusicFolder(musicFolderId) { multiService.setSelectedMusicFolder(musicFolderId, function() { location.href = "artists.view"; <c:if test="${model.showIndexInSideBar}"> top.left.location.href = top.left.location.href; </c:if> }); } function filterArtists(element) { var filter = $(element).val().toLowerCase(); $(".browse-artist").each(function() { var artist = $(this).text().toLowerCase(); $(this).toggle(artist.indexOf(filter) != -1); }); $(".browse-index-title").each(function() { var show = $(this).nextUntil(".browse-index-title", ".browse-artist:visible").length > 0; $(this).toggle(show); }); } function toggleStar(mediaFileId, element) { starService.star(mediaFileId, !$(element).hasClass("fa-star")); $(element).toggleClass("fa-star fa-star-o starred"); } </script> </head> <body class="bgcolor1 mainframe"> <a name="top"></a> <div style="display:flex; align-items:center"> <h1 style="flex:1"><i class="fa fa-sort-alpha-asc icon"></i> <fmt:message key="top.artists"/></h1> <span style="margin-right:3em"> <c:choose> <c:when test="${model.scanning}"> <i class="fa fa-refresh fa-fw icon"></i> <a href="artists.view"><fmt:message key="common.refresh"/></a> </c:when> <c:otherwise> <i class="fa fa-refresh fa-fw icon"></i> <a href="artists.view?refresh=true"><fmt:message key="common.refresh"/></a> </c:otherwise> </c:choose> </span> <input style="margin-right:3em; flex-shrink:1; width:180px" type="text" placeholder="<fmt:message key="common.filter"/>" onclick="select();" onkeyup="filterArtists(this)"> </div> <div style="clear:both; position:fixed; top:0; right:0; padding:1.25em 0.75em 0.25em 0.75em; text-align:center"> <div class="browse-index-shortcut"><i class="fa fa-arrow-up fa-fw icon clickable" onclick="location.href='#top'"></i></div> <c:forEach items="${model.indexes}" var="index"> <div class="browse-index-shortcut"><a href="#${index.index}">${index.index}</a></div> </c:forEach> </div> <c:if test="${fn:length(model.musicFolders) > 1}"> <h2> <span class="${empty model.selectedMusicFolder ? 'headerSelected' : 'header'}"><a href="#" onclick="changeMusicFolder(-1)"><fmt:message key="left.allfolders"/></a></span> <c:forEach items="${model.musicFolders}" var="musicFolder" varStatus="loopStatus"> | <span class="${model.selectedMusicFolder.id == musicFolder.id ? 'headerSelected' : 'header'}"><a href="#" onclick="changeMusicFolder(${musicFolder.id})">${fn:escapeXml(musicFolder.name)}</a></span> </c:forEach> </h2> </c:if> <div style="padding-top:1em; padding-bottom:0.4em"> <c:forEach items="${model.shortcuts}" var="shortcut"> <sub:url value="main.view" var="mainUrl"> <sub:param name="id" value="${shortcut.id}"/> </sub:url> <input type="button" style="margin-right:0.6em; margin-bottom:0.6em" value="${fn:escapeXml(shortcut.name)}" onclick="location.href='${mainUrl}'"> </c:forEach> </div> <c:forEach items="${model.indexedArtists}" var="entry"> <a name="${fn:escapeXml(entry.key.index)}"></a> <div class="browse-index-title">${fn:escapeXml(entry.key.index)}</div> <c:forEach items="${entry.value}" var="artist"> <sub:url value="main.view" var="mainUrl"> <c:forEach items="${artist.mediaFiles}" var="mediaFile"> <sub:param name="id" value="${mediaFile.id}"/> </c:forEach> </sub:url> <div class="browse-artist"> <a target="main" href="${mainUrl}" title="${fn:escapeXml(artist.name)}">${fn:escapeXml(artist.name)}</a> </div> </c:forEach> </c:forEach> <div style="clear:both; padding-top:2em"></div> <c:if test="${not empty model.singleSongs}"> <table class="music"> <tr> <th colspan="5"></th> <c:if test="${model.visibility.trackNumberVisible}"> <th class="fit right">#</th> </c:if> <th class="truncate"><fmt:message key="lyrics.song"/></th> <c:if test="${model.visibility.albumVisible}"> <th class="truncate"><fmt:message key="personalsettings.album"/></th> </c:if> <c:if test="${model.visibility.artistVisible}"> <th class="truncate"><fmt:message key="personalsettings.artist"/></th> </c:if> <c:if test="${model.visibility.genreVisible}"> <th class="fit left"><fmt:message key="personalsettings.genre"/></th> </c:if> <c:if test="${model.visibility.yearVisible}"> <th class="fit left"><fmt:message key="personalsettings.year"/></th> </c:if> <c:if test="${model.visibility.formatVisible}"> <th class="fit left"><fmt:message key="personalsettings.format"/></th> </c:if> <c:if test="${model.visibility.fileSizeVisible}"> <th class="fit left"><fmt:message key="personalsettings.filesize"/></th> </c:if> <c:if test="${model.visibility.durationVisible}"> <th class="fit center"><i class="fa fa-lg fa-clock-o"></i></th> </c:if> <c:if test="${model.visibility.bitRateVisible}"> <th class="fit left"><fmt:message key="personalsettings.bitrate"/></th> </c:if> </tr> <c:forEach items="${model.singleSongs}" var="song" varStatus="loopStatus"> <%--@elvariable id="song" type="net.sourceforge.subsonic.domain.MediaFile"--%> <tr style="margin:0;padding:0;border:0"> <c:import url="playButtons.jsp"> <c:param name="id" value="${song.id}"/> <c:param name="video" value="${song.video and model.player.web}"/> <c:param name="playEnabled" value="${model.user.streamRole and not model.partyMode}"/> <c:param name="addEnabled" value="${model.user.streamRole and (not model.partyMode or not song.directory)}"/> <c:param name="downloadEnabled" value="${model.user.downloadRole and not model.partyMode}"/> <c:param name="starEnabled" value="true"/> <c:param name="starred" value="${not empty song.starredDate}"/> <c:param name="asTable" value="true"/> </c:import> <c:if test="${model.visibility.trackNumberVisible}"> <td class="fit right"> <span class="detail">${song.trackNumber}</span> </td> </c:if> <td class="truncate"> <span class="songTitle" title="${fn:escapeXml(song.title)}">${fn:escapeXml(song.title)}</span> </td> <c:if test="${model.visibility.albumVisible}"> <td class="truncate"> <span class="detail" title="${fn:escapeXml(song.albumName)}">${fn:escapeXml(song.albumName)}</span> </td> </c:if> <c:if test="${model.visibility.artistVisible}"> <td class="truncate"> <span class="detail" title="${fn:escapeXml(song.artist)}">${fn:escapeXml(song.artist)}</span> </td> </c:if> <c:if test="${model.visibility.genreVisible}"> <td class="fit left"> <span class="detail">${fn:escapeXml(song.genre)}</span> </td> </c:if> <c:if test="${model.visibility.yearVisible}"> <td class="fit left"> <span class="detail">${song.year}</span> </td> </c:if> <c:if test="${model.visibility.formatVisible}"> <td class="fit left"> <span class="detail">${fn:toLowerCase(song.format)}</span> </td> </c:if> <c:if test="${model.visibility.fileSizeVisible}"> <td class="fit left"> <span class="detail"><sub:formatBytes bytes="${song.fileSize}"/></span> </td> </c:if> <c:if test="${model.visibility.durationVisible}"> <td class="fit right"> <span class="detail">${song.durationString}</span> </td> </c:if> <c:if test="${model.visibility.bitRateVisible}"> <td class="fit left"> <span class="detail"> <c:if test="${not empty song.bitRate}"> ${song.bitRate} Kbps ${song.variableBitRate ? "vbr" : ""} </c:if> <c:if test="${song.video and not empty song.width and not empty song.height}"> (${song.width}x${song.height}) </c:if> </span> </td> </c:if> </tr> </c:forEach> </table> </c:if> <div style="padding-top:2em"></div> </body></html>