85 <table border="1"> |
85 <table border="1"> |
86 <tr><th>Severity</th><th>Count</th></tr> |
86 <tr><th>Severity</th><th>Count</th></tr> |
87 <xsl:for-each select="/buildStatus/phase/step/failures[generate-id(.) = generate-id(key('severities', @level))]"> |
87 <xsl:for-each select="/buildStatus/phase/step/failures[generate-id(.) = generate-id(key('severities', @level))]"> |
88 <xsl:variable name="severity" select="@level"/> |
88 <xsl:variable name="severity" select="@level"/> |
89 <tr> |
89 <tr> |
90 <td><xsl:value-of select="$severity"/></td> |
90 <td><a> |
|
91 <xsl:if test="count(/buildStatus/phase/step/failures[@level = $severity]/failure[@package = $package]) != 0"> |
|
92 <xsl:attribute name="href"><xsl:value-of select="concat('#', $severity, $package)"/></xsl:attribute> |
|
93 </xsl:if> |
|
94 <xsl:value-of select="$severity"/></a></td> |
91 <td><xsl:value-of select="count(key('packageANDseverity', concat($severity, $package)))"/></td> |
95 <td><xsl:value-of select="count(key('packageANDseverity', concat($severity, $package)))"/></td> |
92 </tr> |
96 </tr> |
93 </xsl:for-each> |
97 </xsl:for-each> |
94 </table> |
98 </table> |
95 </xsl:for-each> |
99 </xsl:for-each> |
113 </dd></dl> |
117 </dd></dl> |
114 </xsl:for-each> |
118 </xsl:for-each> |
115 </xsl:for-each> |
119 </xsl:for-each> |
116 </xsl:for-each> |
120 </xsl:for-each> |
117 |
121 |
118 <h2>Package failures by phase/step/severity</h2> |
122 <h2>Package failures by package/severity</h2> |
119 <xsl:if test="count(phase/step/failures/failure/@package) = 0"> |
123 <xsl:if test="count(phase/step/failures/failure/@package) = 0"> |
120 <p>No errors specific to a package</p> |
124 <p>No errors specific to a package</p> |
121 </xsl:if> |
125 </xsl:if> |
122 <xsl:for-each select="phase[step/failures/failure/@package]"> |
126 <xsl:for-each select="phase/step/failures[@level]/failure[generate-id(.) = generate-id(key('packages', @package))]"> |
123 <h3>Phase: <xsl:value-of select="@name"/></h3> |
127 <xsl:sort select="@package"/> |
124 <xsl:for-each select="step[failures/failure/@package]"> |
128 <xsl:variable name="package" select="@package"/> |
125 <h4>Step: <xsl:value-of select="@name"/></h4> |
129 <a><xsl:attribute name="name"><xsl:value-of select="concat('package', $package)"/></xsl:attribute> |
126 <xsl:for-each select="failures[failure/@package]"> |
130 <h3><xsl:value-of select="$package"/></h3> |
127 <dl><dt><xsl:value-of select="@level"/></dt><dd> |
131 </a> |
|
132 <xsl:for-each select="/buildStatus/phase/step/failures[generate-id(.) = generate-id(key('severities', @level))]"> |
|
133 <xsl:variable name="severity" select="@level"/> |
|
134 <xsl:if test="count(/buildStatus/phase/step/failures[@level = $severity]/failure[@package = $package]) != 0"> |
|
135 <dl><dt><a><xsl:attribute name="name"><xsl:value-of select="concat($severity, $package)"/></xsl:attribute> |
|
136 <xsl:value-of select="$severity"/> (<xsl:value-of select="count(/buildStatus/phase/step/failures[@level = $severity]/failure[@package = $package])"/>) |
|
137 </a></dt><dd> |
128 <ul> |
138 <ul> |
129 <xsl:for-each select="failure[@package]"> |
139 <xsl:for-each select="/buildStatus/phase/step/failures[@level = $severity]/failure[@package = $package]"> |
130 <xsl:sort select="@package"/> |
140 <xsl:sort select="@package"/> |
131 <li><xsl:value-of select="@package"/>: <xsl:value-of select="."/></li> |
141 <li><xsl:value-of select="@package"/>: <xsl:value-of select="."/></li> |
132 </xsl:for-each> |
142 </xsl:for-each> |
133 </ul> |
143 </ul> |
134 </dd></dl> |
144 </dd></dl> |
135 </xsl:for-each> |
145 </xsl:if> |
136 </xsl:for-each> |
146 </xsl:for-each> |
137 </xsl:for-each> |
147 </xsl:for-each> |
138 |
148 |
139 </body> |
149 </body> |
140 </html> |
150 </html> |