54 lines
2.1 KiB
HTML
54 lines
2.1 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<xsl:output method="html" encoding="utf-8" indent="yes" />
|
|
<xsl:template match="/">
|
|
<!-- <xsl:text disable-output-escaping="yes"><!DOCTYPE html></xsl:text> -->
|
|
<html>
|
|
<head>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<title><xsl:value-of select="/error_info/summary" /> - <xsl:value-of select="/error_info/project_name" /> - Sandpiper</title>
|
|
|
|
<link rel="stylesheet" href="/theme/main.css" />
|
|
</head>
|
|
<body>
|
|
<!-- HACK: We need to shrink the area that the h1 takes
|
|
up if there's a h2 present, so since we're using the CSS3
|
|
grid, we can put the h2 first in order to hit the h1
|
|
as you can't select on the other way around. -->
|
|
<!-- FUTURE: Use a <header /> here instead? -->
|
|
<h2><xsl:value-of select="/error_info/summary" /></h2>
|
|
<h1>Sandpiper - <xsl:value-of select="/error_info/project_name" /></h1>
|
|
|
|
<a class="back-button-main" href="index.xml">« Back</a>
|
|
|
|
<div class="report-list">
|
|
|
|
<xsl:for-each select="/error_info/reports/report">
|
|
<xsl:sort select="position()" data-type="number" order="descending"/>
|
|
|
|
<div class="report">
|
|
<div>
|
|
<time>
|
|
<xsl:value-of select="timestamp" />
|
|
</time>
|
|
<span class="version">
|
|
<xsl:value-of select="version" />
|
|
</span>
|
|
</div>
|
|
<xsl:if test="string-length(details)!=0">
|
|
<div class="details">
|
|
<xsl:value-of select="details" />
|
|
</div>
|
|
</xsl:if>
|
|
<pre class="stack-trace"><code>
|
|
<xsl:value-of select="stack_trace" />
|
|
</code></pre>
|
|
</div>
|
|
</xsl:for-each>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|
|
</xsl:template>
|
|
</xsl:transform>
|