My fork of airsonic with experimental fixes and improvements. See branch "custom"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

98 lines
4.1 KiB

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="iso-8859-1" %>
<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/util.js'/>"></script>
<script type="text/javascript" src="<c:url value='/dwr/interface/nowPlayingService.js'/>"></script>
<script type="text/javascript" src="<c:url value='/script/utils.js'/>"></script>
<script type="text/javascript">
function init() {
dwr.engine.setErrorHandler(null);
startGetScanningStatusTimer();
<c:if test="${model.showNowPlaying}">
startGetNowPlayingTimer();
</c:if>
}
function startGetNowPlayingTimer() {
nowPlayingService.getNowPlaying(getNowPlayingCallback);
setTimeout("startGetNowPlayingTimer()", 10000);
}
function getNowPlayingCallback(nowPlaying) {
var html = nowPlaying.length == 0 ? "" : "<h2><fmt:message key="main.nowplaying"/></h2><table style='width:100%'>";
for (var i = 0; i < nowPlaying.length; i++) {
html += "<tr><td colspan='2' class='detail' style='padding-top:1em;white-space:nowrap'>";
if (nowPlaying[i].avatarUrl != null) {
html += "<img alt='Avatar' src='" + nowPlaying[i].avatarUrl + "' style='padding-right:5pt;width:30px;height:30px'>";
}
html += "<b>" + nowPlaying[i].username + "</b></td></tr>";
html += "<tr><td class='detail' style='padding-right:1em'>" +
"<a title='" + nowPlaying[i].tooltip + "' target='main' href='" + nowPlaying[i].albumUrl + "'>";
if (nowPlaying[i].artist != null) {
html += nowPlaying[i].artist + "<br/>";
}
html += "<span class='songTitle'>" + nowPlaying[i].title + "</span></a><br/>";
if (nowPlaying[i].lyricsUrl != null) {
html += "<span class='forward'><a href='" + nowPlaying[i].lyricsUrl + "' onclick=\"return popupSize(this, 'lyrics', 500, 550)\">" +
"<fmt:message key="main.lyrics"/>" + "</a></span>";
}
html += "</td><td>" +
"<a title='" + nowPlaying[i].tooltip + "' target='main' href='" + nowPlaying[i].albumUrl + "'>" +
"<img alt='Cover art' src='" + nowPlaying[i].coverArtUrl + "' class='dropshadow' height='60' width='60'></a>" +
"</td></tr>";
var minutesAgo = nowPlaying[i].minutesAgo;
if (minutesAgo > 4) {
html += "<tr><td class='detail' colspan='2'>" + minutesAgo + " <fmt:message key="main.minutesago"/></td></tr>";
}
}
html += "</table>";
$("#nowPlaying").html(html);
}
function startGetScanningStatusTimer() {
nowPlayingService.getScanningStatus(getScanningStatusCallback);
}
function getScanningStatusCallback(scanInfo) {
$("#scanCount").text(scanInfo.count);
if (scanInfo.scanning) {
$("#scanningStatus").show();
setTimeout("startGetScanningStatusTimer()", 1000);
} else {
$("#scanningStatus").hide();
setTimeout("startGetScanningStatusTimer()", 15000);
}
}
</script>
</head>
<body class="bgcolor1 rightframe" style="padding-top:2em" onload="init()">
<c:if test="${model.newVersionAvailable}">
<div class="warning" style="padding-bottom: 1em">
<fmt:message key="top.upgrade"><fmt:param value="${model.brand}"/><fmt:param value="${model.latestVersion}"/></fmt:message>
</div>
</c:if>
<div id="scanningStatus" style="display: none;" class="warning">
<img src="<spring:theme code='scanningImage'/>" title="" alt=""> <fmt:message key="main.scanning"/> <span id="scanCount"></span>
</div>
<div id="nowPlaying"></div>
</body>
</html>