[xiph-commits] r19099 - in icecast/trunk/icecast: admin doc web

dm8tbr at svn.xiph.org dm8tbr at svn.xiph.org
Sat Mar 1 08:38:15 PST 2014


Author: dm8tbr
Date: 2014-03-01 08:38:15 -0800 (Sat, 01 Mar 2014)
New Revision: 19099

Removed:
   icecast/trunk/icecast/web/corner_bottomleft.jpg
   icecast/trunk/icecast/web/corner_bottomright.jpg
   icecast/trunk/icecast/web/corner_topleft.jpg
   icecast/trunk/icecast/web/corner_topright.jpg
   icecast/trunk/icecast/web/key.gif
Modified:
   icecast/trunk/icecast/admin/listclients.xsl
   icecast/trunk/icecast/admin/listmounts.xsl
   icecast/trunk/icecast/admin/manageauth.xsl
   icecast/trunk/icecast/admin/moveclients.xsl
   icecast/trunk/icecast/admin/response.xsl
   icecast/trunk/icecast/admin/stats.xsl
   icecast/trunk/icecast/admin/updatemetadata.xsl
   icecast/trunk/icecast/doc/icecast2_config_file.html
   icecast/trunk/icecast/doc/icecast2_stats.html
   icecast/trunk/icecast/web/Makefile.am
   icecast/trunk/icecast/web/auth.xsl
   icecast/trunk/icecast/web/server_version.xsl
   icecast/trunk/icecast/web/status.xsl
   icecast/trunk/icecast/web/style.css
Log:
Web output properly redone, credit to ePirat.

Now validates completely as XHTML1.0 strict.
Also improves rendering on mobile devices.


Modified: icecast/trunk/icecast/admin/listclients.xsl
===================================================================
--- icecast/trunk/icecast/admin/listclients.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/listclients.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,100 +1,95 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/icestats" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Admin</h2>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a>
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a>
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a>
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-
-<h1>Listener Stats</h1>
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<xsl:for-each select="source">
-<div class="streamheader">
-    <table cellspacing="0" cellpadding="0" >
-        <colgroup align="left" />
-        <colgroup align="right" width="300" />
-        <tr>
-            <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
-            <xsl:choose>
-                <xsl:when test="authenticator">
-                    <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
-                </xsl:when>
-                <xsl:otherwise>
-                    <td align="right">
-                        <a href="{@mount}.m3u">M3U </a>
-                        <a href="{@mount}.xspf">XSPF </a>
-                        <a href="{@mount}.vclt">VCLT</a>
-                    </td>
-                </xsl:otherwise>
-            </xsl:choose>
-    </tr></table>
-</div>
-
-<table border="0" cellpadding="1" cellspacing="5" style="background-color: 444444">
-	<tr>        
-	    <td align="center">
-			<a class="nav2" href="listclients.xsl?mount={@mount}">List Clients</a>
-        	<a class="nav2" href="moveclients.xsl?mount={@mount}">Move Listeners</a>
-			<a class="nav2" href="updatemetadata.xsl?mount={@mount}">Update Metadata</a>
-        	<a class="nav2" href="killsource.xsl?mount={@mount}">Kill Source</a>
-	    </td></tr>
-	</table>
-<br />
-<table cellspacing="0" cellpadding="5" border="1" style="bordercolor: #C0C0C0" >
-		<tr>
-				<td ><center><b>IP</b></center></td>
-				<td ><center><b>Seconds Connected</b></center></td>
-				<td ><center><b>User Agent</b></center></td>
-				<td ><center><b>Action</b></center></td>
-		</tr>
-<xsl:variable name = "themount" ><xsl:value-of select="@mount" /></xsl:variable>
-<xsl:for-each select="listener">
-		<tr>
-				<td align="center"><xsl:value-of select="IP" /><xsl:if test="username"> (<xsl:value-of select="username" />)</xsl:if></td>
-				<td align="center"><xsl:value-of select="Connected" /></td>
-				<td align="center"><xsl:value-of select="UserAgent" /></td>
-				<td align="center"><a href="killclient.xsl?mount={$themount}&amp;id={ID}">Kick</a></td>
-		</tr>
-</xsl:for-each>
-</table>
-<br />
-<br />
-</xsl:for-each>
-<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<h2>Listener Stats</h2>
+	<xsl:for-each select="source">
+		<div class="roundbox">
+			<div class="mounthead">
+				<h3>Mountpoint <xsl:value-of select="@mount" /></h3>
+				<div class="right">
+					<xsl:choose>
+						<xsl:when test="authenticator">
+							<a class="auth" href="/auth.xsl">Login</a>
+						</xsl:when>
+						<xsl:otherwise>
+							<ul class="mountlist">
+								<li><a class="play" href="{@mount}.m3u">M3U</a></li>
+								<li><a class="play" href="{@mount}.xspf">XSPF</a></li>
+								<li><a class="play" href="{@mount}.vclt">VCLT</a></li>
+							</ul>
+						</xsl:otherwise>
+					</xsl:choose>
+				</div>
+			</div>
+			<div class="mountcont">
+				<ul class="nav">
+					<li class="active"><a href="listclients.xsl?mount={@mount}">List Clients</a></li>
+					<li><a href="moveclients.xsl?mount={@mount}">Move Listeners</a></li>
+					<li><a href="updatemetadata.xsl?mount={@mount}">Update Metadata</a></li>
+					<xsl:if test="authenticator">
+						<li><a href="manageauth.xsl?mount={@mount}">Manage Authentication</a></li>
+					</xsl:if>
+					<li><a href="killsource.xsl?mount={@mount}">Kill Source</a></li>
+				</ul>
+				<xsl:choose>
+					<xsl:when test="listener">
+						<div class="scrolltable">
+							<table border="1">
+								<thead>
+									<tr>
+										<td>IP</td>
+										<td>Sec. connected</td>
+										<td>User Agent</td>
+										<td>Action</td>
+									</tr>
+								</thead>
+								<tbody>
+									<xsl:variable name = "themount"><xsl:value-of select="@mount" /></xsl:variable>
+									<xsl:for-each select="listener">
+										<tr>
+											<td>
+												<xsl:value-of select="IP" />
+												<xsl:if test="username">
+													(<xsl:value-of select="username" />)
+												</xsl:if>
+											</td>
+											<td><xsl:value-of select="Connected" /></td>
+											<td><xsl:value-of select="UserAgent" /></td>
+											<td><a href="killclient.xsl?mount={$themount}&amp;id={ID}">Kick</a></td>
+										</tr>
+									</xsl:for-each>
+								</tbody>
+							</table>
+						</div>
+					</xsl:when>
+					<xsl:otherwise>
+						<p>No listeners connected</p>
+					</xsl:otherwise>
+				</xsl:choose>
+			</div>
+		</div>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>
-</xsl:stylesheet>
+</xsl:stylesheet>
\ No newline at end of file

Modified: icecast/trunk/icecast/admin/listmounts.xsl
===================================================================
--- icecast/trunk/icecast/admin/listmounts.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/listmounts.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,83 +1,61 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/icestats" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Admin</h2>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a>
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a>
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a>
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-<h1>Active Mountpoints</h1>
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<xsl:for-each select="source">
-<div class="streamheader">
-    <table cellspacing="0" cellpadding="0" >
-        <colgroup align="left" />
-        <colgroup align="right" width="300" />
-        <tr>
-            <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
-            <xsl:choose>
-                <xsl:when test="authenticator">
-                    <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
-                </xsl:when>
-                <xsl:otherwise>
-                    <td align="right">
-                        <a href="{@mount}.m3u">M3U</a>
-                        <a href="{@mount}.xspf">XSPF</a>
-                        <a href="{@mount}.vclt">VCLT</a>
-                    </td>
-                </xsl:otherwise>
-            </xsl:choose>
-    </tr></table>
-</div>
-
-<table border="0" cellpadding="1" cellspacing="5" style="background-color: 444444">
-	<tr>        
-	    <td align="center">
-			<a class="nav2" href="listclients.xsl?mount={@mount}">List Clients</a>
-        	<a class="nav2" href="moveclients.xsl?mount={@mount}">Move Listeners</a>
-			<a class="nav2" href="updatemetadata.xsl?mount={@mount}">Update Metadata</a>
-        	<a class="nav2" href="killsource.xsl?mount={@mount}">Kill Source</a>
-                <xsl:if test="authenticator"><a class="nav2" href="manageauth.xsl?mount={@mount}">Manage Authentication</a></xsl:if>
-	    </td></tr>
-	</table>
-<br />
-<p><xsl:value-of select="listeners" /> Listener(s)</p>
-<p><br /></p>
-</xsl:for-each>
-<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<h2>Active Mountpoints</h2>
+	<xsl:for-each select="source">
+		<div class="roundbox">
+			<div class="mounthead">
+				<h3 class="mount">Mountpoint <xsl:value-of select="@mount" /></h3>
+				<div class="right">
+					<xsl:choose>
+						<xsl:when test="authenticator">
+							<a class="auth" href="/auth.xsl">Login</a>
+						</xsl:when>
+						<xsl:otherwise>
+							<ul class="mountlist">
+								<li><a class="play" href="{@mount}.m3u">M3U</a></li>
+								<li><a class="play" href="{@mount}.xspf">XSPF</a></li>
+								<li><a class="play" href="{@mount}.vclt">VCLT</a></li>
+							</ul>
+						</xsl:otherwise>
+					</xsl:choose>
+				</div>
+			</div>
+			<div class="mountcont">
+				<ul class="nav">
+					<li><a href="listclients.xsl?mount={@mount}">List Clients</a></li>
+					<li><a href="moveclients.xsl?mount={@mount}">Move Listeners</a></li>
+					<li><a href="updatemetadata.xsl?mount={@mount}">Update Metadata</a></li>
+					<xsl:if test="authenticator">
+						<li><a href="manageauth.xsl?mount={@mount}">Manage Authentication</a></li>
+					</xsl:if>
+					<li><a href="killsource.xsl?mount={@mount}">Kill Source</a></li>
+				</ul>
+				<p><xsl:value-of select="listeners" /> Listener(s)</p>
+			</div>
+		</div>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>
-</xsl:stylesheet>
+</xsl:stylesheet>
\ No newline at end of file

Modified: icecast/trunk/icecast/admin/manageauth.xsl
===================================================================
--- icecast/trunk/icecast/admin/manageauth.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/manageauth.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,96 +1,91 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/icestats" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Admin</h2>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a>
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a>
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a>
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<xsl:for-each select="iceresponse">
-<xsl:value-of select="message" /> 
-</xsl:for-each>
-<xsl:for-each select="source">
-<h3>
-<xsl:if test="server_name"><xsl:value-of select="server_name" /> </xsl:if>
-(<xsl:value-of select="@mount" />)</h3>
-	<table border="0" cellpadding="1" cellspacing="5" style="background-color: 444444">
-	<tr>        
-	    <td align="center">
-			<a class="nav2" href="listclients.xsl?mount={@mount}">List Clients</a>
-        	<a class="nav2" href="moveclients.xsl?mount={@mount}">Move Listeners</a>
-			<a class="nav2" href="updatemetadata.xsl?mount={@mount}">Update Metadata</a>
-        	<a class="nav2" href="killsource.xsl?mount={@mount}">Kill Source</a>
-	    </td></tr>
-	</table>
-<br></br>
-<form method="get" action="manageauth.xsl">
-<table cellpadding="2" cellspacing="4" border="0" >
-		<tr>
-				<td ><b>User Id</b></td>
-				<td ></td>
-		</tr>
-<xsl:variable name = "themount" ><xsl:value-of select="@mount" /></xsl:variable>
-<xsl:for-each select="User">
-		<tr>
-				<td><xsl:value-of select="username" /></td>
-				<td><a class="nav2" href="manageauth.xsl?mount={$themount}&amp;username={username}&amp;action=delete">delete</a></td>
-		</tr>
-</xsl:for-each>
-</table>
-<table cellpadding="2" cellspacing="4" border="0" >
-		<tr>
-				<td ><b>User Id</b></td>
-				<td ><b>Password</b></td>
-		</tr>
-		<tr>
-				<td ><input type="text" name="username" /></td>
-				<td ><input type="text" name="password" /></td>
-		</tr>
-		<tr>
-				<td colspan="2"><input type="submit" name="Submit" value="Add New User" /></td>
-		</tr>
-</table>
-<input type="hidden" name="mount" value="{@mount}"/>
-<input type="hidden" name="action" value="add"/>
-</form>
-<br />
-<br />
-</xsl:for-each>
-<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<h2>Manage Authentication</h2>
+	<xsl:if test="iceresponse">
+		<div class="roundbox">
+			<h3>Message</h3>
+			<xsl:for-each select="iceresponse">
+				<xsl:value-of select="message" /><br />
+			</xsl:for-each>
+		</div>
+	</xsl:if>
+	<xsl:for-each select="source">
+		<div class="roundbox">
+			<h3>Mountpoint <xsl:value-of select="@mount" />
+				<xsl:if test="server_name">
+					<small><xsl:value-of select="server_name" /></small>
+				</xsl:if>
+			</h3>
+			<ul class="nav">
+				<li><a href="listclients.xsl?mount={@mount}">List Clients</a></li>
+				<li><a href="moveclients.xsl?mount={@mount}">Move Listeners</a></li>
+				<li><a href="updatemetadata.xsl?mount={@mount}">Update Metadata</a></li>
+				<li><a href="manageauth.xsl?mount={@mount}">Manage Authentication</a></li>
+				<li><a href="killsource.xsl?mount={@mount}">Kill Source</a></li>
+			</ul>
+			<xsl:if test="User">
+				<table border="1">
+					<thead>
+						<tr>
+							<td>User</td>
+							<td>Action</td>
+						</tr>
+					</thead>
+					<tbody>
+						<xsl:variable name="themount"><xsl:value-of select="@mount" /></xsl:variable>
+						<xsl:for-each select="User">
+							<tr>
+								<td>
+									<xsl:value-of select="username" />
+								</td>
+								<td>
+									<a href="manageauth.xsl?mount={$themount}&amp;username={username}&amp;action=delete">Delete</a>
+								</td>
+							</tr>
+						</xsl:for-each>
+					</tbody>
+				</table>
+			</xsl:if>
+			<form class="alignedform" method="get" action="/admin/manageauth.xsl">
+				<fieldset>
+					<legend>Add new user</legend>
+					<p>
+						<label for="username">Username:</label>
+						<input type="text" id="username" name="username"/>
+					</p>
+					<p>
+						<label for="password">Password:</label>
+						<input type="password" id="password" name="password"/>
+					</p>
+					<input type="hidden" name="mount" value="{@mount}"/>
+					<input type="hidden" name="action" value="add"/>
+					<input type="Submit" value="Add"/>
+				</fieldset>
+			</form>
+		</div>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>
-</xsl:stylesheet>
+</xsl:stylesheet>
\ No newline at end of file

Modified: icecast/trunk/icecast/admin/moveclients.xsl
===================================================================
--- icecast/trunk/icecast/admin/moveclients.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/moveclients.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,61 +1,39 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/icestats" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Admin</h2>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a>
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a>
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a>
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-<xsl:variable name = "currentmount" ><xsl:value-of select="current_source" /></xsl:variable>
-<h1>Moving Listeners From (<xsl:value-of select="current_source" />)</h1>
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<h3>Move to which mountpoint ?</h3>
-<xsl:for-each select="source">
-	<table border="0" cellpadding="1" cellspacing="5" >
-	<tr>        
-		<td>Move from (<xsl:copy-of select="$currentmount" />) to (<xsl:value-of select="@mount" />)</td>
-		<td><xsl:value-of select="listeners" /> Listeners</td>
-		<td><a class="nav2" href="moveclients.xsl?mount={$currentmount}&amp;destination={@mount}">Move Clients</a></td>
-	</tr>        
-	</table>
-<br />
-<br />
-</xsl:for-each>
-<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<xsl:variable name = "currentmount" ><xsl:value-of select="current_source" /></xsl:variable>
+	<h2>Moving listeners from <xsl:value-of select="current_source" /></h2>
+	<div class="roundbox">
+		<h3>Move to which mountpoint?</h3>
+		<xsl:for-each select="source">
+			<p>
+				Move from <code><xsl:copy-of select="$currentmount" /></code> to <code><xsl:value-of select="@mount" /></code><br />
+				<xsl:value-of select="listeners" /> listeners<br />
+				<a href="moveclients.xsl?mount={$currentmount}&amp;destination={@mount}">Move clients</a>
+			</p>
+		</xsl:for-each>
+	</div>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
-
 </xsl:template>
-</xsl:stylesheet>
+</xsl:stylesheet>
\ No newline at end of file

Modified: icecast/trunk/icecast/admin/response.xsl
===================================================================
--- icecast/trunk/icecast/admin/response.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/response.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,54 +1,35 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/iceresponse" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<img align="left" src="/icecast.png" /><h2><center>Icecast2 Admin</center></h2>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a> |
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a> | 
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a> | 
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-<h1>Icecast Server Response</h1>
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<h3>Response</h3>
-<xsl:for-each select="/iceresponse">
-Message : <xsl:value-of select="message" /><br></br>
-Return Code: <xsl:value-of select="return" /><br></br>
-</xsl:for-each>
-<br />
-<br />
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<h2>Icecast Server Response</h2>
+	<xsl:for-each select="/iceresponse">
+		<div class="roundbox">
+			<h3>Response</h3>
+			<p>Message: <xsl:value-of select="message" /></p>
+			<p>Return Code: <xsl:value-of select="return" /></p>
+		</div>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
-
 </xsl:template>
 </xsl:stylesheet>

Modified: icecast/trunk/icecast/admin/stats.xsl
===================================================================
--- icecast/trunk/icecast/admin/stats.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/stats.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,121 +1,92 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/icestats" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Admin</h2>
-<!--header menu -->
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a>
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a>
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a>
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p> 
-<!--end header menu -->
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<!--global server stats-->
+	<div class="roundbox">
+		<h3>Global Server Stats</h3>
+		<table class="yellowkeys">
+			<tbody>
+				<xsl:for-each select="/icestats">
+					<xsl:for-each select="*">
+						<xsl:if test = "name()!='source'"> 
+							<tr>
+							   <td><xsl:value-of select="name()" /></td>
+							   <td><xsl:value-of select="." /></td>
+							</tr>
+						</xsl:if>
+					</xsl:for-each>
+				</xsl:for-each>
+			</tbody>
+		</table>
+	</div>
+	<!--end global server stats-->
 
-<!--global server stats-->
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<h3>Global Server Stats</h3>
-<table border="0" cellpadding="4">
-<xsl:for-each select="/icestats">
-<xsl:for-each select="*">
-<xsl:if test = "name()!='source'"> 
-<tr>
-	<td style="width: 130"><xsl:value-of select="name()" /></td>
-	<td class="streamdata"><xsl:value-of select="." /></td>
-</tr>
-</xsl:if>
-</xsl:for-each>
-</xsl:for-each>
-</table>
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-<!--end global server stats-->
-
-<!--mount point stats-->
-<xsl:for-each select="source">
-<xsl:if test = "listeners!=''"> 
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-    <div class="streamheader">
-        <table cellspacing="0" cellpadding="0" >
-            <colgroup align="left" />
-            <colgroup align="right" width="300" />
-            <tr>
-                <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
-                <xsl:choose>
-                    <xsl:when test="authenticator">
-                        <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
-                    </xsl:when>
-                    <xsl:otherwise>
-                        <td align="right">
-                            <a href="{@mount}.m3u">M3U </a>
-                            <a href="{@mount}.xspf">XSPF </a>
-                            <a href="{@mount}.vclt">VCLT</a>
-                        </td>
-                    </xsl:otherwise>
-                </xsl:choose>
-        </tr></table>
-    </div>
-	<table border="0" cellpadding="1" cellspacing="5" style="background-color: 444444">
-	<tr>        
-	    <td align="center">
-		    <a class="nav2" href="listclients.xsl?mount={@mount}">List Clients</a>
-        	<a class="nav2" href="moveclients.xsl?mount={@mount}">Move MountPoints</a>
-        	<a class="nav2" href="updatemetadata.xsl?mount={@mount}">Update Metadata</a>
-        	<a class="nav2" href="killsource.xsl?mount={@mount}">Kill Source</a>
-                <xsl:if test="authenticator"><a class="nav2" href="manageauth.xsl?mount={@mount}">Manage Authentication</a></xsl:if>
-	    </td></tr>
-	</table>
-<br />
-<table cellpadding="5" cellspacing="0" border="0">
-	<xsl:for-each select="*">
-	<tr>
-		<td style="width: 130"><xsl:value-of select="name()" /></td>
-		<td class="streamdata"><xsl:value-of select="." /></td>
-	</tr>
+	<!--mount point stats-->
+	<xsl:for-each select="source">
+		<xsl:if test = "listeners!=''"> 
+			<div class="roundbox">
+				<div class="mounthead">
+					<h3 class="mount">Mountpoint <xsl:value-of select="@mount" /></h3>
+					<div class="right">
+						<xsl:choose>
+							<xsl:when test="authenticator">
+								<a class="auth" href="/auth.xsl">Login</a>
+							</xsl:when>
+							<xsl:otherwise>
+								<ul class="mountlist">
+									<li><a class="play" href="{@mount}.m3u">M3U</a></li>
+									<li><a class="play" href="{@mount}.xspf">XSPF</a></li>
+									<li><a class="play" href="{@mount}.vclt">VCLT</a></li>
+								</ul>
+							</xsl:otherwise>
+						</xsl:choose>
+					</div>
+				</div>
+				<div class="mountcont">
+					<ul class="nav">
+						<li><a href="listclients.xsl?mount={@mount}">List Clients</a></li>
+						<li><a href="moveclients.xsl?mount={@mount}">Move Listeners</a></li>
+						<li><a href="updatemetadata.xsl?mount={@mount}">Update Metadata</a></li>
+						<xsl:if test="authenticator">
+							<li><a href="manageauth.xsl?mount={@mount}">Manage Authentication</a></li>
+						</xsl:if>
+						<li><a href="killsource.xsl?mount={@mount}">Kill Source</a></li>
+					</ul>
+					<table class="yellowkeys">
+						<tbody>
+							<xsl:for-each select="*">
+								<tr>
+									<td><xsl:value-of select="name()" /></td>
+									<td><xsl:value-of select="." /></td>
+								</tr>
+							</xsl:for-each>
+						</tbody>
+					</table>
+				</div>
+			</div>
+		</xsl:if>
 	</xsl:for-each>
-</table>
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-</xsl:if>
-</xsl:for-each>
-<p><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;</p>
-
-
-<!--end mount point stats-->
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<!--end mount point stats-->
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>

Modified: icecast/trunk/icecast/admin/updatemetadata.xsl
===================================================================
--- icecast/trunk/icecast/admin/updatemetadata.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/admin/updatemetadata.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,66 +1,49 @@
-<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
-<xsl:template match = "/icestats" >
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:template match = "/icestats">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="/style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="/style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Admin</h2>
-
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-	<table border="0" cellpadding="1" cellspacing="3">
-	<tr>        
-	    <td align="center">
-	        <a class="nav" href="stats.xsl">Admin Home</a>
-		    <a class="nav" href="listmounts.xsl">List Mountpoints</a>
-        	<a class="nav" href="moveclients.xsl">Move Listeners</a>
-        	<a class="nav" href="/status.xsl">Index</a>
-	    </td></tr>
-	</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-<h1>Update Metadata</h1>
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<xsl:for-each select="source">
-<h3>
-<xsl:if test="server_name"><xsl:value-of select="server_name" /> </xsl:if>
-(<xsl:value-of select="@mount" />)</h3>
-
-<form method="get" action="/admin/metadata.xsl">
-<table border="0" cellpadding="4">
-	<tr><td><p>Metadata : <input type="text" name="song"/></p></td></tr>
-<tr><td><input type="submit" value="Update"/></td></tr>
-</table>
-<div>
-	<input type="hidden" name="mount" value="{@mount}"/>
-	<input type="hidden" name="mode" value="updinfo"/>
-	<input type="hidden" name="charset" value="UTF-8"/>
-</div>
-</form>
-
-<br />
-</xsl:for-each>
-<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1>Icecast2 Admin</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="stats.xsl">Admin Home</a></li>
+			<li><a href="listmounts.xsl">Mountpoint List</a></li>
+			<li><a href="/status.xsl">Public Home</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<h2>Update Metadata</h2>
+	<xsl:for-each select="source">
+		<div class="roundbox">
+			<h3>Mountpoint <xsl:value-of select="@mount" /> 
+				<xsl:if test="server_name">
+					<small><xsl:value-of select="server_name" /></small>
+				</xsl:if>
+			</h3>
+			<form class="alignedform" method="get" action="/admin/metadata.xsl">
+				<p>
+					<label for="song">Metadata:</label>
+					<input type="text" id="song" name="song"/>
+				</p>
+				<p>
+					<input type="submit" value="Update"/>
+					<input type="hidden" name="mount" value="{@mount}"/>
+					<input type="hidden" name="mode" value="updinfo"/>
+					<input type="hidden" name="charset" value="UTF-8"/>
+				</p>
+			</form>
+		</div>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>
-</xsl:stylesheet>
+</xsl:stylesheet>
\ No newline at end of file

Modified: icecast/trunk/icecast/doc/icecast2_config_file.html
===================================================================
--- icecast/trunk/icecast/doc/icecast2_config_file.html	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/doc/icecast2_config_file.html	2014-03-01 16:38:15 UTC (rev 19099)
@@ -31,7 +31,7 @@
 </p>
 <h2>A word of warning</h2>
 <p>
-Please note that, especially for new Icecast users, editing the config file can be quite tricky. <strong>It is thus recommended to start by just changing all passwords, nothing else.</strong> You can then use the source-password to bring up an initial stream and get more comfortable with how Icecast works.
+Please note that, especially for new Icecast users, editing the config file can be quite tricky. <strong>It is thus recommended to make a backup of the original config file and then start by just changing all passwords, nothing else.</strong> You can then use the source-password to bring up an initial stream and get more comfortable with how Icecast works.
 </p>
 <p>
 Should you need to customize the configuration, then make a backup of your working config file, before you make any changes. If Icecast refuses to start it is in most cases due to a malformed config file. In such a case running the following command should point out most XML syntax problems.

Modified: icecast/trunk/icecast/doc/icecast2_stats.html
===================================================================
--- icecast/trunk/icecast/doc/icecast2_stats.html	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/doc/icecast2_stats.html	2014-03-01 16:38:15 UTC (rev 19099)
@@ -12,45 +12,149 @@
 <br />
 <br />
 <br />
+<ul>
+<li><a href="#overview">Overview</a></li>
+<li><a href="#xslt">HTML interface, XSLT generated</a></li>
+<li><a href="#xslt_advanced">Advanced machine readable data, XSLT generated</a></li>
+<li><a href="#available_raw_data">Available raw data</a></li>
+</ul>
+
+<a name="overview"></a>
 <h2>Overview</h2>
-<p>This section contains information about the server statistics available from icecast.  An example stats XML tree will be shown and each element will be described.  The following example stats tree will be used:</p>
+
+<a name="xslt"></a>
+<h2>HTML interface, XSLT generated</h2>
+
+<a name="xslt_advanced"></a>
+<h2>Advanced machine readable data, XSLT generated</h2>
+
+<a name="available_raw_data"></a>
+<h2>Available raw data</h2>
+<p>This section contains information about the raw server statistics data available inside icecast.  An example stats XML tree will be shown and each element will be described.  The following example stats tree will be used (it should not be considered complete nor authoritative):</p>
 <pre>
-&lt;?xml version="1.0"?&gt;
+&lt;?xml version="1.0"?&gt;	
 &lt;icestats&gt;
+	&lt;admin&gt;icemaster at example.org&lt;/admin&gt;
 	&lt;client_connections&gt;13&lt;/client_connections&gt;
+	&lt;clients&gt;2&lt;/clients&gt;
 	&lt;connections&gt;14&lt;/connections&gt;
-	&lt;source_connections&gt;1&lt;/source_connections&gt;
+	&lt;file_connections&gt;1&lt;/file_connections&gt;
+	&lt;host&gt;stream.example.org&lt;/host&gt;
+	&lt;listener_connections&gt;7&lt;/listener_connections&gt;
+	&lt;listeners&gt;1&lt;/listeners&gt;
+	&lt;location&gt;Earth&lt;/location&gt;
+	&lt;server_id&gt;Icecast 2.4.0&lt;/server_id&gt;
+	&lt;server_start&gt;Tue, 01 Apr 2014 23:42:05 +0000&lt;/server_start&gt;
+	&lt;source_client_connections&gt;1&lt;/source_client_connections&gt;
+	&lt;source_relay_connections&gt;0&lt;/source_relay_connections&gt;
+	&lt;source_total_connections&gt;1&lt;/source_total_connections&gt;
 	&lt;sources&gt;1&lt;/sources&gt;
+	&lt;stats&gt;0&lt;/stats&gt;
+	&lt;stats_connections&gt;0&lt;/stats_connections&gt;
 	&lt;source mount="/test.ogg"&gt;
-		&lt;artist&gt;&lt;/artist&gt;
-		&lt;audio_info&gt;ice-samplerate=32000;ice-bitrate=Quality -1;ice-channels=1&lt;/audio_info&gt;
-		&lt;ice-bitrate&gt;Quality -1&lt;/ice-bitrate&gt;
-		&lt;ice-channels&gt;1&lt;/ice-channels&gt;
-		&lt;ice-samplerate&gt;32000&lt;/ice-samplerate&gt;
+		&lt;artist&gt;Test artist&lt;/artist&gt;
+		&lt;audio_bitrate&gt;32000&lt;/audio_bitrate&gt;
+		&lt;audio_channels&gt;2&lt;/audio_channels&gt;
+		&lt;audio_info&gt;samplerate=32000;channels=2;quality=-1;ice-channels=1&lt;/audio_info&gt;
+		&lt;ice-bitrate&gt;32&lt;/ice-bitrate&gt;
+		&lt;listener_peak&gt;2&lt;/listener_peak&gt;
 		&lt;listeners&gt;0&lt;/listeners&gt;
+		&lt;listenurl&gt;http://stream.example.org:8000/test.ogg&lt;/listenurl&gt;
+		&lt;max_listeners&gt;unlimited&lt;/max_listeners&gt;
 		&lt;public&gt;0&lt;/public&gt;
-		&lt;title&gt;&lt;/title&gt;
-		&lt;type&gt;Ogg Vorbis&lt;/type&gt;
+		&lt;quality&gt;-1.00&lt;/quality&gt;
+		&lt;samplerate&gt;32000&lt;/samplerate&gt;
+		&lt;server_description&gt;A stream for testing ogg/vorbis.&lt;/server_description&gt;
+		&lt;server_name&gt;TestStream&lt;/server_name&gt;
+		&lt;server_type&gt;application/ogg&lt;/server_type&gt;
+		&lt;slow_listeners&gt;1&lt;/slow_listeners&gt;
+		&lt;source_ip&gt;203.0.113.42&lt;/source_ip&gt;
+		&lt;stream_start&gt;Wed, 02 Apr 2014 13:37:42 +0000&lt;/stream_start&gt;
+		&lt;subtype&gt;Vorbis&lt;/subtype&gt;
+		&lt;title&gt;Test title&lt;/title&gt;
+		&lt;total_bytes_read&gt;448632&lt;/total_bytes_read&gt;
+		&lt;total_bytes_sent&gt;207463&lt;/total_bytes_sent&gt;
+		&lt;user_agent&gt;IceS 2.0.1&lt;/user_agent&gt;
 	&lt;/source&gt;
 &lt;/icestats&gt;
 </pre>
 <h3>General Statistics</h3>
+<!--
+<h4></h4>
+<div class="indentedbox">
+
+</div>
+-->
+<h4>admin</h4>
+<div class="indentedbox">
+As set in the server config, this should contain contact details for getting in touch with the server administrator. Usually this will be an email address, but as this can be an arbitrary string it could also be a phone number.
+</div>
 <h4>client-connections</h4>
 <div class="indentedbox">
 Client connections are basically anything that is not a source connection.  These include listeners (not concurrent, but cumulative), any admin function accesses, and any static content (file serving) accesses.
 </div>
-<h4>source-connections</h4>
+<h4>clients</h4>
 <div class="indentedbox">
-Source connections are the number of times (cumulative not currently connected) a source has connected to icecast.
+<!--FIXME-->
 </div>
 <h4>connections</h4>
 <div class="indentedbox">
-The total of client + source connections.
+The total of all inbound TCP connections since start-up.
 </div>
+<h4>file_connections</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>host</h4>
+<div class="indentedbox">
+As set in the server config,<!--FIXME-->
+</div>
+<h4>listener_connections</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>listeners</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>location</h4>
+<div class="indentedbox">
+As set in the server config,<!--FIXME-->
+</div>
+<h4>server_id</h4>
+<div class="indentedbox">
+Defaults to the version string of the currently running Icecast server. While not recommended it can be overriden in the server config.
+</div>
+<h4>server_start</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>source_client_connections</h4>
+<div class="indentedbox">
+Source client connections are the number of times (cumulative since start-up, not just currently connected) a source client has connected to icecast.
+</div>
+<h4>source_relay_connections</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>source_total_connections</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
 <h4>sources</h4>
 <div class="indentedbox">
 The total of currently connected sources (mountpoints).
 </div>
+<h4>stats</h4>
+<div class="indentedbox">
+The total of currently connected STATS clients.
+</div>
+<h4>stats_connections</h4>
+<div class="indentedbox">
+Number of times (cumulative since start-up, not just currently connected) a stats client has connected to icecast.
+</div>
+
+
 <h3>Source-specific Statistics</h3>
 <h4>artist</h4>
 <div class="indentedbox">
@@ -60,30 +164,94 @@
 <div class="indentedbox">
 Title of the current song (metadata set by source client).
 </div>
+<h4>audio_bitrate</h4>
+<div class="indentedbox">
+<!--FIXME-->(metadata set by source client).
+</div>
+<h4>audio_channels</h4>
+<div class="indentedbox">
+<!--FIXME-->(metadata set by source client).
+</div>
 <h4>audio-info</h4>
 <div class="indentedbox">
-Information about the bitrate/samplerate/quality of the stream (set by source client). Also used for YP entries.
+Information about the bitrate/samplerate/quality of the stream (metadata set by source client). Also used for YP entries.
 </div>
 <h4>ice-bitrate</h4>
-<h4>ice-samplerate</h4>
-<h4>ice-channels</h4>
+<h4>samplerate</h4>
 <div class="indentedbox">
-Information about the bitrate/samplerate/quality of the stream (set by source client).
+Information about the bitrate/samplerate/quality of the stream (metadata set by source client).
 </div>
+<h4>listener_peak</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
 <h4>listeners</h4>
 <div class="indentedbox">
 The number of currently connected listeners.
 </div>
+<h4>listenurl</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>max_listeners</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
 <h4>public</h4>
 <div class="indentedbox">
-Flag that indicates whether this mount is being listed on a YP (sey by source client).
+Flag that indicates whether this mount is to be listed on a YP (set by source client, can be overriden by server config).
 </div>
-<h4>type</h4>
+<h4>quality</h4>
 <div class="indentedbox">
-Media type of the stream.
+<!--FIXME-->(metadata set by source client).
 </div>
+<h4>samplerate</h4>
+<div class="indentedbox">
+<!--FIXME-->(metadata set by source client).
+</div>
+<h4>server_description</h4>
+<div class="indentedbox">
+<!--FIXME-->(metadata set by source client).
+</div>
+<h4>server_name</h4>
+<div class="indentedbox">
+<!--FIXME-->(metadata set by source client).
+</div>
+<h4>server_type</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>slow_listeners</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>source_ip</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>stream_start</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>subtype</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>total_bytes_read</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>total_bytes_sent</h4>
+<div class="indentedbox">
+<!--FIXME-->
+</div>
+<h4>user_agent</h4>
+<div class="indentedbox">
+HTTP user agent string as sent by the source client.
+</div>
 <br />
 <br />
+Additional data can be accessed through the admin interface, as every page of the admin interface has an XML equivalent.
 <br />
 </div>
 </body>

Modified: icecast/trunk/icecast/web/Makefile.am
===================================================================
--- icecast/trunk/icecast/web/Makefile.am	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/web/Makefile.am	2014-03-01 16:38:15 UTC (rev 19099)
@@ -5,12 +5,7 @@
 webdir = $(pkgdatadir)/web
 dist_web_DATA = status.xsl \
                 status2.xsl \
-                corner_bottomleft.jpg \
-                corner_bottomright.jpg \
-                corner_topleft.jpg \
-                corner_topright.jpg \
                 icecast.png \
-                key.gif \
                 style.css \
                 auth.xsl \
                 server_version.xsl \

Modified: icecast/trunk/icecast/web/auth.xsl
===================================================================
--- icecast/trunk/icecast/web/auth.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/web/auth.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,56 +1,58 @@
 <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
 <xsl:template match = "/icestats" >
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<table border="0" width="100%%">
-<tr>
-<td width="50"></td>
-<td>
-<h2>Authorization Page</h2>
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<xsl:for-each select="source">
-<xsl:choose>
-<xsl:when test="listeners">
-<xsl:if test="authenticator">
-<xsl:if test="server_name"><xsl:value-of select="server_name" /> </xsl:if>
-<h3>(<xsl:value-of select="@mount" />)</h3>
-<form method="GET" action="/admin/buildm3u">
-<table border="0" cellpadding="4">
-<tr><td>Username : <input type="text" name="username"/></td></tr>
-<tr><td>Password : <input type="password" name="password"/></td></tr>
-<tr><td><input type="Submit" value="Login"/></td></tr>
-</table>
-<input type="hidden" name="mount" value="{@mount}"/>
-</form>
-</xsl:if>
-</xsl:when>
-<xsl:otherwise>
-<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
-</xsl:otherwise>
-</xsl:choose>
-<br />
-<br />
-</xsl:for-each>
-<xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<br /><br />
-</td>
-<td width="25"></td></tr>
-</table>
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1 id="header">Icecast2 Status</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="admin/">Administration</a></li>
+			<li><a href="status.xsl">Server Status</a></li>
+			<li><a href="server_version.xsl">Version</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<h2>Authorization Page</h2>
+	<xsl:for-each select="source">
+		<xsl:choose>
+		<xsl:when test="listeners">
+			<xsl:if test="authenticator">
+				<div class="roundbox">
+					<h3 class="mount">
+						Mount Point <xsl:value-of select="@mount" />
+						<xsl:if test="server_name">
+							<small><xsl:value-of select="server_name" /></small>
+						</xsl:if>
+					</h3>
+					<form class="alignedform" method="get" action="/admin/buildm3u">
+						<p>
+							<label for="name">Username: </label>
+							<input id="name" name="username" type="text" />
+						</p>
+						<p>
+							<label for="password">Password: </label>
+							<input id="password" name="password" type="password" />
+						</p>
+						<input type="hidden" name="mount" value="{@mount}" />
+						<input type="submit" value="Login" />
+					</form>
+				</div>
+			</xsl:if>
+		</xsl:when>
+		<xsl:otherwise>
+			<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
+		</xsl:otherwise>
+		</xsl:choose>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>

Deleted: icecast/trunk/icecast/web/corner_bottomleft.jpg
===================================================================
(Binary files differ)

Deleted: icecast/trunk/icecast/web/corner_bottomright.jpg
===================================================================
(Binary files differ)

Deleted: icecast/trunk/icecast/web/corner_topleft.jpg
===================================================================
(Binary files differ)

Deleted: icecast/trunk/icecast/web/corner_topright.jpg
===================================================================
(Binary files differ)

Deleted: icecast/trunk/icecast/web/key.gif
===================================================================
(Binary files differ)

Modified: icecast/trunk/icecast/web/server_version.xsl
===================================================================
--- icecast/trunk/icecast/web/server_version.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/web/server_version.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,88 +1,72 @@
-<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
-<xsl:template match = "/icestats" >
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:template match = "/icestats">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Server Information</h2>
-<p><br /></p>
-<!--index header menu -->
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<table border="0" style="width: 100%" id="table1" cellspacing="0" cellpadding="4">
-	<tr>
-		<td style="background-color: #656565">
-	    <a class="nav" href="admin/">Administration</a>
-		<a class="nav" href="status.xsl">Server Status</a>
-		<a class="nav" href="server_version.xsl">Version</a></td>
-	</tr>
-</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-<!--end index header menu -->
+	<h1 id="header">Server Information</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="admin/">Administration</a></li>
+			<li><a href="status.xsl">Server Status</a></li>
+			<li><a href="server_version.xsl">Version</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
 
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<div class="content">
-<h3>Server Information</h3>
-<table border="0" cellpadding="4">
-<xsl:for-each select="/icestats">
-<tr>
-	<td style="width: 130px">Location</td>
-	<td class="streamdata"><xsl:value-of select="location" /></td>
-</tr>
-<tr>
-	<td style="width: 130px">Admin</td>
-	<td class="streamdata"><xsl:value-of select="admin" /></td>
-</tr>
-<tr>
-    <td style="width: 130px">Host</td>
-    <td class="streamdata"><xsl:value-of select="host" /></td>
-</tr>
-<tr>
-    <td style="width: 130px">Version</td>
-    <td class="streamdata"><xsl:value-of select="server_id" /></td>
-</tr>
-</xsl:for-each>
-<tr>
-	<td style="width: 130px">Download</td>
-	<td class="streamdata"><a class="nav" href="http://icecast.org/download.php">icecast.org</a></td>
-</tr>
-<tr>
-	<td style="width: 130px">Subversion</td>
-	<td class="streamdata"><a class="nav" href="http://icecast.org/svn.php">click here</a></td>
-</tr>
-<tr>
-	<td style="width: 130px">Documentation</td>
-	<td class="streamdata"><a class="nav" href="http://icecast.org/docs.php">click here</a></td>
-</tr>
-<tr>
-	<td style="width: 130px">Stream Directory </td>
-	<td class="streamdata"><a class="nav" href="http://dir.xiph.org/index.php">dir.xiph.org</a></td>
-</tr>
-<tr>
-	<td style="width: 130px">Community</td>
-	<td class="streamdata"><a class="nav" href="http://icecast.org/community.php">click here</a></td>
-</tr>
-</table>
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<div class="roundbox">
+		<h3>Server Information</h3>
+		<table class="yellowkeys">
+			<tbody>
+				<xsl:for-each select="/icestats">
+				<tr>
+					<td>Location</td>
+					<td><xsl:value-of select="location" /></td>
+				</tr>
+				<tr>
+					<td>Admin</td>
+					<td><xsl:value-of select="admin" /></td>
+				</tr>
+				<tr>
+					<td>Host</td>
+					<td><xsl:value-of select="host" /></td>
+				</tr>
+				<tr>
+					<td>Version</td>
+					<td><xsl:value-of select="server_id" /></td>
+				</tr>
+				</xsl:for-each>
+				<tr>
+					<td>Download</td>
+					<td><a href="http://icecast.org/download.php">icecast.org</a></td>
+				</tr>
+				<tr>
+					<td>Subversion</td>
+					<td><a href="http://icecast.org/svn.php">icecast.org/svn.php</a></td>
+				</tr>
+				<tr>
+					<td>Documentation</td>
+					<td><a href="http://icecast.org/docs.php">icecast.org/docs.php</a></td>
+				</tr>
+				<tr>
+					<td>Stream Directory</td>
+					<td><a href="http://dir.xiph.org/index.php">dir.xiph.org</a></td>
+				</tr>
+				<tr>
+					<td>Community</td>
+					<td><a href="http://icecast.org/community.php">icecast.org/community.php</a></td>
+				</tr>
+			</tbody>
+		</table>
+	</div>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>

Modified: icecast/trunk/icecast/web/status.xsl
===================================================================
--- icecast/trunk/icecast/web/status.xsl	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/web/status.xsl	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,131 +1,159 @@
-<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
-<xsl:output omit-xml-declaration="no" method="html" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
-<xsl:template match = "/icestats" >
+<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">
+<xsl:output omit-xml-declaration="no" method="xml" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" indent="yes" encoding="UTF-8" />
+<xsl:template match = "/icestats">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
-<title>Icecast Streaming Media Server</title>
-<link rel="stylesheet" type="text/css" href="style.css" />
+	<title>Icecast Streaming Media Server</title>
+	<link rel="stylesheet" type="text/css" href="style.css" />
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
 </head>
 <body>
-<h2>Icecast2 Status</h2>
-<!--index header menu -->
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<table border="0" width="100%" id="table1" cellspacing="0" cellpadding="4">
-	<tr>
-		<td style="background-color: #656565">
-		<a class="nav" href="admin/">Administration</a>
-		<a class="nav" href="status.xsl">Server Status</a>
-		<a class="nav" href="server_version.xsl">Version</a></td>
-	</tr>
-</table>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-<!--end index header menu -->
-<!--mount point stats-->
-<xsl:for-each select="source">
-<xsl:choose>
-<xsl:when test="listeners">
-<div class="roundcont">
-<div class="roundtop">
-<img src="/corner_topleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-<xsl:text disable-output-escaping="yes">
-&lt;!-- WARNING:
-     DO NOT ATTEMPT TO PARSE ICECAST HTML OUTPUT!
-     The web interface may change completely between releases.
-     If you have a need for automatic processing of server data,
-     please read the appropriate documentation. Latest docs:
-     http://icecast.org/docs/icecast-latest/icecast2_stats.html
---></xsl:text>
-<div class="content">
-    <div class="dummy"></div>   
-    <div class="streamheading">
-        <table cellspacing="0" cellpadding="0">
-            <colgroup align="left" />
-            <colgroup align="right" width="300" />
-            <tr>
-                <td><h3>Mount Point <xsl:value-of select="@mount" /></h3></td>
-                <xsl:choose>
-                    <xsl:when test="authenticator">
-                        <td align="right"><a class="auth" href="/auth.xsl">Login</a></td>
-                    </xsl:when>
-                    <xsl:otherwise>
-                        <td align="right">
-                            <a href="{@mount}.m3u">M3U</a>
-                            <a href="{@mount}.xspf">XSPF</a>
-                            <!-- <a href="{@mount}.vclt">VCLT</a> -->
-                        </td>
-                    </xsl:otherwise>
-                </xsl:choose>
-        </tr></table>
-    </div>
-
-<table border="0" cellpadding="4">
-<xsl:if test="server_name">
-<tr><td>Stream Name:</td><td class="streamstats"> <xsl:value-of select="server_name" /></td></tr>
-</xsl:if>
-<xsl:if test="server_description">
-<tr><td>Stream Description:</td><td class="streamstats"> <xsl:value-of select="server_description" /></td></tr>
-</xsl:if>
-<xsl:if test="server_type">
-<tr><td>Content Type:</td><td class="streamstats"><xsl:value-of select="server_type" /></td></tr>
-</xsl:if>
-<xsl:if test="stream_start">
-<tr><td>Stream started:</td><td class="streamstats"><xsl:value-of select="stream_start" /></td></tr>
-</xsl:if>
-<xsl:if test="bitrate">
-<tr><td>Bitrate:</td><td class="streamstats"> <xsl:value-of select="bitrate" /></td></tr>
-</xsl:if>
-<xsl:if test="quality">
-<tr><td>Quality:</td><td class="streamstats"> <xsl:value-of select="quality" /></td></tr>
-</xsl:if>
-<xsl:if test="video_quality">
-<tr><td>Video Quality:</td><td class="streamstats"> <xsl:value-of select="video_quality" /></td></tr>
-</xsl:if>
-<xsl:if test="frame_size">
-<tr><td>Framesize:</td><td class="streamstats"> <xsl:value-of select="frame_size" /></td></tr>
-</xsl:if>
-<xsl:if test="frame_rate">
-<tr><td>Framerate:</td><td class="streamstats"> <xsl:value-of select="frame_rate" /></td></tr>
-</xsl:if>
-<xsl:if test="listeners">
-<tr><td>Listeners (current):</td><td class="streamstats"> <xsl:value-of select="listeners" /></td></tr>
-</xsl:if>
-<xsl:if test="listener_peak">
-<tr><td>Listeners (peak):</td><td class="streamstats"> <xsl:value-of select="listener_peak" /></td></tr>
-</xsl:if>
-<xsl:if test="genre">
-<tr><td>Genre:</td><td class="streamstats"> <xsl:value-of select="genre" /></td></tr>
-</xsl:if>
-<xsl:if test="server_url">
-<tr><td>Stream URL:</td><td class="streamstats"> <a href="{server_url}"><xsl:value-of select="server_url" /></a></td></tr>
-</xsl:if>
-<tr><td>Currently playing:</td><td class="streamstats"> 
-<xsl:if test="artist"><xsl:value-of select="artist" /> - </xsl:if><xsl:value-of select="title" /></td></tr>
-</table>
-</div>
-<div class="roundbottom">
-<img src="/corner_bottomleft.jpg" class="corner" style="display: none" alt="" />
-</div>
-</div>
-<p><br /></p>
-</xsl:when>
-<xsl:otherwise>
-<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
-</xsl:otherwise>
-</xsl:choose>
-
-</xsl:for-each>
-<p><xsl:text disable-output-escaping="yes">&amp;</xsl:text>nbsp;</p>
-
-
-<div class="poster">Support icecast development at <a class="nav" href="http://www.icecast.org">www.icecast.org</a></div>
+	<h1 id="header">Icecast2 Status</h1>
+	<!--index header menu -->
+	<div id="menu">
+		<ul>
+			<li><a href="admin/">Administration</a></li>
+			<li><a href="status.xsl">Server Status</a></li>
+			<li><a href="server_version.xsl">Version</a></li>
+		</ul>
+	</div>
+	<!--end index header menu -->
+	<xsl:text disable-output-escaping="yes">
+	&lt;!-- WARNING:
+	 DO NOT ATTEMPT TO PARSE ICECAST HTML OUTPUT!
+	 The web interface may change completely between releases.
+	 If you have a need for automatic processing of server data,
+	 please read the appropriate documentation. Latest docs:
+	 http://icecast.org/docs/icecast-latest/icecast2_stats.html
+	-->
+	</xsl:text>
+	<!--mount point stats-->
+	<xsl:for-each select="source">
+		<xsl:choose>
+			<xsl:when test="listeners">
+			<div class="roundbox">
+				<div class="mounthead">
+					<h3 class="mount">Mount Point <xsl:value-of select="@mount" /></h3>
+					<div class="right">
+						<xsl:choose>
+							<xsl:when test="authenticator">
+								<a class="auth" href="/auth.xsl">Login</a>
+							</xsl:when>
+							<xsl:otherwise>
+								<ul class="mountlist">
+									<li><a class="play" href="{@mount}.m3u">M3U</a></li>
+									<li><a class="play" href="{@mount}.xspf">XSPF</a></li>
+									<!-- <li><a class="play" href="{@mount}.vclt">VCLT</a></li> -->
+								</ul>
+							</xsl:otherwise>
+						</xsl:choose>
+					</div>
+				</div>
+				<div class="mountcont">
+					<table class="yellowkeys">
+						<tbody>
+							<xsl:if test="server_name">
+								<tr>
+									<td>Stream Name:</td>
+									<td><xsl:value-of select="server_name" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="server_description">
+								<tr>
+									<td>Stream Description:</td>
+									<td><xsl:value-of select="server_description" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="server_type">
+								<tr>
+									<td>Content Type:</td>
+									<td><xsl:value-of select="server_type" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="stream_start">
+								<tr>
+									<td>Stream started:</td>
+									<td class="streamstats"><xsl:value-of select="stream_start" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="bitrate">
+								<tr>
+									<td>Bitrate:</td>
+									<td class="streamstats"><xsl:value-of select="bitrate" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="quality">
+								<tr>
+									<td>Quality:</td>
+									<td class="streamstats"><xsl:value-of select="quality" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="video_quality">
+								<tr>
+									<td>Video Quality:</td>
+									<td class="streamstats"><xsl:value-of select="video_quality" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="frame_size">
+								<tr>
+									<td>Framesize:</td>
+									<td class="streamstats"><xsl:value-of select="frame_size" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="frame_rate">
+								<tr>
+									<td>Framerate:</td>
+									<td class="streamstats"><xsl:value-of select="frame_rate" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="listeners">
+								<tr>
+									<td>Listeners (current):</td>
+									<td class="streamstats"><xsl:value-of select="listeners" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="listener_peak">
+								<tr>
+									<td>Listeners (peak):</td>
+									<td class="streamstats"><xsl:value-of select="listener_peak" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="genre">
+								<tr>
+									<td>Genre:</td>
+									<td class="streamstats"><xsl:value-of select="genre" /></td>
+								</tr>
+							</xsl:if>
+							<xsl:if test="server_url">
+								<tr>
+									<td>Stream URL:</td>
+									<td class="streamstats">
+										<a href="{server_url}"><xsl:value-of select="server_url" /></a>
+									</td>
+								</tr>
+							</xsl:if>
+							<tr>
+								<td>Currently playing:</td>
+								<td class="streamstats">
+								<xsl:if test="artist">
+									<xsl:value-of select="artist" /> - 
+								</xsl:if>
+									<xsl:value-of select="title" />
+								</td>
+							</tr>
+						</tbody>
+					</table>
+				</div>
+			</div>
+			</xsl:when>
+			<xsl:otherwise>
+				<h3><xsl:value-of select="@mount" /> - Not Connected</h3>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:for-each>
+	<div id="footer">
+		Support icecast development at <a href="http://www.icecast.org">www.icecast.org</a>
+	</div>
 </body>
 </html>
 </xsl:template>

Modified: icecast/trunk/icecast/web/style.css
===================================================================
--- icecast/trunk/icecast/web/style.css	2014-02-26 19:06:45 UTC (rev 19098)
+++ icecast/trunk/icecast/web/style.css	2014-03-01 16:38:15 UTC (rev 19099)
@@ -1,250 +1,256 @@
-/******************************************************************************
-
-	This file styles the bar that goes across the top of all Xiph.Org
-	pages.
-	
-	The style that comes from this was first (to my knowledge) at
-	http://alistapart.com/stories/practicalcss/ in the
-	"Splitting the Difference" section.
-
-******************************************************************************/
-
-/* This effect doesn't work at all if all content is pinched in a bit. */
-html, body {
+html {
 	margin: 0;
 	padding: 0;
+	background-color: #000;
 }
 
 body {
-	margin-left: 50px;
-	margin-right: 25px;
+	padding: 0 25px 0 50px;
 	background-color: #000;
+	font-family: Verdana, sans-serif;
+	text-decoration: none;
+	color: #fff;
 }
 
-.xiphnav {
-	font-family: Verdana, sans-serif;
-	font-weight: normal;
-	padding:    .25em;
-	margin-bottom:  .5em;
-	border-bottom:  1px solid #000;
-	color: #000;
-	background: #aaa;
+a {
+	color: #f8ef64;
+	text-decoration: none;
+	border-bottom: 1px dotted #f8ef64;
 }
-h2 {
-	font-family: Verdana, sans-serif;
+
+a:hover {
+	color: #f8ef64;
 	text-decoration: none;
-	font-weight: bold;
-    font-size: 3em;
-	color: #fff;
-    padding: 10px 0px 10px 80px;
-	margin-top:3px;
-    background: transparent url(/icecast.png) no-repeat scroll left center
+	border-bottom: 1px solid #f8ef64;
 }
+
 h1 {
 	font-family: Verdana, sans-serif;
 	text-decoration: none;
 	font-weight: bold;
-	font-size: 100%;
+    font-size: 3em;
 	color: #fff;
-	margin-top:3px;
+	margin-top: 3px;
 }
-.nav {
+
+h3 {
+	margin: 0px;
+    padding: 0px;
 	font-family: Verdana, sans-serif;
-	text-decoration: none;
 	font-weight: bold;
 	font-size: 110%;
-	color: #fff;
-}
-.nav:hover {
-	font-family: Verdana, sans-serif;
-	text-decoration: none;
-	font-weight: bold;
 	color: #f8ef64;
 }
-.xiphnav_a {
-    text-decoration: none;
-    font-weight: normal;
-    color: #000;
+
+h1#header{
+	padding: 10px 0px 10px 80px;
+	background: transparent url(/icecast.png) no-repeat scroll left center;
 }
-.news {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: normal;
-    color: #fff;
+
+h3 small {
+	color: #fff;
+	font-size: 70%;
+	padding-left: 15px;
 }
-.newsheader {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: normal;
-    font-size: 110%;
-    color: #f8ef64;
-    background: #444;
+
+form.alignedform label {
+	text-align: right;
+	display: inline-block;
+	vertical-align: middle;
+	width: 10em;
+	margin: 0 1em 0 0;
 }
-.streamtd {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: normal;
-    font-size: 85%;
-    color: #fff;
-    padding:15px;
+
+form.alignedform input {
+	display: inline-block;
+	vertical-align: middle;
+	border: 1px solid #f8ef64;
+	background-color: #333;
+	color: #f8ef64;
+	padding: 5px;
 }
-.streamtd_alt {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: normal;
-    font-size: 85%;
-    color: #fff;
+
+#menu {
+	border-top: 3px solid #7B96C6;
+	border-bottom: 3px solid #7B96C6;
+	text-align: center;
+	margin-bottom: 35px;
 }
 
-.streamtd_alt_2 {
-    font-family: Verdana, sans-serif;
-    text-decoration: underline;
-    font-weight: normal;
-    font-size: 85%;
-    color: #fff;
+#menu ul {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+	display: inline-block;
+	vertical-align: middle;
 }
 
-td {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: normal;
-    color: #fff;
+#menu ul li {
+	float: left;
+	padding-left: 25px;
+	padding-right: 25px;
 }
-.roundcont {
-	width: 90%;
-	background-color: #656565;
-	color: #fff;
-}
-.roundcont a {
-    margin: 0px 10px;
-}
-.content {
-	margin: 0 20px;
-}
-h3 {
-	margin: 0px;
-    padding: 0px;
+
+#menu ul li a {
 	font-family: Verdana, sans-serif;
 	text-decoration: none;
-	font-weight: bold;
-	font-size: 110%;
-	color: #f8ef64;
+	color: #fff;
+	font-size: 18px;
+	border: none;
 }
-.content h3 {
-    margin-bottom: 10px;
-    border-bottom: 1px groove #ACACAC;
-}
-.content h4 {
-	margin: 10px 0px;
-	font-family: Verdana, sans-serif;
-	text-decoration: none;
-	font-weight: bold;
-	font-size: 110%;
+
+#menu ul li a:hover {
 	color: #f8ef64;
 }
-.content p {
-	margin: 0 0;
-	font-family: Verdana, sans-serif;
-	text-decoration: none;
-	font-weight: none;
-	font-size: 90%;
+
+.roundbox {
+	width: 90%;
+	background-color: #656565;
+	border-radius: 10px;
+	padding: 15px 20px;
+	margin-bottom: 35px;
 }
-.content td {
-	margin: 0 0;
-	font-family: Verdana, sans-serif;
-	text-decoration: none;
-	font-weight: none;
-	font-size: 90%;
+
+.roundbox h3 {
+	margin-bottom: 10px;
+	border-bottom: 1px groove #ACACAC;
 }
-.content td.streamstats {
-	margin: 0 0;
-	font-family: Verdana, sans-serif;
-	text-decoration: none;
-	font-weight: none;
-	font-size: 90%;
-        color: #f8ef64;
+
+.roundbox table.yellowkeys tr td:last-child {
+	color: #f8ef64;
 }
-.streamheading table {
-    width: 100%;
-    margin-bottom: 5px;
-    border-bottom:  1px groove #ACACAC;
+
+.roundbox table.yellowkeys tr td {
+	padding: 5px 5px 0 0;
+	word-wrap: break-word;
+	word-break: break-all;
 }
-.streamheading td {
-    margin: 0px;
-    padding-top: 10px;
-    padding-bottom: 10px;
-    padding: 10 5 10 5;
-    border: 0px solid white;
+
+.right {
+	float: right;
 }
-.streamheading h3 {
-    border: 0px;
+
+.mounthead h3 {
+	float: left;
+	margin-bottom: 0px;
+	border-bottom: none;
 }
-.streamheading a {
-    padding: 8px 5px 3px 30px;
-    text-decoration: none;
-    background: transparent url("/tunein.png") no-repeat left center;
+
+.mountcont {
+	border-top: 1px groove #ACACAC;
+	clear: both;
 }
-.streamheading a.auth {
-    padding-top: 10px;
-    padding-bottom: 10px;
-    padding-left: 32px;
-    background: transparent url("/key.png") no-repeat left center;
+
+ul.mountlist {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+	text-align: right;
 }
-.content a {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: bold;
-    margin: 0px;
-    color: #f8ef64;
+
+.mountlist li {
+	display: inline;
 }
-.content a:hover {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: bold;
-    color: #fff;
+
+a.play {
+	padding-left: 22px;
+	margin-left: 25px;
+	border: none;
+	background: transparent url(/tunein.png) no-repeat scroll left center;
+	background-size: auto 100%;
 }
-.content a.nav2 {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    font-weight: bold;
-    padding: 2px 9px;
-    background: #444;
-    color: #f8ef64;
+
+a.auth {
+	padding-left: 22px;
+	margin-left: 25px;
+	border: none;
+	background: transparent url(/key.png) no-repeat scroll left top;
+	background-size: auto 100%;
 }
-.content a.nav2:hover {
-    font-family: Verdana, sans-serif;
-    text-decoration: none;
-    background: #777;
-    font-weight: bold;
-    color: #fff;
+
+/* Admin navigation */
+
+ul.nav {
+	margin: 0;
+	padding: 5px 0 10px 0;
+	clear: both;
+	list-style: none;
+	text-align: center;
 }
-.poster {
-	font-family: Verdana, sans-serif;
-    margin: 50px 120px 20px 0px;
-	display: block;
-	text-decoration: none;
-	font-size: 100%;
-	color: #f8ef64;
-    padding: 5px;
-    border-top:  1px groove #ACACAC;
+
+ul.nav li {
+	display: inline;
 }
-.roundcont p {
-	margin: 10px 50px;
+
+ul.nav li a {
+	border: none;
+	display: inline-block;
+	padding: .2em .7em;
+	margin-top: .2em;
+	background-color: #333;
+	white-space: nowrap;
 }
 
-.roundtop { 
-	background: url(/corner_topright.jpg) no-repeat top right; 
+ul.nav li a:hover {
+	color: #fff;
 }
 
-.roundbottom {
-	background: url(/corner_bottomright.jpg) no-repeat top right; 
+/* Footer */
+
+#footer {
+	border-top: 1px groove #ACACAC;
+	margin-top: 20px;
+	font-size: 80%;
 }
 
-img.corner {
-	width: 15px;
-	height: 15px;
-	border: none;
-	display: block !important;
+ at media (max-width: 800px) {
+
+	body {
+		padding: 0;
+	}
+
+	.roundbox {
+		width: auto;
+		border-radius: 0;
+	}
+
+	.roundbox table.yellowkeys tr td {
+		display: block;
+		padding: 5px 5px 0 0;
+	}
+
+	.roundbox table.yellowkeys tr td:last-child {
+		margin-bottom: 5px;
+		margin-left: 5px;
+	}
+
+	.scrolltable {
+		overflow: auto;
+	}
+
 }
 
+ at media (max-width: 320px) {
 
+	ul.nav, #menu ul {
+		display: block;
+	}
+
+	ul.nav li, #menu ul li {
+		float: none;
+	}
+
+	ul.nav li a, #menu ul li a {
+		display: block;
+	}
+
+	ul.nav li + li, #menu ul li + li {
+		border-top: 1px solid #ACACAC;
+	}
+
+	a.play {
+		margin-left: 15px;
+	}
+
+}
+



More information about the commits mailing list