1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-12-04 14:46:30 -05:00

Update: Reformated indents and spaces (ws-only patch)

This commit is contained in:
Philipp Schafft 2020-10-09 10:26:18 +00:00
parent fde951551f
commit 0fb8225048
26 changed files with 1006 additions and 1006 deletions

View File

@ -1,66 +1,66 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:variable name="title">Dashboard</xsl:variable> <xsl:variable name="title">Dashboard</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:for-each select="/report/incident"> <xsl:for-each select="/report/incident">
<xsl:for-each select="resource[@name='overall-status']"> <xsl:for-each select="resource[@name='overall-status']">
<section class="box"> <section class="box">
<h3 class="box_title">Overview for <code><xsl:value-of select="value[@member='global-config']/value[@member='hostname']/@value" /></code></h3> <h3 class="box_title">Overview for <code><xsl:value-of select="value[@member='global-config']/value[@member='hostname']/@value" /></code></h3>
<ul class="boxnav"> <ul class="boxnav">
<li><a href="/admin/reloadconfig.xsl">Reload Configuration</a></li> <li><a href="/admin/reloadconfig.xsl">Reload Configuration</a></li>
</ul> </ul>
<div class="side-by-side"> <div class="side-by-side">
<div> <div>
<h4>Health</h4> <h4>Health</h4>
<div class="trafficlight colour-{value[@member='status']/@value}">&#160;</div> <div class="trafficlight colour-{value[@member='status']/@value}">&#160;</div>
</div> </div>
<div> <div>
<h4>Current load</h4> <h4>Current load</h4>
<table class="table-block"> <table class="table-block">
<tbody> <tbody>
<xsl:for-each select="value[@member='global-current']/value"> <xsl:for-each select="value[@member='global-current']/value">
<tr> <tr>
<xsl:variable name="member" select="@member" /> <xsl:variable name="member" select="@member" />
<xsl:variable name="of" select="../../value[@member='global-config']/value[@member=$member]/@value" /> <xsl:variable name="of" select="../../value[@member='global-config']/value[@member=$member]/@value" />
<td><xsl:value-of select="concat(translate(substring(@member, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), substring(@member, 2))" /></td> <td><xsl:value-of select="concat(translate(substring(@member, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), substring(@member, 2))" /></td>
<td class="barmeter"> <td class="barmeter">
<span><xsl:value-of select="@value" /> of <xsl:value-of select="$of" /></span> <span><xsl:value-of select="@value" /> of <xsl:value-of select="$of" /></span>
<div style="width: calc(100% * {@value} / {$of});">&#160;</div> <div style="width: calc(100% * {@value} / {$of});">&#160;</div>
</td> </td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</section> </section>
</xsl:for-each> </xsl:for-each>
<xsl:for-each select="resource[@name='maintenance']"> <xsl:for-each select="resource[@name='maintenance']">
<section class="box"> <section class="box">
<h3 class="box_title">Maintenance</h3> <h3 class="box_title">Maintenance</h3>
<xsl:choose> <xsl:choose>
<xsl:when test="value"> <xsl:when test="value">
<ul class="maintenance-container"> <ul class="maintenance-container">
<xsl:for-each select="value"> <xsl:for-each select="value">
<li class="maintenance-level-{value[@member='type']/@value}"> <li class="maintenance-level-{value[@member='type']/@value}">
<p><xsl:value-of select="text/text()" /></p> <p><xsl:value-of select="text/text()" /></p>
<ul class="references"> <ul class="references">
<xsl:for-each select="reference"> <xsl:for-each select="reference">
<li><a href="{@href}"><xsl:value-of select="concat(translate(substring(@type, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), substring(@type, 2))" /></a></li> <li><a href="{@href}"><xsl:value-of select="concat(translate(substring(@type, 1, 1), 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'), substring(@type, 2))" /></a></li>
</xsl:for-each> </xsl:for-each>
</ul> </ul>
</li> </li>
</xsl:for-each> </xsl:for-each>
</ul> </ul>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<p>Nothing to do.</p> <p>Nothing to do.</p>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</section> </section>
</xsl:for-each> </xsl:for-each>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,18 +1,18 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="includes/web-page.xsl"/> <xsl:include href="includes/web-page.xsl"/>
<xsl:variable name="title">Error</xsl:variable> <xsl:variable name="title">Error</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:for-each select="/report/incident"> <xsl:for-each select="/report/incident">
<section class="box"> <section class="box">
<h3 class="box_title">Response</h3> <h3 class="box_title">Response</h3>
<h4>Message</h4> <h4>Message</h4>
<p><xsl:value-of select="state/text" /></p> <p><xsl:value-of select="state/text" /></p>
<xsl:if test="state/@definition"> <xsl:if test="state/@definition">
<p>Error code: <xsl:value-of select="state/@definition" /></p> <p>Error code: <xsl:value-of select="state/@definition" /></p>
</xsl:if> </xsl:if>
</section> </section>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,15 +1,15 @@
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0"> <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0">
<xsl:output omit-xml-declaration="yes" media-type="text/plain" method="text" indent="no" encoding="UTF-8" /> <xsl:output omit-xml-declaration="yes" media-type="text/plain" method="text" indent="no" encoding="UTF-8" />
<xsl:template name="content" match="/report"> <xsl:template name="content" match="/report">
<xsl:for-each select="/report/incident"> <xsl:for-each select="/report/incident">
<xsl:text>Report:&#xa;</xsl:text> <xsl:text>Report:&#xa;</xsl:text>
<xsl:value-of select="state/text" /> <xsl:value-of select="state/text" />
<xsl:text>&#xa;</xsl:text> <xsl:text>&#xa;</xsl:text>
<xsl:if test="state/@definition"> <xsl:if test="state/@definition">
<xsl:text>Error code: </xsl:text> <xsl:text>Error code: </xsl:text>
<xsl:value-of select="state/@definition" /> <xsl:value-of select="state/@definition" />
<xsl:text>&#xa;</xsl:text> <xsl:text>&#xa;</xsl:text>
</xsl:if> </xsl:if>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,47 +1,47 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:variable name="title">Set fallback</xsl:variable> <xsl:variable name="title">Set fallback</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<div class="section"> <div class="section">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<section class="box"> <section class="box">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<!-- Mount nav --> <!-- Mount nav -->
<xsl:call-template name="mountnav"> <xsl:call-template name="mountnav">
<xsl:with-param name="mount" select="current_source"/> <xsl:with-param name="mount" select="current_source"/>
</xsl:call-template> </xsl:call-template>
<xsl:choose> <xsl:choose>
<xsl:when test="source"> <xsl:when test="source">
<p>Choose the mountpoint to which you want listeners to fallback to:</p> <p>Choose the mountpoint to which you want listeners to fallback to:</p>
<form method="post" action="/admin/fallbacks.xsl"> <form method="post" action="/admin/fallbacks.xsl">
<label for="fallback" class="hidden"> <label for="fallback" class="hidden">
Set fallback for <code><xsl:value-of select="current_source" /></code> to Set fallback for <code><xsl:value-of select="current_source" /></code> to
</label> </label>
<select name="fallback" id="fallback"> <select name="fallback" id="fallback">
<xsl:for-each select="source"> <xsl:for-each select="source">
<option value="{@mount}"> <option value="{@mount}">
<xsl:value-of select="@mount" /> <xsl:value-of select="@mount" />
</option> </option>
</xsl:for-each> </xsl:for-each>
</select> </select>
<input type="hidden" name="mount" value="{current_source}" /> <input type="hidden" name="mount" value="{current_source}" />
<input type="hidden" name="omode" value="strict" /> <input type="hidden" name="omode" value="strict" />
&#160; &#160;
<input type="submit" value="Set fallback" /> <input type="submit" value="Set fallback" />
</form> </form>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<aside class="warning"> <aside class="warning">
<strong>No mounts!</strong> <strong>No mounts!</strong>
There are no other mountpoints you could set as fallback. There are no other mountpoints you could set as fallback.
</aside> </aside>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</section> </section>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,9 +1,9 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="footer"> <xsl:template name="footer">
<div class="footer"> <div class="footer">
<p>Support Icecast development at <a href="http://icecast.org">icecast.org</a></p> <p>Support Icecast development at <a href="http://icecast.org">icecast.org</a></p>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,15 +1,15 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="head"> <xsl:template name="head">
<xsl:param name="title"/> <xsl:param name="title"/>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title><xsl:if test="$title"><xsl:value-of select="$title"/></xsl:if>Icecast Admin</title> <title><xsl:if test="$title"><xsl:value-of select="$title"/></xsl:if>Icecast Admin</title>
<link rel="stylesheet" type="text/css" href="/assets/css/style.css" /> <link rel="stylesheet" type="text/css" href="/assets/css/style.css" />
<meta name="theme-color" content="#001826" /> <meta name="theme-color" content="#001826" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="description" content="Icecast Server status page" /> <meta name="description" content="Icecast Server status page" />
</head> </head>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,26 +1,26 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="header"> <xsl:template name="header">
<header> <header>
<nav id="main-nav" role="primary"> <nav id="main-nav" role="primary">
<a href="/" id="branding"> <a href="/" id="branding">
<img src="/assets/img/icecast.png" alt="Logo" /> <img src="/assets/img/icecast.png" alt="Logo" />
<h1>Icecast Server administration</h1> <h1>Icecast Server administration</h1>
</a> </a>
<ul> <ul>
<li class="adminlink"><a href="/admin/dashboard.xsl">Dashboard</a></li> <li class="adminlink"><a href="/admin/dashboard.xsl">Dashboard</a></li>
<li class="adminlink"><a href="/admin/stats.xsl">Server status</a></li> <li class="adminlink"><a href="/admin/stats.xsl">Server status</a></li>
<li class="adminlink"><a href="/admin/listmounts.xsl">Mountpoint list</a></li> <li class="adminlink"><a href="/admin/listmounts.xsl">Mountpoint list</a></li>
<li class="adminlink"><a href="/admin/showlog.xsl">Logfiles</a></li> <li class="adminlink"><a href="/admin/showlog.xsl">Logfiles</a></li>
<xsl:for-each select="(/report/extension/icestats | /icestats | /iceresponse)/modules/module"> <xsl:for-each select="(/report/extension/icestats | /icestats | /iceresponse)/modules/module">
<xsl:if test="@management-url and @management-title"> <xsl:if test="@management-url and @management-title">
<li class="adminlink"><a href="{@management-url}"><xsl:value-of select="@management-title" /></a></li> <li class="adminlink"><a href="{@management-url}"><xsl:value-of select="@management-title" /></a></li>
</xsl:if> </xsl:if>
</xsl:for-each> </xsl:for-each>
<li class="right"><a href="/status.xsl">Public area</a></li> <li class="right"><a href="/status.xsl">Public area</a></li>
</ul> </ul>
</nav> </nav>
</header> </header>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,15 +1,15 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="mountnav"> <xsl:template name="mountnav">
<xsl:param name="mount" select="@mount"/> <xsl:param name="mount" select="@mount"/>
<div class="mountnav"> <div class="mountnav">
<ul class="boxnav"> <ul class="boxnav">
<li><a href="/admin/stats.xsl?mount={$mount}#mount-1">Details</a></li> <li><a href="/admin/stats.xsl?mount={$mount}#mount-1">Details</a></li>
<li><a href="/admin/listclients.xsl?mount={$mount}">Clients</a></li> <li><a href="/admin/listclients.xsl?mount={$mount}">Clients</a></li>
<li><a href="/admin/moveclients.xsl?mount={$mount}">Move listeners</a></li> <li><a href="/admin/moveclients.xsl?mount={$mount}">Move listeners</a></li>
<li><a href="/admin/updatemetadata.xsl?mount={$mount}">Metadata</a></li> <li><a href="/admin/updatemetadata.xsl?mount={$mount}">Metadata</a></li>
<li><a href="/admin/fallbacks.xsl?mount={$mount}&amp;omode=strict">Set fallback</a></li> <li><a href="/admin/fallbacks.xsl?mount={$mount}&amp;omode=strict">Set fallback</a></li>
<li class="critical"><a href="/admin/killsource.xsl?mount={$mount}">Kill source</a></li> <li class="critical"><a href="/admin/killsource.xsl?mount={$mount}">Kill source</a></li>
</ul> </ul>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,31 +1,31 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" doctype-system="about:legacy-compat" encoding="utf-8" /> <xsl:output method="html" doctype-system="about:legacy-compat" encoding="utf-8" />
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/head.xsl"/> <xsl:include href="includes/head.xsl"/>
<xsl:include href="includes/header.xsl"/> <xsl:include href="includes/header.xsl"/>
<xsl:include href="includes/footer.xsl"/> <xsl:include href="includes/footer.xsl"/>
<xsl:template match="/node()"> <xsl:template match="/node()">
<html> <html>
<xsl:call-template name="head"> <xsl:call-template name="head">
<xsl:with-param name="title" select="$title" /> <xsl:with-param name="title" select="$title" />
</xsl:call-template> </xsl:call-template>
<body> <body>
<!-- Header/Menu --> <!-- Header/Menu -->
<xsl:call-template name="header" /> <xsl:call-template name="header" />
<main role="main"> <main role="main">
<xsl:call-template name="content" /> <xsl:call-template name="content" />
</main> </main>
<!-- Footer --> <!-- Footer -->
<footer> <footer>
<xsl:call-template name="footer" /> <xsl:call-template name="footer" />
</footer> </footer>
</body> </body>
</html> </html>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,23 +1,23 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="player"> <xsl:template name="player">
<div> <div>
<ul class="playlists"> <ul class="playlists">
<li><a href="{@mount}">Direct</a></li> <li><a href="{@mount}">Direct</a></li>
<li><a href="{@mount}.m3u">M3U</a></li> <li><a href="{@mount}.m3u">M3U</a></li>
<li><a href="{@mount}.xspf">XSPF</a></li> <li><a href="{@mount}.xspf">XSPF</a></li>
</ul> </ul>
<!-- Playlists section --> <!-- Playlists section -->
<h4>Play stream</h4> <h4>Play stream</h4>
<!-- Player --> <!-- Player -->
<xsl:if test="content-type and ((content-type = 'application/ogg') or (content-type = 'audio/ogg') or (content-type = 'audio/webm'))"> <xsl:if test="content-type and ((content-type = 'application/ogg') or (content-type = 'audio/ogg') or (content-type = 'audio/webm'))">
<div class="audioplayer"> <div class="audioplayer">
<audio controls="controls" preload="none"> <audio controls="controls" preload="none">
<source src="{@mount}" type="{content-type}" /> <source src="{@mount}" type="{content-type}" />
</audio> </audio>
</div> </div>
</xsl:if> </xsl:if>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,29 +1,29 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="playlist"> <xsl:template name="playlist">
<xsl:if test="playlist/*"> <xsl:if test="playlist/*">
<h4>Playlist</h4> <h4>Playlist</h4>
<div class="playlist-container"> <div class="playlist-container">
<table class="table-block"> <table class="table-block">
<thead> <thead>
<tr> <tr>
<th>Album</th> <th>Album</th>
<th width="10%">Track</th> <th width="10%">Track</th>
<th>Creator</th> <th>Creator</th>
<th width="33%">Title</th> <th width="33%">Title</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<xsl:for-each select="playlist/trackList/track"> <xsl:for-each select="playlist/trackList/track">
<tr> <tr>
<td><xsl:value-of select="album" /></td> <td><xsl:value-of select="album" /></td>
<td><xsl:value-of select="trackNum" /></td> <td><xsl:value-of select="trackNum" /></td>
<td><xsl:value-of select="creator" /></td> <td><xsl:value-of select="creator" /></td>
<td><xsl:value-of select="title" /></td> <td><xsl:value-of select="title" /></td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
</div> </div>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,5 +1,5 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" doctype-system="about:legacy-compat" encoding="utf-8" /> <xsl:output method="html" doctype-system="about:legacy-compat" encoding="utf-8" />
<!-- Import include files --> <!-- Import include files -->
<xsl:template match="/node()"> <xsl:template match="/node()">
@ -15,15 +15,15 @@
<meta name="description" content="Icecast is free server software for streaming multimedia." /> <meta name="description" content="Icecast is free server software for streaming multimedia." />
</head> </head>
<body> <body>
<xsl:text disable-output-escaping="yes"> <xsl:text disable-output-escaping="yes">
&lt;!-- WARNING: &lt;!-- WARNING:
DO NOT ATTEMPT TO PARSE ICECAST HTML OUTPUT! DO NOT ATTEMPT TO PARSE ICECAST HTML OUTPUT!
The web interface may change completely between releases. The web interface may change completely between releases.
If you have a need for automatic processing of server data, If you have a need for automatic processing of server data,
please read the appropriate documentation. Latest docs: please read the appropriate documentation. Latest docs:
https://icecast.org/docs/icecast-latest/icecast2_stats.html https://icecast.org/docs/icecast-latest/icecast2_stats.html
--> -->
</xsl:text> </xsl:text>
<!-- Header and menu --> <!-- Header and menu -->
<header> <header>
<nav id="main-nav" role="primary"> <nav id="main-nav" role="primary">
@ -41,15 +41,15 @@
<!--<h1 id="header">Icecast <xsl:value-of select="$title"/></h1>--> <!--<h1 id="header">Icecast <xsl:value-of select="$title"/></h1>-->
<!-- Content --> <!-- Content -->
<main role="main"> <main role="main">
<xsl:call-template name="content" namespace="http://www.w3.org/1999/xhtml" /> <xsl:call-template name="content" namespace="http://www.w3.org/1999/xhtml" />
</main> </main>
<!-- Footer --> <!-- Footer -->
<footer> <footer>
<p>Support icecast development at <a href="http://icecast.org">icecast.org</a></p> <p>Support icecast development at <a href="http://icecast.org">icecast.org</a></p>
</footer> </footer>
</body> </body>
</html> </html>
</xsl:template> </xsl:template>

View File

@ -1,57 +1,57 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:variable name="title">Listener Stats</xsl:variable> <xsl:variable name="title">Listener Stats</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<div class="section"> <div class="section">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:for-each select="source"> <xsl:for-each select="source">
<section class="box"> <section class="box">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<!-- Mount nav --> <!-- Mount nav -->
<xsl:call-template name="mountnav" /> <xsl:call-template name="mountnav" />
<h4>Listeners</h4> <h4>Listeners</h4>
<xsl:choose> <xsl:choose>
<xsl:when test="listener"> <xsl:when test="listener">
<table class="table-flipscroll"> <table class="table-flipscroll">
<thead> <thead>
<tr> <tr>
<th>IP</th> <th>IP</th>
<th>Username</th> <th>Username</th>
<th>Role</th> <th>Role</th>
<th>Sec. connected</th> <th>Sec. connected</th>
<th>User Agent</th> <th>User Agent</th>
<th class="actions">Action</th> <th class="actions">Action</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<xsl:for-each select="listener"> <xsl:for-each select="listener">
<tr> <tr>
<td><xsl:value-of select="ip" /></td> <td><xsl:value-of select="ip" /></td>
<td><xsl:value-of select="username" /></td> <td><xsl:value-of select="username" /></td>
<td><xsl:value-of select="role" /></td> <td><xsl:value-of select="role" /></td>
<td><xsl:value-of select="connected" /></td> <td><xsl:value-of select="connected" /></td>
<td><xsl:value-of select="useragent" /></td> <td><xsl:value-of select="useragent" /></td>
<td class="actions"> <td class="actions">
<a class="critical" href="/admin/killclient.xsl?mount={../@mount}&amp;id={id}">Kick</a> <a class="critical" href="/admin/killclient.xsl?mount={../@mount}&amp;id={id}">Kick</a>
<a href="/admin/moveclients.xsl?mount={../@mount}&amp;id={id}">Move</a> <a href="/admin/moveclients.xsl?mount={../@mount}&amp;id={id}">Move</a>
</td> </td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<p>No listeners connected</p> <p>No listeners connected</p>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</section> </section>
</xsl:for-each> </xsl:for-each>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,63 +1,63 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:include href="includes/player.xsl"/> <xsl:include href="includes/player.xsl"/>
<xsl:variable name="title">Active Mountpoints</xsl:variable> <xsl:variable name="title">Active Mountpoints</xsl:variable>
<!-- Auth template --> <!-- Auth template -->
<xsl:template name="authlist"> <xsl:template name="authlist">
<ul> <ul>
<xsl:for-each select="authentication/role"> <xsl:for-each select="authentication/role">
<li>Role <li>Role
<xsl:if test="@name"> <xsl:if test="@name">
<xsl:value-of select="@name" /> <xsl:value-of select="@name" />
</xsl:if> </xsl:if>
of type <xsl:value-of select="@type" /> of type <xsl:value-of select="@type" />
<xsl:if test="@management-url"> <xsl:if test="@management-url">
<xsl:choose> <xsl:choose>
<xsl:when test="@can-adduser='true' or @can-deleteuser='true'"> <xsl:when test="@can-adduser='true' or @can-deleteuser='true'">
(<a href="{@management-url}">Manage</a>) (<a href="{@management-url}">Manage</a>)
</xsl:when> </xsl:when>
<xsl:when test="@can-listuser='true'"> <xsl:when test="@can-listuser='true'">
(<a href="{@management-url}">List</a>) (<a href="{@management-url}">List</a>)
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:if> </xsl:if>
</li> </li>
</xsl:for-each> </xsl:for-each>
</ul> </ul>
</xsl:template> </xsl:template>
<xsl:template name="content"> <xsl:template name="content">
<div class="section"> <div class="section">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:choose> <xsl:choose>
<xsl:when test="source"> <xsl:when test="source">
<xsl:for-each select="source"> <xsl:for-each select="source">
<section class="box"> <section class="box">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<!-- Mount nav --> <!-- Mount nav -->
<xsl:call-template name="mountnav" /> <xsl:call-template name="mountnav" />
<xsl:call-template name="player" /> <xsl:call-template name="player" />
<p><xsl:value-of select="listeners" /> Listener(s)</p> <p><xsl:value-of select="listeners" /> Listener(s)</p>
<!-- Mount Authentication --> <!-- Mount Authentication -->
<xsl:if test="authentication"> <xsl:if test="authentication">
<h4>Mount Authentication</h4> <h4>Mount Authentication</h4>
<xsl:call-template name="authlist" /> <xsl:call-template name="authlist" />
</xsl:if> </xsl:if>
</section> </section>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<aside class="info"> <aside class="info">
<strong>No mounts!</strong> There are no active mountpoints. <strong>No mounts!</strong> There are no active mountpoints.
</aside> </aside>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,72 +1,72 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:variable name="title">Manage Authentication</xsl:variable> <xsl:variable name="title">Manage Authentication</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<div class="section"> <div class="section">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:if test="iceresponse"> <xsl:if test="iceresponse">
<aside class="error"> <aside class="error">
<xsl:value-of select="iceresponse/message" /> <xsl:value-of select="iceresponse/message" />
</aside> </aside>
</xsl:if> </xsl:if>
<xsl:for-each select="role"> <xsl:for-each select="role">
<section class="box"> <section class="box">
<h3 class="box_title">Role <code><xsl:value-of select="@name" /></code> (<code><xsl:value-of select="@type" /></code>) <h3 class="box_title">Role <code><xsl:value-of select="@name" /></code> (<code><xsl:value-of select="@type" /></code>)
<xsl:if test="server_name"> <xsl:if test="server_name">
<xsl:text> </xsl:text><small><xsl:value-of select="server_name" /></small> <xsl:text> </xsl:text><small><xsl:value-of select="server_name" /></small>
</xsl:if> </xsl:if>
</h3> </h3>
<xsl:choose> <xsl:choose>
<xsl:when test="users/user"> <xsl:when test="users/user">
<table class="table-flipscroll"> <table class="table-flipscroll">
<thead> <thead>
<tr> <tr>
<th>User</th> <th>User</th>
<xsl:if test="@can-deleteuser = 'true'"> <xsl:if test="@can-deleteuser = 'true'">
<th class="actions">Action</th> <th class="actions">Action</th>
</xsl:if> </xsl:if>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<xsl:for-each select="users/user"> <xsl:for-each select="users/user">
<tr> <tr>
<td><xsl:value-of select="username" /></td> <td><xsl:value-of select="username" /></td>
<xsl:if test="../../@can-deleteuser = 'true'"> <xsl:if test="../../@can-deleteuser = 'true'">
<td class="actions"> <td class="actions">
<a class="critical" href="/admin/manageauth.xsl?id={../../@id}&amp;username={username}&amp;action=delete">Delete</a> <a class="critical" href="/admin/manageauth.xsl?id={../../@id}&amp;username={username}&amp;action=delete">Delete</a>
</td> </td>
</xsl:if> </xsl:if>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<p>No Users</p> <p>No Users</p>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<!-- Form to add Users --> <!-- Form to add Users -->
<xsl:if test="@can-adduser = 'true'"> <xsl:if test="@can-adduser = 'true'">
<h4>Add User</h4> <h4>Add User</h4>
<form method="post" action="/admin/manageauth.xsl"> <form method="post" action="/admin/manageauth.xsl">
<input type="hidden" name="id" value="{@id}"/> <input type="hidden" name="id" value="{@id}"/>
<input type="hidden" name="action" value="add"/> <input type="hidden" name="action" value="add"/>
<label for="username" class="hidden">Username: </label> <label for="username" class="hidden">Username: </label>
<input type="text" id="username" name="username" value="" placeholder="Username" required="required" /> <input type="text" id="username" name="username" value="" placeholder="Username" required="required" />
&#160; &#160;
<label for="password" class="hidden">Password: </label> <label for="password" class="hidden">Password: </label>
<input type="password" id="password" name="password" value="" placeholder="Password" required="required" /> <input type="password" id="password" name="password" value="" placeholder="Password" required="required" />
&#160; &#160;
<input type="submit" value="Add new user" /> <input type="submit" value="Add new user" />
</form> </form>
</xsl:if> </xsl:if>
</section> </section>
</xsl:for-each> </xsl:for-each>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,54 +1,54 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:variable name="title">Move listeners</xsl:variable> <xsl:variable name="title">Move listeners</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<div class="section"> <div class="section">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<section class="box"> <section class="box">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<!-- Mount nav --> <!-- Mount nav -->
<xsl:call-template name="mountnav"> <xsl:call-template name="mountnav">
<xsl:with-param name="mount" select="current_source"/> <xsl:with-param name="mount" select="current_source"/>
</xsl:call-template> </xsl:call-template>
<xsl:choose> <xsl:choose>
<xsl:when test="source"> <xsl:when test="source">
<xsl:choose> <xsl:choose>
<xsl:when test="param-id"> <xsl:when test="param-id">
<input type="hidden" name="id" value="{param-id}" /> <input type="hidden" name="id" value="{param-id}" />
<p>Choose the mountpoint to which you want to move the listener to:</p> <p>Choose the mountpoint to which you want to move the listener to:</p>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<p>Choose the mountpoint to which you want to move the listeners to:</p> <p>Choose the mountpoint to which you want to move the listeners to:</p>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
<form method="post" action="/admin/moveclients.xsl"> <form method="post" action="/admin/moveclients.xsl">
<label for="moveto" class="hidden"> <label for="moveto" class="hidden">
Move from <code><xsl:value-of select="current_source" /></code> to Move from <code><xsl:value-of select="current_source" /></code> to
</label> </label>
<select name="destination" id="moveto"> <select name="destination" id="moveto">
<xsl:for-each select="source"> <xsl:for-each select="source">
<option value="{@mount}"> <option value="{@mount}">
<xsl:value-of select="@mount" /> <xsl:value-of select="@mount" />
</option> </option>
</xsl:for-each> </xsl:for-each>
</select> </select>
<input type="hidden" name="mount" value="{current_source}" /> <input type="hidden" name="mount" value="{current_source}" />
&#160; &#160;
<input type="submit" value="Move listeners" /> <input type="submit" value="Move listeners" />
</form> </form>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<aside class="warning"> <aside class="warning">
<strong>No mounts!</strong> <strong>No mounts!</strong>
There are no other mountpoints you could move the listeners to. There are no other mountpoints you could move the listeners to.
</aside> </aside>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</section> </section>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,18 +1,18 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:variable name="title">Server Response</xsl:variable> <xsl:variable name="title">Server Response</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:for-each select="/iceresponse"> <xsl:for-each select="/iceresponse">
<section class="box"> <section class="box">
<h3 class="box_title">Response</h3> <h3 class="box_title">Response</h3>
<h4>Message</h4> <h4>Message</h4>
<p><xsl:value-of select="message" /></p> <p><xsl:value-of select="message" /></p>
<p>(Return Code: <xsl:value-of select="return" />)</p> <p>(Return Code: <xsl:value-of select="return" />)</p>
</section> </section>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,24 +1,24 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:variable name="title">Logfiles</xsl:variable> <xsl:variable name="title">Logfiles</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:for-each select="/report/incident"> <xsl:for-each select="/report/incident">
<section class="box"> <section class="box">
<h3 class="box_title">Logfile <code><xsl:value-of select="resource[@name='logcontent']/value/value[@member='logfile']/@value" /></code></h3> <h3 class="box_title">Logfile <code><xsl:value-of select="resource[@name='logcontent']/value/value[@member='logfile']/@value" /></code></h3>
<ul class="boxnav"> <ul class="boxnav">
<xsl:for-each select="resource[@name='logfiles']/value/value"> <xsl:for-each select="resource[@name='logfiles']/value/value">
<li><a href="?logfile={@value}"><xsl:value-of select="@value" /></a></li> <li><a href="?logfile={@value}"><xsl:value-of select="@value" /></a></li>
</xsl:for-each> </xsl:for-each>
<li class="critical"><a href="/admin/marklog.xsl">Mark logfiles</a></li> <li class="critical"><a href="/admin/marklog.xsl">Mark logfiles</a></li>
</ul> </ul>
<ul class="codeblock"> <ul class="codeblock">
<xsl:for-each select="resource[@name='logcontent']/value/value[@member='lines']/value"> <xsl:for-each select="resource[@name='logcontent']/value/value[@member='lines']/value">
<li><pre><xsl:value-of select="@value" /></pre></li> <li><pre><xsl:value-of select="@value" /></pre></li>
</xsl:for-each> </xsl:for-each>
</ul> </ul>
</section> </section>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,131 +1,131 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:include href="includes/player.xsl"/> <xsl:include href="includes/player.xsl"/>
<xsl:include href="includes/playlist.xsl"/> <xsl:include href="includes/playlist.xsl"/>
<xsl:param name="param-showall" /> <xsl:param name="param-showall" />
<xsl:param name="param-has-mount" /> <xsl:param name="param-has-mount" />
<xsl:variable name="title">Server status</xsl:variable> <xsl:variable name="title">Server status</xsl:variable>
<!-- Auth template --> <!-- Auth template -->
<xsl:template name="authlist"> <xsl:template name="authlist">
<ul> <ul>
<xsl:for-each select="authentication/role"> <xsl:for-each select="authentication/role">
<li>Role <li>Role
<xsl:if test="@name"> <xsl:if test="@name">
<xsl:value-of select="@name" /> <xsl:value-of select="@name" />
</xsl:if> </xsl:if>
of type <xsl:value-of select="@type" /> of type <xsl:value-of select="@type" />
<xsl:if test="@management-url"> <xsl:if test="@management-url">
<xsl:choose> <xsl:choose>
<xsl:when test="@can-adduser='true' or @can-deleteuser='true'"> <xsl:when test="@can-adduser='true' or @can-deleteuser='true'">
(<a href="{@management-url}">Manage</a>) (<a href="{@management-url}">Manage</a>)
</xsl:when> </xsl:when>
<xsl:when test="@can-listuser='true'"> <xsl:when test="@can-listuser='true'">
(<a href="{@management-url}">List</a>) (<a href="{@management-url}">List</a>)
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:if> </xsl:if>
</li> </li>
</xsl:for-each> </xsl:for-each>
</ul> </ul>
</xsl:template> </xsl:template>
<xsl:template name="content"> <xsl:template name="content">
<h2>Server status</h2> <h2>Server status</h2>
<!-- Global stats table --> <!-- Global stats table -->
<section class="box"> <section class="box">
<h3 class="box_title">Global server stats</h3> <h3 class="box_title">Global server stats</h3>
<!-- Global subnav --> <!-- Global subnav -->
<div class="stats"> <div class="stats">
<ul class="boxnav"> <ul class="boxnav">
<li><a href="/admin/reloadconfig.xsl">Reload Configuration</a></li> <li><a href="/admin/reloadconfig.xsl">Reload Configuration</a></li>
<li><a href="/admin/?showall=true">Show all mounts</a></li> <li><a href="/admin/?showall=true">Show all mounts</a></li>
</ul> </ul>
</div> </div>
<h4>Statistics</h4> <h4>Statistics</h4>
<table class="table-block"> <table class="table-block">
<thead> <thead>
<tr> <tr>
<th>Key</th> <th>Key</th>
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<xsl:for-each select="/icestats/*[not(self::source) and not(self::authentication) and not(self::modules)]"> <xsl:for-each select="/icestats/*[not(self::source) and not(self::authentication) and not(self::modules)]">
<tr> <tr>
<td><xsl:value-of select="name()" /></td> <td><xsl:value-of select="name()" /></td>
<td><xsl:value-of select="text()" /></td> <td><xsl:value-of select="text()" /></td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
<!-- Global Auth --> <!-- Global Auth -->
<xsl:if test="authentication"> <xsl:if test="authentication">
<h4>Authentication</h4> <h4>Authentication</h4>
<xsl:call-template name="authlist" /> <xsl:call-template name="authlist" />
</xsl:if> </xsl:if>
</section> </section>
<!-- Mount stats --> <!-- Mount stats -->
<xsl:if test="$param-showall or $param-has-mount"> <xsl:if test="$param-showall or $param-has-mount">
<xsl:for-each select="source"> <xsl:for-each select="source">
<section class="box" id="mount-{position()}"> <section class="box" id="mount-{position()}">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<!-- Mount nav --> <!-- Mount nav -->
<xsl:call-template name="mountnav" /> <xsl:call-template name="mountnav" />
<xsl:call-template name="player" /> <xsl:call-template name="player" />
<h4>Further information</h4> <h4>Further information</h4>
<table class="table-block"> <table class="table-block">
<thead> <thead>
<tr> <tr>
<th>Key</th> <th>Key</th>
<th>Value</th> <th>Value</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<xsl:for-each select="*[not(self::metadata) and not(self::authentication) and not(self::authenticator) and not(self::listener)]"> <xsl:for-each select="*[not(self::metadata) and not(self::authentication) and not(self::authenticator) and not(self::listener)]">
<tr> <tr>
<td><xsl:value-of select="name()" /></td> <td><xsl:value-of select="name()" /></td>
<td><xsl:value-of select="text()" /></td> <td><xsl:value-of select="text()" /></td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
<!-- Extra metadata --> <!-- Extra metadata -->
<xsl:if test="metadata/*"> <xsl:if test="metadata/*">
<h4>Extra Metadata</h4> <h4>Extra Metadata</h4>
<table class="table-block"> <table class="table-block">
<tbody> <tbody>
<xsl:for-each select="metadata/*"> <xsl:for-each select="metadata/*">
<tr> <tr>
<td><xsl:value-of select="name()" /></td> <td><xsl:value-of select="name()" /></td>
<td><xsl:value-of select="text()" /></td> <td><xsl:value-of select="text()" /></td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</tbody> </tbody>
</table> </table>
</xsl:if> </xsl:if>
<!-- Extra playlist --> <!-- Extra playlist -->
<xsl:call-template name="playlist" /> <xsl:call-template name="playlist" />
<!-- Mount Authentication --> <!-- Mount Authentication -->
<xsl:if test="authentication/*"> <xsl:if test="authentication/*">
<h4>Mount Authentication</h4> <h4>Mount Authentication</h4>
<xsl:call-template name="authlist" /> <xsl:call-template name="authlist" />
</xsl:if> </xsl:if>
</section> </section>
</xsl:for-each> </xsl:for-each>
</xsl:if> </xsl:if>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,39 +1,39 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<!-- Import include files --> <!-- Import include files -->
<xsl:include href="includes/page.xsl"/> <xsl:include href="includes/page.xsl"/>
<xsl:include href="includes/mountnav.xsl"/> <xsl:include href="includes/mountnav.xsl"/>
<xsl:variable name="title">Update Metadata</xsl:variable> <xsl:variable name="title">Update Metadata</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<div class="section"> <div class="section">
<h2><xsl:value-of select="$title" /></h2> <h2><xsl:value-of select="$title" /></h2>
<xsl:for-each select="source"> <xsl:for-each select="source">
<section class="box"> <section class="box">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<!-- Mount nav --> <!-- Mount nav -->
<xsl:call-template name="mountnav" /> <xsl:call-template name="mountnav" />
<h4>Update Metadata</h4> <h4>Update Metadata</h4>
<xsl:if test="content-type and not((content-type = 'application/mpeg') or (content-type = 'audio/aac') or (content-type = 'audio/aacp'))"> <xsl:if test="content-type and not((content-type = 'application/mpeg') or (content-type = 'audio/aac') or (content-type = 'audio/aacp'))">
<aside class="warning"> <aside class="warning">
<strong>Warning</strong> <strong>Warning</strong>
This is only supported for legacy codecs using ICY as transport such as MP3 and AAC. This is only supported for legacy codecs using ICY as transport such as MP3 and AAC.
</aside> </aside>
</xsl:if> </xsl:if>
<form method="post" action="/admin/metadata.xsl"> <form method="post" action="/admin/metadata.xsl">
<input type="hidden" name="mount" value="{@mount}" /> <input type="hidden" name="mount" value="{@mount}" />
<input type="hidden" name="mode" value="updinfo" /> <input type="hidden" name="mode" value="updinfo" />
<input type="hidden" name="charset" value="UTF-8" /> <input type="hidden" name="charset" value="UTF-8" />
<label for="metadata" class="hidden">Metadata:</label> <label for="metadata" class="hidden">Metadata:</label>
<input type="text" id="metadata" name="song" value="" placeholder="Click to edit" required="required" /> <input type="text" id="metadata" name="song" value="" placeholder="Click to edit" required="required" />
&#160; &#160;
<input type="submit" value="Update Metadata" /> <input type="submit" value="Update Metadata" />
</form> </form>
</section> </section>
</xsl:for-each> </xsl:for-each>
</div> </div>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,54 +1,54 @@
<!-- <!--
VCLT xslt stylesheet for Icecast 2.3.2 and above VCLT xslt stylesheet for Icecast 2.3.2 and above
based on XSPF xslt stylesheet. based on XSPF xslt stylesheet.
Copyright (C) 2007 Thomas B. Ruecker, <thomas@ruecker.fi> Copyright (C) 2007 Thomas B. Ruecker, <thomas@ruecker.fi>
Copyright (C) 2011 Philipp Schafft, <lion@lion.leolix.org> Copyright (C) 2011 Philipp Schafft, <lion@lion.leolix.org>
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2 as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version. of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. GNU General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with this program; if not, write to the along with this program; if not, write to the
Free Software Foundation, Inc., Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
--> -->
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output omit-xml-declaration="yes" media-type="audio/x-vclt" <xsl:output omit-xml-declaration="yes" media-type="audio/x-vclt"
method="text" indent="no" encoding="UTF-8" /> method="text" indent="no" encoding="UTF-8" />
<xsl:template match = "/icestats" > <xsl:template match = "/icestats" >
<xsl:for-each select="source">STREAMURL=<xsl:value-of select="listenurl" /> <xsl:for-each select="source">STREAMURL=<xsl:value-of select="listenurl" />
<xsl:if test="artist"><xsl:text> <xsl:if test="artist"><xsl:text>
</xsl:text>ARTIST=<xsl:value-of select="artist" /></xsl:if> </xsl:text>ARTIST=<xsl:value-of select="artist" /></xsl:if>
<xsl:if test="title"><xsl:text> <xsl:if test="title"><xsl:text>
</xsl:text>TITLE=<xsl:value-of select="title" /></xsl:if> </xsl:text>TITLE=<xsl:value-of select="title" /></xsl:if>
<xsl:if test="server_name"><xsl:text> <xsl:if test="server_name"><xsl:text>
</xsl:text>SERVER_NAME=<xsl:value-of select="server_name" /></xsl:if> </xsl:text>SERVER_NAME=<xsl:value-of select="server_name" /></xsl:if>
<xsl:if test="server_description"><xsl:text> <xsl:if test="server_description"><xsl:text>
</xsl:text>DESCRIPTION=<xsl:value-of select="server_description" /></xsl:if> </xsl:text>DESCRIPTION=<xsl:value-of select="server_description" /></xsl:if>
SIGNALINFO=<xsl:choose> SIGNALINFO=<xsl:choose>
<xsl:when test="server_type = 'application/ogg'"> <xsl:when test="server_type = 'application/ogg'">
<xsl:choose> <xsl:choose>
<xsl:when test="subtype = 'Vorbis'">codec:ogg_vorbis</xsl:when> <xsl:when test="subtype = 'Vorbis'">codec:ogg_vorbis</xsl:when>
<!-- More codecs should be added here, however I don't know how to find out about the codec. <!-- More codecs should be added here, however I don't know how to find out about the codec.
At the moment we just guess that application/ogg is a Ogg bitstream with some undefined At the moment we just guess that application/ogg is a Ogg bitstream with some undefined
codec. Everything else is undefined. codec. Everything else is undefined.
--> -->
<xsl:otherwise>codec:ogg_general</xsl:otherwise> <xsl:otherwise>codec:ogg_general</xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
</xsl:choose><xsl:text> </xsl:choose><xsl:text>
</xsl:text> </xsl:text>
<xsl:if test="genre">GENRE=<xsl:value-of select="genre" /></xsl:if> <xsl:if test="genre">GENRE=<xsl:value-of select="genre" /></xsl:if>
== ==
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,6 +1,6 @@
<!-- <!--
XSPF xslt stylesheet for Icecast and above XSPF xslt stylesheet for Icecast and above
Copyright (C) 2007 Thomas B. Ruecker, <thomas@ruecker.fi> Copyright (C) 2007 Thomas B. Ruecker, <thomas@ruecker.fi>
This program is free software; you can redistribute it and/or This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
@ -16,58 +16,58 @@
along with this program; if not, write to the along with this program; if not, write to the
Free Software Foundation, Inc., Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
--> -->
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" > <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output omit-xml-declaration="no" media-type="application/xspf+xml" <xsl:output omit-xml-declaration="no" media-type="application/xspf+xml"
method="xml" indent="yes" encoding="UTF-8" /> method="xml" indent="yes" encoding="UTF-8" />
<xsl:template match = "/icestats" > <xsl:template match = "/icestats" >
<playlist version="1" xmlns="http://xspf.org/ns/0/"> <playlist version="1" xmlns="http://xspf.org/ns/0/">
<title><xsl:value-of select="server" /></title> <title><xsl:value-of select="server" /></title>
<creator><xsl:value-of select="server" /></creator> <creator><xsl:value-of select="server" /></creator>
<trackList > <trackList >
<!-- end of "header" --> <!-- end of "header" -->
<xsl:for-each select="source"> <xsl:for-each select="source">
<track> <track>
<location><xsl:value-of select="listenurl" /></location> <location><xsl:value-of select="listenurl" /></location>
<xsl:if test="artist"><creator><xsl:value-of select="artist" /></creator></xsl:if> <xsl:if test="artist"><creator><xsl:value-of select="artist" /></creator></xsl:if>
<title><xsl:value-of select="title" /></title> <title><xsl:value-of select="title" /></title>
<!-- The <xsl:text>\n</xsl:text> elements in the following part are used <!-- The <xsl:text>\n</xsl:text> elements in the following part are used
to enforce linebreaks this format seems to be expected by clients --> to enforce linebreaks this format seems to be expected by clients -->
<annotation> <annotation>
<xsl:if test="server_name">Stream Title: <xsl:value-of select="server_name" /><xsl:text> <xsl:if test="server_name">Stream Title: <xsl:value-of select="server_name" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="server_description">Stream Description: <xsl:value-of select="server_description" /></xsl:if> <xsl:if test="server_description">Stream Description: <xsl:value-of select="server_description" /></xsl:if>
Content Type:<xsl:value-of select="server_type" /><xsl:text> Content Type:<xsl:value-of select="server_type" /><xsl:text>
</xsl:text> </xsl:text>
<xsl:if test="bitrate">Bitrate: <xsl:value-of select="bitrate" /><xsl:text> <xsl:if test="bitrate">Bitrate: <xsl:value-of select="bitrate" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="quality">Quality: <xsl:value-of select="quality" /><xsl:text> <xsl:if test="quality">Quality: <xsl:value-of select="quality" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="video_quality">Video Quality: <xsl:value-of select="video_quality" /><xsl:text> <xsl:if test="video_quality">Video Quality: <xsl:value-of select="video_quality" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="frame_size">Framesize: <xsl:value-of select="frame_size" /><xsl:text> <xsl:if test="frame_size">Framesize: <xsl:value-of select="frame_size" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="frame_rate">Framerate: <xsl:value-of select="frame_rate" /><xsl:text> <xsl:if test="frame_rate">Framerate: <xsl:value-of select="frame_rate" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="listeners">Current Listeners: <xsl:value-of select="listeners" /><xsl:text> <xsl:if test="listeners">Current Listeners: <xsl:value-of select="listeners" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="listener_peak">Peak Listeners: <xsl:value-of select="listener_peak" /><xsl:text> <xsl:if test="listener_peak">Peak Listeners: <xsl:value-of select="listener_peak" /><xsl:text>
</xsl:text></xsl:if> </xsl:text></xsl:if>
<xsl:if test="genre">Stream Genre: <xsl:value-of select="genre" /></xsl:if> <xsl:if test="genre">Stream Genre: <xsl:value-of select="genre" /></xsl:if>
</annotation> </annotation>
<xsl:if test="server_url"><info><xsl:value-of select="server_url" /></info></xsl:if> <xsl:if test="server_url"><info><xsl:value-of select="server_url" /></info></xsl:if>
</track> </track>
</xsl:for-each> </xsl:for-each>
</trackList> </trackList>
</playlist> </playlist>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,37 +1,37 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="includes/web-page.xsl"/> <xsl:include href="includes/web-page.xsl"/>
<xsl:variable name="title">Authorization Page</xsl:variable> <xsl:variable name="title">Authorization Page</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<xsl:for-each select="source"> <xsl:for-each select="source">
<xsl:choose> <xsl:choose>
<xsl:when test="listeners"> <xsl:when test="listeners">
<xsl:if test="authenticator"> <xsl:if test="authenticator">
<div class="roundbox"> <div class="roundbox">
<h3 class="mount"> <h3 class="mount">
Mount Point <xsl:value-of select="@mount" /> Mount Point <xsl:value-of select="@mount" />
<xsl:if test="server_name"> <xsl:if test="server_name">
<small><xsl:value-of select="server_name" /></small> <small><xsl:value-of select="server_name" /></small>
</xsl:if> </xsl:if>
</h3> </h3>
<form class="alignedform" method="get" action="/admin/buildm3u"> <form class="alignedform" method="get" action="/admin/buildm3u">
<p> <p>
<label for="name">Username: </label> <label for="name">Username: </label>
<input id="name" name="username" type="text" /> <input id="name" name="username" type="text" />
</p> </p>
<p> <p>
<label for="password">Password: </label> <label for="password">Password: </label>
<input id="password" name="password" type="password" /> <input id="password" name="password" type="password" />
</p> </p>
<input type="hidden" name="mount" value="{@mount}" /> <input type="hidden" name="mount" value="{@mount}" />
<input type="submit" value="Login" /> <input type="submit" value="Login" />
</form> </form>
</div> </div>
</xsl:if> </xsl:if>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<h3><xsl:value-of select="@mount" /> - Not Connected</h3> <h3><xsl:value-of select="@mount" /> - Not Connected</h3>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:for-each> </xsl:for-each>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,52 +1,52 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="includes/web-page.xsl"/> <xsl:include href="includes/web-page.xsl"/>
<xsl:variable name="title">Server Information</xsl:variable> <xsl:variable name="title">Server Information</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<h2>Version</h2> <h2>Version</h2>
<section class="box"> <section class="box">
<h3 class="box_title">Server Information</h3> <h3 class="box_title">Server Information</h3>
<table class="table-keys"> <table class="table-keys">
<tbody> <tbody>
<xsl:for-each select="/icestats"> <xsl:for-each select="/icestats">
<tr> <tr>
<td>Location</td> <td>Location</td>
<td><xsl:value-of select="location" /></td> <td><xsl:value-of select="location" /></td>
</tr> </tr>
<tr> <tr>
<td>Admin</td> <td>Admin</td>
<td><xsl:value-of select="admin" /></td> <td><xsl:value-of select="admin" /></td>
</tr> </tr>
<tr> <tr>
<td>Host</td> <td>Host</td>
<td><xsl:value-of select="host" /></td> <td><xsl:value-of select="host" /></td>
</tr> </tr>
<tr> <tr>
<td>Version</td> <td>Version</td>
<td><xsl:value-of select="server_id" /></td> <td><xsl:value-of select="server_id" /></td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
<tr> <tr>
<td>Download</td> <td>Download</td>
<td><a href="https://icecast.org/download/">icecast.org/download/</a></td> <td><a href="https://icecast.org/download/">icecast.org/download/</a></td>
</tr> </tr>
<tr> <tr>
<td>Git</td> <td>Git</td>
<td><a href="https://icecast.org/download/#git">icecast.org/download/#git</a></td> <td><a href="https://icecast.org/download/#git">icecast.org/download/#git</a></td>
</tr> </tr>
<tr> <tr>
<td>Documentation</td> <td>Documentation</td>
<td><a href="https://icecast.org/docs/">icecast.org/docs/</a></td> <td><a href="https://icecast.org/docs/">icecast.org/docs/</a></td>
</tr> </tr>
<tr> <tr>
<td>Stream Directory</td> <td>Stream Directory</td>
<td><a href="https://dir.xiph.org/">dir.xiph.org</a></td> <td><a href="https://dir.xiph.org/">dir.xiph.org</a></td>
</tr> </tr>
<tr> <tr>
<td>Community</td> <td>Community</td>
<td><a href="https://icecast.org/contact/">icecast.org/contact/</a></td> <td><a href="https://icecast.org/contact/">icecast.org/contact/</a></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</section> </section>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,25 +1,25 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="xml2json.xslt"/> <xsl:import href="xml2json.xslt"/>
<xsl:output indent="no" omit-xml-declaration="yes" method="text" encoding="UTF-8" media-type="application/json"/> <xsl:output indent="no" omit-xml-declaration="yes" method="text" encoding="UTF-8" media-type="application/json"/>
<xsl:strip-space elements="*"/> <xsl:strip-space elements="*"/>
<!-- override imported transform variable to enable output --> <!-- override imported transform variable to enable output -->
<xsl:variable name="output">true</xsl:variable> <xsl:variable name="output">true</xsl:variable>
<!-- hide certain nodes from all sources --> <!-- hide certain nodes from all sources -->
<xsl:template match="icestats/source/max_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/max_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/public"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/public"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/source_ip"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/source_ip"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/slow_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/slow_listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/*[contains(name(), 'total_bytes')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/*[contains(name(), 'total_bytes')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/user_agent" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/user_agent" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/source/listener" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/source/listener" ><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<!-- hide certain global nodes --> <!-- hide certain global nodes -->
<xsl:template match="icestats/sources"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/sources"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/clients"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/clients"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/stats"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/stats"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="icestats/listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="icestats/listeners"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
<xsl:template match="node()[contains(name(), 'connections')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template> <xsl:template match="node()[contains(name(), 'connections')]"><xsl:if test="not(following-sibling::*)">"dummy":null}</xsl:if></xsl:template>
</xsl:stylesheet> </xsl:stylesheet>

View File

@ -1,132 +1,132 @@
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:include href="includes/web-page.xsl"/> <xsl:include href="includes/web-page.xsl"/>
<xsl:include href="includes/player.xsl"/> <xsl:include href="includes/player.xsl"/>
<xsl:include href="includes/playlist.xsl"/> <xsl:include href="includes/playlist.xsl"/>
<xsl:variable name="title">Status</xsl:variable> <xsl:variable name="title">Status</xsl:variable>
<xsl:template name="content"> <xsl:template name="content">
<!--mount point stats--> <!--mount point stats-->
<h2>Status</h2> <h2>Status</h2>
<xsl:choose> <xsl:choose>
<xsl:when test="source"> <xsl:when test="source">
<xsl:for-each select="source"> <xsl:for-each select="source">
<xsl:choose> <xsl:choose>
<xsl:when test="listeners"> <xsl:when test="listeners">
<section class="box"> <section class="box">
<h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3> <h3 class="box_title">Mountpoint <code><xsl:value-of select="@mount" /></code></h3>
<xsl:call-template name="player" /> <xsl:call-template name="player" />
<!-- Stream info and stats --> <!-- Stream info and stats -->
<h4>Further information</h4> <h4>Further information</h4>
<div class="mountcont"> <div class="mountcont">
<table class="table-keys"> <table class="table-keys">
<tbody> <tbody>
<xsl:if test="server_name"> <xsl:if test="server_name">
<tr> <tr>
<td>Stream Name:</td> <td>Stream Name:</td>
<td><xsl:value-of select="server_name" /></td> <td><xsl:value-of select="server_name" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="server_description"> <xsl:if test="server_description">
<tr> <tr>
<td>Stream Description:</td> <td>Stream Description:</td>
<td><xsl:value-of select="server_description" /></td> <td><xsl:value-of select="server_description" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="server_type"> <xsl:if test="server_type">
<tr> <tr>
<td>Content Type:</td> <td>Content Type:</td>
<td><xsl:value-of select="server_type" /></td> <td><xsl:value-of select="server_type" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="stream_start"> <xsl:if test="stream_start">
<tr> <tr>
<td>Stream started:</td> <td>Stream started:</td>
<td class="streamstats"><xsl:value-of select="stream_start" /></td> <td class="streamstats"><xsl:value-of select="stream_start" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="bitrate"> <xsl:if test="bitrate">
<tr> <tr>
<td>Bitrate:</td> <td>Bitrate:</td>
<td class="streamstats"><xsl:value-of select="bitrate" /></td> <td class="streamstats"><xsl:value-of select="bitrate" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="quality"> <xsl:if test="quality">
<tr> <tr>
<td>Quality:</td> <td>Quality:</td>
<td class="streamstats"><xsl:value-of select="quality" /></td> <td class="streamstats"><xsl:value-of select="quality" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="video_quality"> <xsl:if test="video_quality">
<tr> <tr>
<td>Video Quality:</td> <td>Video Quality:</td>
<td class="streamstats"><xsl:value-of select="video_quality" /></td> <td class="streamstats"><xsl:value-of select="video_quality" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="frame_size"> <xsl:if test="frame_size">
<tr> <tr>
<td>Framesize:</td> <td>Framesize:</td>
<td class="streamstats"><xsl:value-of select="frame_size" /></td> <td class="streamstats"><xsl:value-of select="frame_size" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="frame_rate"> <xsl:if test="frame_rate">
<tr> <tr>
<td>Framerate:</td> <td>Framerate:</td>
<td class="streamstats"><xsl:value-of select="frame_rate" /></td> <td class="streamstats"><xsl:value-of select="frame_rate" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="listeners"> <xsl:if test="listeners">
<tr> <tr>
<td>Listeners (current):</td> <td>Listeners (current):</td>
<td class="streamstats"><xsl:value-of select="listeners" /></td> <td class="streamstats"><xsl:value-of select="listeners" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="listener_peak"> <xsl:if test="listener_peak">
<tr> <tr>
<td>Listeners (peak):</td> <td>Listeners (peak):</td>
<td class="streamstats"><xsl:value-of select="listener_peak" /></td> <td class="streamstats"><xsl:value-of select="listener_peak" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="genre"> <xsl:if test="genre">
<tr> <tr>
<td>Genre:</td> <td>Genre:</td>
<td class="streamstats"><xsl:value-of select="genre" /></td> <td class="streamstats"><xsl:value-of select="genre" /></td>
</tr> </tr>
</xsl:if> </xsl:if>
<xsl:if test="server_url"> <xsl:if test="server_url">
<tr> <tr>
<td>Stream URL:</td> <td>Stream URL:</td>
<td class="streamstats"> <td class="streamstats">
<a href="{server_url}"><xsl:value-of select="server_url" /></a> <a href="{server_url}"><xsl:value-of select="server_url" /></a>
</td> </td>
</tr> </tr>
</xsl:if> </xsl:if>
<tr> <tr>
<td>Currently playing:</td> <td>Currently playing:</td>
<td class="streamstats"> <td class="streamstats">
<xsl:if test="artist"> <xsl:if test="artist">
<xsl:value-of select="artist" /> - <xsl:value-of select="artist" /> -
</xsl:if> </xsl:if>
<xsl:value-of select="title" /> <xsl:value-of select="title" />
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
<!-- Extra playlist --> <!-- Extra playlist -->
<xsl:call-template name="playlist" /> <xsl:call-template name="playlist" />
</div> </div>
</section> </section>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<h3><xsl:value-of select="@mount" /> - Not Connected</h3> <h3><xsl:value-of select="@mount" /> - Not Connected</h3>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
<aside class="info"> <aside class="info">
<strong>No mounts!</strong> There are no active mountpoints. <strong>No mounts!</strong> There are no active mountpoints.
</aside> </aside>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>