uppercutbuild 0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/NDepend.xml +251 -0
- data/lib/build.bat +32 -0
- data/lib/build/Castle.Core.dll +0 -0
- data/lib/build/Castle.DynamicProxy2.dll +0 -0
- data/lib/build/Castle.MicroKernel.dll +0 -0
- data/lib/build/Castle.Windsor.dll +0 -0
- data/lib/build/UppercuT.xml +5 -0
- data/lib/build/analyze.step +78 -0
- data/lib/build/analyzers/gallio.test.step +145 -0
- data/lib/build/analyzers/mbunit2.test.step +146 -0
- data/lib/build/analyzers/moma.step +143 -0
- data/lib/build/analyzers/ncover.step +186 -0
- data/lib/build/analyzers/ndepend.step +95 -0
- data/lib/build/analyzers/nitriq.step +116 -0
- data/lib/build/analyzers/nunit.test.step +172 -0
- data/lib/build/analyzers/test.step +99 -0
- data/lib/build/compile.step +178 -0
- data/lib/build/customize.bat +41 -0
- data/lib/build/customize.build +76 -0
- data/lib/build/customizers/item.template +50 -0
- data/lib/build/default.build +164 -0
- data/lib/build/deploymentBuilder.step +103 -0
- data/lib/build/environmentBuilder.step +119 -0
- data/lib/build/generateBuildInfo.step +106 -0
- data/lib/build/ilmerge.build +174 -0
- data/lib/build/open.build +103 -0
- data/lib/build/package.step +234 -0
- data/lib/build/policyChecks.step +81 -0
- data/lib/build/updateAssemblies.build +107 -0
- data/lib/build/uppercut.dll +0 -0
- data/lib/build/uppercut.tasks.dll +0 -0
- data/lib/build/versionBuilder.step +148 -0
- data/lib/build/versioners/git.step +106 -0
- data/lib/build/versioners/hg.step +106 -0
- data/lib/build/versioners/svn.step +112 -0
- data/lib/build/versioners/tfs.step +104 -0
- data/lib/build/zip.build +162 -0
- data/lib/deployment/scripts/database.deploy +37 -0
- data/lib/deployment/templates/AppDeployment.bat +9 -0
- data/lib/deployment/templates/DBDeployment.RESTORE.bat +9 -0
- data/lib/deployment/templates/DBDeployment.bat +9 -0
- data/lib/lib/MbUnit2/MbUnit.AddIn.dll +0 -0
- data/lib/lib/MbUnit2/MbUnit.Cons.exe +0 -0
- data/lib/lib/MbUnit2/MbUnit.Cons.exe.config +12 -0
- data/lib/lib/MbUnit2/MbUnit.Framework.2.0.dll +0 -0
- data/lib/lib/MbUnit2/MbUnit.Framework.XML +6929 -0
- data/lib/lib/MbUnit2/MbUnit.Framework.dll +0 -0
- data/lib/lib/MbUnit2/MbUnit.GUI.exe +0 -0
- data/lib/lib/MbUnit2/MbUnit.GUI.exe.config +14 -0
- data/lib/lib/MbUnit2/MbUnit.MSBuild.Tasks.dll +0 -0
- data/lib/lib/MbUnit2/NAnt.Core.dll +0 -0
- data/lib/lib/MbUnit2/NGraphviz.Helpers.dll +0 -0
- data/lib/lib/MbUnit2/NGraphviz.Layout.dll +0 -0
- data/lib/lib/MbUnit2/NGraphviz.dll +0 -0
- data/lib/lib/MbUnit2/QuickGraph.Algorithms.Graphviz.dll +0 -0
- data/lib/lib/MbUnit2/QuickGraph.Algorithms.dll +0 -0
- data/lib/lib/MbUnit2/QuickGraph.dll +0 -0
- data/lib/lib/MbUnit2/Refly.dll +0 -0
- data/lib/lib/MbUnit2/TestDriven.Framework.dll +0 -0
- data/lib/lib/MbUnit2/TestFu.XML +1932 -0
- data/lib/lib/MbUnit2/TestFu.dll +0 -0
- data/lib/lib/MbUnit2/XsdTidy.exe +0 -0
- data/lib/lib/MoMA/Definitions/2.4.0.1-defs.zip +0 -0
- data/lib/lib/MoMA/ICSharpCode.SharpZipLib.dll +0 -0
- data/lib/lib/MoMA/MoMA.Analyzer.dll +0 -0
- data/lib/lib/MoMA/MoMA.exe +0 -0
- data/lib/lib/MoMA/Mono.Cecil.dll +0 -0
- data/lib/lib/MoMA/Reports/Media/fail.png +0 -0
- data/lib/lib/MoMA/Reports/Media/minus.png +0 -0
- data/lib/lib/MoMA/Reports/Media/moma.css +117 -0
- data/lib/lib/MoMA/Reports/Media/moma.js +17 -0
- data/lib/lib/MoMA/Reports/Media/pass.png +0 -0
- data/lib/lib/MoMA/Reports/Media/plus.png +0 -0
- data/lib/lib/MoMA/Resources/button_ok.png +0 -0
- data/lib/lib/MoMA/Resources/dialog-warning.png +0 -0
- data/lib/lib/MoMA/Resources/dialogback.png +0 -0
- data/lib/lib/MoMA/Resources/list-add.png +0 -0
- data/lib/lib/MoMA/Resources/list-directory.png +0 -0
- data/lib/lib/MoMA/Resources/list-remove.png +0 -0
- data/lib/lib/MoMA/Resources/monoback.png +0 -0
- data/lib/lib/MoMA/Resources/spinner.gif +0 -0
- data/lib/lib/NAnt/CollectionGen.dll +0 -0
- data/lib/lib/NAnt/Interop.MsmMergeTypeLib.dll +0 -0
- data/lib/lib/NAnt/Interop.StarTeam.dll +0 -0
- data/lib/lib/NAnt/Interop.WindowsInstaller.dll +0 -0
- data/lib/lib/NAnt/MSITaskErrors.mst +0 -0
- data/lib/lib/NAnt/MSITaskTemplate.msi +0 -0
- data/lib/lib/NAnt/MSMTaskErrors.mst +0 -0
- data/lib/lib/NAnt/MSMTaskTemplate.msm +0 -0
- data/lib/lib/NAnt/MbUnit.Framework.dll +0 -0
- data/lib/lib/NAnt/MbUnit.Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.CompressionTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.Contrib.Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.Core.dll +0 -0
- data/lib/lib/NAnt/NAnt.DotNetTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.MSNetTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.NUnit.dll +0 -0
- data/lib/lib/NAnt/NAnt.NUnit1Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.NUnit2Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.SourceControlTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.VSNetTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.VisualCppTasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.Win32Tasks.dll +0 -0
- data/lib/lib/NAnt/NAnt.exe +0 -0
- data/lib/lib/NAnt/NAnt.exe.config +2126 -0
- data/lib/lib/NAnt/NCoverExplorer.NAntTasks.dll +0 -0
- data/lib/lib/NAnt/NDepend.Build.NAntTasks.dll +0 -0
- data/lib/lib/NAnt/NDoc.Documenter.NAnt.dll +0 -0
- data/lib/lib/NAnt/QuickGraph.Algorithms.dll +0 -0
- data/lib/lib/NAnt/QuickGraph.dll +0 -0
- data/lib/lib/NAnt/SLiNgshoT.Core.dll +0 -0
- data/lib/lib/NAnt/SLiNgshoT.exe +0 -0
- data/lib/lib/NAnt/SourceSafe.Interop.dll +0 -0
- data/lib/lib/NAnt/ThoughtWorks.CruiseControl.MSBuild.dll +0 -0
- data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.dll +0 -0
- data/lib/lib/NAnt/extensions/common/2.0/NAnt.MSBuild.xml +36 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit-console-runner.dll +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit-console.exe +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/common/1.1/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit-console-runner.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit-console.exe +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/common/2.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.Console.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpCvsLib.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/ICSharpCode.SharpZipLib.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/common/neutral/NUnitCore.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/mono/1.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/mono/2.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit-console-runner.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit-console.exe +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/net/1.1/nunit.util.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/NDoc.Core.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/NDoc.Documenter.Msdn.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/NDoc.ExtendedUI.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/nunit.core.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/nunit.framework.dll +0 -0
- data/lib/lib/NAnt/lib/net/2.0/nunit.util.dll +0 -0
- data/lib/lib/NAnt/log4net.dll +0 -0
- data/lib/lib/NAnt/scvs.exe +0 -0
- data/lib/lib/NCover/ActiproEULA.html +287 -0
- data/lib/lib/NCover/ActiproSoftware.Shared.Net11.dll +0 -0
- data/lib/lib/NCover/ActiproSoftware.SyntaxEditor.Net11.dll +0 -0
- data/lib/lib/NCover/ActiproSoftware.WinUICore.Net11.dll +0 -0
- data/lib/lib/NCover/CommandBars.dll +0 -0
- data/lib/lib/NCover/ConsoleConfig.xsd +123 -0
- data/lib/lib/NCover/ConsoleExample.config +94 -0
- data/lib/lib/NCover/CoverLib.dll +0 -0
- data/lib/lib/NCover/Coverage.xsl +339 -0
- data/lib/lib/NCover/CoverageReport.xsl +468 -0
- data/lib/lib/NCover/ICSharpCode.TextEditor.dll +0 -0
- data/lib/lib/NCover/LicencePersonal.rtf +334 -0
- data/lib/lib/NCover/MSVCP80.dll +0 -0
- data/lib/lib/NCover/MSVCR80.dll +0 -0
- data/lib/lib/NCover/Microsoft.VC80.CRT.manifest +8 -0
- data/lib/lib/NCover/NCover.Console.exe +0 -0
- data/lib/lib/NCover/NCover.Console.exe.config +6 -0
- data/lib/lib/NCover/NCover.Framework.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.Console.exe +0 -0
- data/lib/lib/NCover/NCoverExplorer.Core.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.NCoverRunner.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.WinForms.dll +0 -0
- data/lib/lib/NCover/NCoverExplorer.exe +0 -0
- data/lib/lib/NCover/NCoverExplorer.exe.config +8 -0
- data/lib/lib/NCover/NCoverExplorerFAQ.html +303 -0
- data/lib/lib/NCover/NCoverExplorerReleaseNotes.html +874 -0
- data/lib/lib/NCover/NCoverFAQ.html +429 -0
- data/lib/lib/NCover/VC80CRT.MAN +15 -0
- data/lib/lib/NCover/license.txt +299 -0
- data/lib/lib/NUnit/NUnitTests.config +84 -0
- data/lib/lib/NUnit/NUnitTests.nunit +14 -0
- data/lib/lib/NUnit/agent.conf +4 -0
- data/lib/lib/NUnit/agent.log.conf +18 -0
- data/lib/lib/NUnit/framework/nunit.framework.dll +0 -0
- data/lib/lib/NUnit/framework/nunit.framework.xml +10113 -0
- data/lib/lib/NUnit/framework/nunit.mocks.dll +0 -0
- data/lib/lib/NUnit/framework/pnunit.framework.dll +0 -0
- data/lib/lib/NUnit/launcher.log.conf +18 -0
- data/lib/lib/NUnit/lib/Failure.png +0 -0
- data/lib/lib/NUnit/lib/Ignored.png +0 -0
- data/lib/lib/NUnit/lib/Inconclusive.png +0 -0
- data/lib/lib/NUnit/lib/Skipped.png +0 -0
- data/lib/lib/NUnit/lib/Success.png +0 -0
- data/lib/lib/NUnit/lib/fit.dll +0 -0
- data/lib/lib/NUnit/lib/log4net.dll +0 -0
- data/lib/lib/NUnit/lib/nunit-console-runner.dll +0 -0
- data/lib/lib/NUnit/lib/nunit-gui-runner.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.core.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.core.interfaces.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.fixtures.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.uiexception.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.uikit.dll +0 -0
- data/lib/lib/NUnit/lib/nunit.util.dll +0 -0
- data/lib/lib/NUnit/nunit-agent-x86.exe +0 -0
- data/lib/lib/NUnit/nunit-agent-x86.exe.config +76 -0
- data/lib/lib/NUnit/nunit-agent.exe +0 -0
- data/lib/lib/NUnit/nunit-agent.exe.config +76 -0
- data/lib/lib/NUnit/nunit-console-x86.exe +0 -0
- data/lib/lib/NUnit/nunit-console-x86.exe.config +76 -0
- data/lib/lib/NUnit/nunit-console.exe +0 -0
- data/lib/lib/NUnit/nunit-console.exe.config +76 -0
- data/lib/lib/NUnit/nunit-x86.exe +0 -0
- data/lib/lib/NUnit/nunit-x86.exe.config +91 -0
- data/lib/lib/NUnit/nunit.exe +0 -0
- data/lib/lib/NUnit/nunit.exe.config +91 -0
- data/lib/lib/NUnit/nunit.framework.dll +0 -0
- data/lib/lib/NUnit/pnunit-agent.exe +0 -0
- data/lib/lib/NUnit/pnunit-agent.exe.config +77 -0
- data/lib/lib/NUnit/pnunit-launcher.exe +0 -0
- data/lib/lib/NUnit/pnunit-launcher.exe.config +77 -0
- data/lib/lib/NUnit/pnunit.framework.dll +0 -0
- data/lib/lib/NUnit/pnunit.tests.dll +0 -0
- data/lib/lib/NUnit/runpnunit.bat +2 -0
- data/lib/lib/NUnit/test.conf +24 -0
- data/lib/lib/NUnit/tests/loadtest-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/mock-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/nonamespace-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/nunit-console.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit-gui.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.core.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.fixtures.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.framework.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.framework.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.mocks.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.uiexception.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.uikit.tests.dll +0 -0
- data/lib/lib/NUnit/tests/nunit.util.tests.dll +0 -0
- data/lib/lib/NUnit/tests/test-assembly.dll +0 -0
- data/lib/lib/NUnit/tests/test-utilities.dll +0 -0
- data/lib/lib/NUnit/tests/timing-tests.dll +0 -0
- data/lib/open.bat +10 -0
- data/lib/settings/LOCAL.settings +29 -0
- data/lib/settings/SettingsFileReadMe.txt +2 -0
- data/lib/settings/UppercuT.config +73 -0
- data/lib/test.bat +38 -0
- data/lib/zip.bat +23 -0
- metadata +328 -0
@@ -0,0 +1,468 @@
|
|
1
|
+
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
|
2
|
+
<!-- Created for NCoverExplorer by Grant Drake (see http://www.kiwidude.com/blog/) -->
|
3
|
+
<xsl:output method="html" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"/>
|
4
|
+
|
5
|
+
<xsl:template match="/">
|
6
|
+
<html>
|
7
|
+
<head>
|
8
|
+
<xsl:comment>Generated by NCoverExplorer (see http://www.kiwidude.com/blog/)</xsl:comment>
|
9
|
+
<title>NCoverExplorer - Merged Report</title>
|
10
|
+
<style>
|
11
|
+
body { font: small verdana, arial, helvetica; color:#000000; }
|
12
|
+
.coverageReportTable { font-size: 9px; }
|
13
|
+
.reportHeader { padding: 5px 8px 5px 8px; font-size: 12px; border: 1px solid; margin: 0px; }
|
14
|
+
.titleText { font-weight: bold; font-size: 12px; white-space: nowrap; padding: 0px; margin: 1px; }
|
15
|
+
.subtitleText { font-size: 9px; font-weight: normal; padding: 0px; margin: 1px; white-space: nowrap; }
|
16
|
+
.projectStatistics { font-size: 10px; border-left: #649cc0 1px solid; white-space: nowrap; width: 40%; }
|
17
|
+
.heading { font-weight: bold; }
|
18
|
+
.mainTableHeaderLeft { border: #dcdcdc 1px solid; font-weight: bold; padding-left: 5px; }
|
19
|
+
.mainTableHeader { border-bottom: 1px solid; border-top: 1px solid; border-right: 1px solid; text-align: center; }
|
20
|
+
.mainTableGraphHeader { border-bottom: 1px solid; border-top: 1px solid; border-right: 1px solid; text-align: left; font-weight: bold; }
|
21
|
+
.mainTableCellItem { background: #ffffff; border-left: #dcdcdc 1px solid; border-right: #dcdcdc 1px solid; padding-left: 10px; padding-right: 10px; font-weight: bold; font-size: 10px; }
|
22
|
+
.mainTableCellData { background: #ffffff; border-right: #dcdcdc 1px solid; text-align: center; white-space: nowrap; }
|
23
|
+
.mainTableCellPercent { background: #ffffff; font-weight: bold; white-space: nowrap; text-align: right; padding-left: 10px; }
|
24
|
+
.mainTableCellGraph { background: #ffffff; border-right: #dcdcdc 1px solid; padding-right: 5px; }
|
25
|
+
.mainTableCellBottom { border-bottom: #dcdcdc 1px solid; }
|
26
|
+
.childTableHeader { border-top: 1px solid; border-bottom: 1px solid; border-left: 1px solid; border-right: 1px solid; font-weight: bold; padding-left: 10px; }
|
27
|
+
.childTableCellIndentedItem { background: #ffffff; border-left: #dcdcdc 1px solid; border-right: #dcdcdc 1px solid; padding-right: 10px; font-size: 10px; }
|
28
|
+
.exclusionTableCellItem { background: #ffffff; border-left: #dcdcdc 1px solid; border-right: #dcdcdc 1px solid; padding-left: 10px; padding-right: 10px; }
|
29
|
+
.projectTable { background: #a9d9f7; border-color: #649cc0; }
|
30
|
+
.primaryTable { background: #d7eefd; border-color: #a4dafc; }
|
31
|
+
.secondaryTable { background: #f9e9b7; border-color: #f6d376; }
|
32
|
+
.secondaryChildTable { background: #fff6df; border-color: #f5e1b1; }
|
33
|
+
.exclusionTable { background: #fadada; border-color: #f37f7f; }
|
34
|
+
.graphBarNotVisited { font-size: 2px; border:#9c9c9c 1px solid; background:#df0000; }
|
35
|
+
.graphBarSatisfactory { font-size: 2px; border:#9c9c9c 1px solid; background:#f4f24e; }
|
36
|
+
.graphBarVisited { background: #00df00; font-size: 2px; border-left:#9c9c9c 1px solid; border-top:#9c9c9c 1px solid; border-bottom:#9c9c9c 1px solid; }
|
37
|
+
.graphBarVisitedFully { background: #00df00; font-size: 2px; border:#9c9c9c 1px solid; }
|
38
|
+
</style>
|
39
|
+
</head>
|
40
|
+
<body>
|
41
|
+
<table class="coverageReportTable" cellpadding="2" cellspacing="0">
|
42
|
+
<tbody>
|
43
|
+
<xsl:apply-templates select="//coverageReport" />
|
44
|
+
</tbody>
|
45
|
+
</table>
|
46
|
+
</body>
|
47
|
+
</html>
|
48
|
+
</xsl:template>
|
49
|
+
|
50
|
+
<!-- Main Project Section -->
|
51
|
+
<xsl:template match="//coverageReport">
|
52
|
+
<xsl:variable name="reportType" select="./@reportTitle" />
|
53
|
+
<xsl:variable name="threshold">
|
54
|
+
<xsl:choose>
|
55
|
+
<xsl:when test="$reportType = 'Module Class Function Summary'"><xsl:value-of select="./project/@acceptableFunction" /></xsl:when>
|
56
|
+
<xsl:otherwise><xsl:value-of select="./project/@acceptable" /></xsl:otherwise>
|
57
|
+
</xsl:choose>
|
58
|
+
</xsl:variable>
|
59
|
+
<xsl:variable name="unvisitedTitle">
|
60
|
+
<xsl:choose>
|
61
|
+
<xsl:when test="$reportType = 'Module Class Function Summary'">Unvisited Functions</xsl:when>
|
62
|
+
<xsl:otherwise>Unvisited SeqPts</xsl:otherwise>
|
63
|
+
</xsl:choose>
|
64
|
+
</xsl:variable>
|
65
|
+
<xsl:variable name="coverageTitle">
|
66
|
+
<xsl:choose>
|
67
|
+
<xsl:when test="$reportType = 'Module Class Function Summary'">Function Coverage</xsl:when>
|
68
|
+
<xsl:otherwise>Coverage</xsl:otherwise>
|
69
|
+
</xsl:choose>
|
70
|
+
</xsl:variable>
|
71
|
+
|
72
|
+
<xsl:call-template name="header" />
|
73
|
+
|
74
|
+
<xsl:call-template name="projectSummary">
|
75
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
76
|
+
<xsl:with-param name="unvisitedTitle" select="$unvisitedTitle" />
|
77
|
+
<xsl:with-param name="coverageTitle" select="$coverageTitle" />
|
78
|
+
<xsl:with-param name="reportType" select="$reportType" />
|
79
|
+
</xsl:call-template>
|
80
|
+
|
81
|
+
<xsl:call-template name="moduleSummary">
|
82
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
83
|
+
<xsl:with-param name="unvisitedTitle" select="$unvisitedTitle" />
|
84
|
+
<xsl:with-param name="coverageTitle" select="$coverageTitle" />
|
85
|
+
</xsl:call-template>
|
86
|
+
|
87
|
+
<xsl:if test="$reportType = 'Module Namespace Summary'">
|
88
|
+
<xsl:call-template name="moduleNamespaceSummary">
|
89
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
90
|
+
</xsl:call-template>
|
91
|
+
</xsl:if>
|
92
|
+
|
93
|
+
<xsl:if test="($reportType = 'Module Class Summary') or ($reportType = 'Module Class Function Summary')">
|
94
|
+
<xsl:call-template name="classModuleSummary">
|
95
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
96
|
+
<xsl:with-param name="unvisitedTitle" select="$unvisitedTitle" />
|
97
|
+
<xsl:with-param name="coverageTitle" select="$coverageTitle" />
|
98
|
+
</xsl:call-template>
|
99
|
+
</xsl:if>
|
100
|
+
|
101
|
+
<xsl:if test="count(./exclusions/exclusion) != 0">
|
102
|
+
<xsl:call-template name="exclusionsSummary" />
|
103
|
+
</xsl:if>
|
104
|
+
|
105
|
+
<xsl:call-template name="footer" />
|
106
|
+
</xsl:template>
|
107
|
+
|
108
|
+
|
109
|
+
<!-- Report Header -->
|
110
|
+
<xsl:template name="header">
|
111
|
+
<tr>
|
112
|
+
<td class="projectTable reportHeader" colspan="5">
|
113
|
+
<table width="100%">
|
114
|
+
<tbody>
|
115
|
+
<tr>
|
116
|
+
<td valign="top">
|
117
|
+
<h1 class="titleText">NCoverExplorer Coverage Report - <xsl:value-of select="./project/@name" />  </h1>
|
118
|
+
<table cellpadding="1" class="subtitleText">
|
119
|
+
<tbody>
|
120
|
+
<tr>
|
121
|
+
<td class="heading">Report generated on:</td>
|
122
|
+
<td><xsl:value-of select="./@date" /> at <xsl:value-of select="./@time" /></td>
|
123
|
+
</tr>
|
124
|
+
<tr>
|
125
|
+
<td class="heading">NCoverExplorer version:</td>
|
126
|
+
<td><xsl:value-of select="./@version" /></td>
|
127
|
+
</tr>
|
128
|
+
<tr>
|
129
|
+
<td class="heading">Filtering / Sorting:</td>
|
130
|
+
<td><xsl:value-of select="./project/@filteredBy" /> / <xsl:value-of select="./project/@sortedBy" /></td>
|
131
|
+
</tr>
|
132
|
+
</tbody>
|
133
|
+
</table>
|
134
|
+
</td>
|
135
|
+
<td class="projectStatistics" align="right" valign="top">
|
136
|
+
<table cellpadding="1">
|
137
|
+
<tbody>
|
138
|
+
<tr>
|
139
|
+
<td rowspan="4" valign="top" nowrap="true" class="heading">Project Statistics:</td>
|
140
|
+
<td align="right" class="heading">Files:</td>
|
141
|
+
<td align="right"><xsl:value-of select="./project/@files" /></td>
|
142
|
+
<td rowspan="4"> </td>
|
143
|
+
<td align="right" class="heading">NCLOC:</td>
|
144
|
+
<td align="right"><xsl:value-of select="./project/@nonCommentLines" /></td>
|
145
|
+
</tr>
|
146
|
+
<tr>
|
147
|
+
<td align="right" class="heading">Classes:</td>
|
148
|
+
<td align="right"><xsl:value-of select="./project/@classes" /></td>
|
149
|
+
<td align="right" class="heading"> </td>
|
150
|
+
<td align="right"> </td>
|
151
|
+
</tr>
|
152
|
+
<tr>
|
153
|
+
<td align="right" class="heading">Functions:</td>
|
154
|
+
<td align="right"><xsl:value-of select="./project/@members" /></td>
|
155
|
+
<td align="right" class="heading">Unvisited:</td>
|
156
|
+
<td align="right"><xsl:value-of select="./project/@unvisitedFunctions" /></td>
|
157
|
+
</tr>
|
158
|
+
<tr>
|
159
|
+
<td align="right" class="heading">Seq Pts:</td>
|
160
|
+
<td align="right"><xsl:value-of select="./project/@sequencePoints" /></td>
|
161
|
+
<td align="right" class="heading">Unvisited:</td>
|
162
|
+
<td align="right"><xsl:value-of select="./project/@unvisitedPoints" /></td>
|
163
|
+
</tr>
|
164
|
+
</tbody>
|
165
|
+
</table>
|
166
|
+
</td>
|
167
|
+
</tr>
|
168
|
+
</tbody>
|
169
|
+
</table>
|
170
|
+
</td>
|
171
|
+
</tr>
|
172
|
+
</xsl:template>
|
173
|
+
|
174
|
+
<!-- Project Summary -->
|
175
|
+
<xsl:template name="projectSummary">
|
176
|
+
<xsl:param name="threshold" />
|
177
|
+
<xsl:param name="unvisitedTitle" />
|
178
|
+
<xsl:param name="coverageTitle" />
|
179
|
+
<xsl:param name="reportType" />
|
180
|
+
<tr>
|
181
|
+
<td colspan="5"> </td>
|
182
|
+
</tr>
|
183
|
+
<tr>
|
184
|
+
<td class="projectTable mainTableHeaderLeft">Project</td>
|
185
|
+
<td class="projectTable mainTableHeader">Acceptable</td>
|
186
|
+
<td class="projectTable mainTableHeader"><xsl:value-of select="$unvisitedTitle" /></td>
|
187
|
+
<td class="projectTable mainTableGraphHeader" colspan="2"><xsl:value-of select="$coverageTitle" /></td>
|
188
|
+
</tr>
|
189
|
+
<xsl:call-template name="coverageDetail">
|
190
|
+
<xsl:with-param name="name">
|
191
|
+
<xsl:choose>
|
192
|
+
<xsl:when test="string-length(./project/@name) > 0"><xsl:value-of select="./project/@name" /></xsl:when>
|
193
|
+
<xsl:otherwise> </xsl:otherwise>
|
194
|
+
</xsl:choose>
|
195
|
+
</xsl:with-param>
|
196
|
+
<xsl:with-param name="unvisitedPoints">
|
197
|
+
<xsl:choose>
|
198
|
+
<xsl:when test="$reportType = 'Module Class Function Summary'"><xsl:value-of select="./project/@unvisitedFunctions" /></xsl:when>
|
199
|
+
<xsl:otherwise><xsl:value-of select="./project/@unvisitedPoints" /></xsl:otherwise>
|
200
|
+
</xsl:choose>
|
201
|
+
</xsl:with-param>
|
202
|
+
<xsl:with-param name="sequencePoints">
|
203
|
+
<xsl:choose>
|
204
|
+
<xsl:when test="$reportType = 'Module Class Function Summary'"><xsl:value-of select="./project/@members" /></xsl:when>
|
205
|
+
<xsl:otherwise><xsl:value-of select="./project/@sequencePoints" /></xsl:otherwise>
|
206
|
+
</xsl:choose>
|
207
|
+
</xsl:with-param>
|
208
|
+
<xsl:with-param name="coverage">
|
209
|
+
<xsl:choose>
|
210
|
+
<xsl:when test="$reportType = 'Module Class Function Summary'"><xsl:value-of select="./project/@functionCoverage" /></xsl:when>
|
211
|
+
<xsl:otherwise><xsl:value-of select="./project/@coverage" /></xsl:otherwise>
|
212
|
+
</xsl:choose>
|
213
|
+
</xsl:with-param>
|
214
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
215
|
+
<xsl:with-param name="showThreshold">True</xsl:with-param>
|
216
|
+
</xsl:call-template>
|
217
|
+
</xsl:template>
|
218
|
+
|
219
|
+
<!-- Modules Summary -->
|
220
|
+
<xsl:template name="moduleSummary">
|
221
|
+
<xsl:param name="threshold" />
|
222
|
+
<xsl:param name="unvisitedTitle" />
|
223
|
+
<xsl:param name="coverageTitle" />
|
224
|
+
<tr>
|
225
|
+
<td colspan="5"> </td>
|
226
|
+
</tr>
|
227
|
+
<tr>
|
228
|
+
<td class="primaryTable mainTableHeaderLeft">Modules</td>
|
229
|
+
<td class="primaryTable mainTableHeader">Acceptable</td>
|
230
|
+
<td class="primaryTable mainTableHeader"><xsl:value-of select="$unvisitedTitle" /></td>
|
231
|
+
<td class="primaryTable mainTableGraphHeader" colspan="2"><xsl:value-of select="$coverageTitle" /></td>
|
232
|
+
</tr>
|
233
|
+
<xsl:for-each select="./modules/module">
|
234
|
+
<xsl:call-template name="coverageDetail">
|
235
|
+
<xsl:with-param name="name" select="./@name" />
|
236
|
+
<xsl:with-param name="unvisitedPoints" select="./@unvisitedPoints" />
|
237
|
+
<xsl:with-param name="sequencePoints" select="./@sequencePoints" />
|
238
|
+
<xsl:with-param name="coverage" select="./@coverage" />
|
239
|
+
<xsl:with-param name="threshold" select="./@acceptable" />
|
240
|
+
<xsl:with-param name="showThreshold">True</xsl:with-param>
|
241
|
+
</xsl:call-template>
|
242
|
+
</xsl:for-each>
|
243
|
+
</xsl:template>
|
244
|
+
|
245
|
+
<!-- Namespaces per Module Summary -->
|
246
|
+
<xsl:template name="moduleNamespaceSummary">
|
247
|
+
<xsl:param name="threshold" />
|
248
|
+
<xsl:for-each select="./modules/module">
|
249
|
+
<tr>
|
250
|
+
<td colspan="5"> </td>
|
251
|
+
</tr>
|
252
|
+
<tr>
|
253
|
+
<td class="secondaryTable mainTableHeaderLeft">Module</td>
|
254
|
+
<td class="secondaryTable mainTableHeader">Acceptable</td>
|
255
|
+
<td class="secondaryTable mainTableHeader">Unvisited SeqPts</td>
|
256
|
+
<td class="secondaryTable mainTableGraphHeader" colspan="2">Coverage</td>
|
257
|
+
</tr>
|
258
|
+
<xsl:call-template name="coverageDetailSecondary">
|
259
|
+
<xsl:with-param name="name" select="./@name" />
|
260
|
+
<xsl:with-param name="unvisitedPoints" select="./@unvisitedPoints" />
|
261
|
+
<xsl:with-param name="sequencePoints" select="./@sequencePoints" />
|
262
|
+
<xsl:with-param name="coverage" select="./@coverage" />
|
263
|
+
<xsl:with-param name="threshold" select="./@acceptable" />
|
264
|
+
</xsl:call-template>
|
265
|
+
<tr>
|
266
|
+
<td class="secondaryChildTable childTableHeader" colspan="5">Namespaces</td>
|
267
|
+
</tr>
|
268
|
+
<xsl:for-each select="./namespace">
|
269
|
+
<xsl:call-template name="coverageIndentedDetail">
|
270
|
+
<xsl:with-param name="name" select="./@name" />
|
271
|
+
<xsl:with-param name="unvisitedPoints" select="./@unvisitedPoints" />
|
272
|
+
<xsl:with-param name="sequencePoints" select="./@sequencePoints" />
|
273
|
+
<xsl:with-param name="coverage" select="./@coverage" />
|
274
|
+
<xsl:with-param name="threshold" select="./../@acceptable" />
|
275
|
+
</xsl:call-template>
|
276
|
+
</xsl:for-each>
|
277
|
+
</xsl:for-each>
|
278
|
+
</xsl:template>
|
279
|
+
|
280
|
+
<!-- Classes per Namespace per Module Summary -->
|
281
|
+
<xsl:template name="classModuleSummary">
|
282
|
+
<xsl:param name="threshold" />
|
283
|
+
<xsl:param name="unvisitedTitle" />
|
284
|
+
<xsl:param name="coverageTitle" />
|
285
|
+
<xsl:for-each select="./modules/module">
|
286
|
+
<tr>
|
287
|
+
<td colspan="5"> </td>
|
288
|
+
</tr>
|
289
|
+
<tr>
|
290
|
+
<td class="secondaryTable mainTableHeaderLeft">Module</td>
|
291
|
+
<td class="secondaryTable mainTableHeader">Acceptable</td>
|
292
|
+
<td class="secondaryTable mainTableHeader"><xsl:value-of select="$unvisitedTitle" /></td>
|
293
|
+
<td class="secondaryTable mainTableGraphHeader" colspan="2"><xsl:value-of select="$coverageTitle" /></td>
|
294
|
+
</tr>
|
295
|
+
<xsl:call-template name="coverageDetailSecondary">
|
296
|
+
<xsl:with-param name="name" select="./@name" />
|
297
|
+
<xsl:with-param name="unvisitedPoints" select="./@unvisitedPoints" />
|
298
|
+
<xsl:with-param name="sequencePoints" select="./@sequencePoints" />
|
299
|
+
<xsl:with-param name="coverage" select="./@coverage" />
|
300
|
+
<xsl:with-param name="threshold" select="./@acceptable" />
|
301
|
+
</xsl:call-template>
|
302
|
+
<tr>
|
303
|
+
<td class="secondaryChildTable childTableHeader" colspan="5">Namespace / Classes</td>
|
304
|
+
</tr>
|
305
|
+
<xsl:for-each select="./namespace">
|
306
|
+
<xsl:call-template name="coverageIndentedDetail">
|
307
|
+
<xsl:with-param name="name" select="./@name" />
|
308
|
+
<xsl:with-param name="unvisitedPoints" select="./@unvisitedPoints" />
|
309
|
+
<xsl:with-param name="sequencePoints" select="./@sequencePoints" />
|
310
|
+
<xsl:with-param name="coverage" select="./@coverage" />
|
311
|
+
<xsl:with-param name="threshold" select="../@acceptable" />
|
312
|
+
<xsl:with-param name="styleTweak">padding-left:20px;font-weight:bold</xsl:with-param>
|
313
|
+
</xsl:call-template>
|
314
|
+
<xsl:for-each select="./class">
|
315
|
+
<xsl:call-template name="coverageIndentedDetail">
|
316
|
+
<xsl:with-param name="name" select="./@name" />
|
317
|
+
<xsl:with-param name="unvisitedPoints" select="./@unvisitedPoints" />
|
318
|
+
<xsl:with-param name="sequencePoints" select="./@sequencePoints" />
|
319
|
+
<xsl:with-param name="coverage" select="./@coverage" />
|
320
|
+
<xsl:with-param name="threshold" select="../../@acceptable" />
|
321
|
+
<xsl:with-param name="styleTweak">padding-left:30px</xsl:with-param>
|
322
|
+
<xsl:with-param name="scale">160</xsl:with-param>
|
323
|
+
</xsl:call-template>
|
324
|
+
</xsl:for-each>
|
325
|
+
</xsl:for-each>
|
326
|
+
</xsl:for-each>
|
327
|
+
</xsl:template>
|
328
|
+
|
329
|
+
<!-- Coverage detail row in main grid displaying a name, statistics and graph bar -->
|
330
|
+
<xsl:template name="coverageDetail">
|
331
|
+
<xsl:param name="name" />
|
332
|
+
<xsl:param name="unvisitedPoints" />
|
333
|
+
<xsl:param name="sequencePoints" />
|
334
|
+
<xsl:param name="coverage" />
|
335
|
+
<xsl:param name="threshold" />
|
336
|
+
<xsl:param name="showThreshold" />
|
337
|
+
<tr>
|
338
|
+
<xsl:choose>
|
339
|
+
<xsl:when test="$showThreshold='True'">
|
340
|
+
<td class="mainTableCellBottom mainTableCellItem"><xsl:value-of select="$name" /></td>
|
341
|
+
<td class="mainTableCellBottom mainTableCellData"><xsl:value-of select="concat(format-number($threshold,'#0.0'), ' %')" /></td>
|
342
|
+
</xsl:when>
|
343
|
+
<xsl:otherwise>
|
344
|
+
<td class="mainTableCellBottom mainTableCellItem" colspan="2"><xsl:value-of select="$name" /></td>
|
345
|
+
</xsl:otherwise>
|
346
|
+
</xsl:choose>
|
347
|
+
<td class="mainTableCellBottom mainTableCellData"><xsl:value-of select="$unvisitedPoints" /></td>
|
348
|
+
<td class="mainTableCellBottom mainTableCellPercent"><xsl:value-of select="concat(format-number($coverage,'#0.0'), ' %')" /></td>
|
349
|
+
<td class="mainTableCellBottom mainTableCellGraph">
|
350
|
+
<xsl:call-template name="detailPercent">
|
351
|
+
<xsl:with-param name="notVisited" select="$unvisitedPoints" />
|
352
|
+
<xsl:with-param name="total" select="$sequencePoints" />
|
353
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
354
|
+
<xsl:with-param name="scale" select="200" />
|
355
|
+
</xsl:call-template>
|
356
|
+
</td>
|
357
|
+
</tr>
|
358
|
+
</xsl:template>
|
359
|
+
|
360
|
+
<!-- Coverage detail row in secondary grid header displaying a name, statistics and graph bar -->
|
361
|
+
<xsl:template name="coverageDetailSecondary">
|
362
|
+
<xsl:param name="name" />
|
363
|
+
<xsl:param name="unvisitedPoints" />
|
364
|
+
<xsl:param name="sequencePoints" />
|
365
|
+
<xsl:param name="coverage" />
|
366
|
+
<xsl:param name="threshold" />
|
367
|
+
<tr>
|
368
|
+
<td class="mainTableCellItem"><xsl:value-of select="$name" /></td>
|
369
|
+
<td class="mainTableCellData"><xsl:value-of select="concat(format-number($threshold,'#0.0'), ' %')" /></td>
|
370
|
+
<td class="mainTableCellData"><xsl:value-of select="$unvisitedPoints" /></td>
|
371
|
+
<td class="mainTableCellPercent"><xsl:value-of select="concat(format-number($coverage,'#0.0'), ' %')" /></td>
|
372
|
+
<td class="mainTableCellGraph">
|
373
|
+
<xsl:call-template name="detailPercent">
|
374
|
+
<xsl:with-param name="notVisited" select="$unvisitedPoints" />
|
375
|
+
<xsl:with-param name="total" select="$sequencePoints" />
|
376
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
377
|
+
<xsl:with-param name="scale" select="200" />
|
378
|
+
</xsl:call-template>
|
379
|
+
</td>
|
380
|
+
</tr>
|
381
|
+
</xsl:template>
|
382
|
+
|
383
|
+
<!-- Coverage detail row with indented item name and shrunk graph bar -->
|
384
|
+
<xsl:template name="coverageIndentedDetail">
|
385
|
+
<xsl:param name="name" />
|
386
|
+
<xsl:param name="unvisitedPoints" />
|
387
|
+
<xsl:param name="sequencePoints" />
|
388
|
+
<xsl:param name="coverage" />
|
389
|
+
<xsl:param name="threshold" />
|
390
|
+
<xsl:param name="styleTweak">padding-left:20px</xsl:param>
|
391
|
+
<xsl:param name="scale">180</xsl:param>
|
392
|
+
<tr>
|
393
|
+
<td class="mainTableCellBottom childTableCellIndentedItem" colspan="2"><xsl:attribute name="style"><xsl:value-of select="$styleTweak"/></xsl:attribute><xsl:value-of select="$name" /></td>
|
394
|
+
<td class="mainTableCellBottom mainTableCellData"><xsl:value-of select="$unvisitedPoints" /></td>
|
395
|
+
<td class="mainTableCellBottom mainTableCellPercent"><xsl:value-of select="concat(format-number($coverage,'#0.0'), ' %')" /></td>
|
396
|
+
<td class="mainTableCellBottom mainTableCellGraph">
|
397
|
+
<xsl:call-template name="detailPercent">
|
398
|
+
<xsl:with-param name="notVisited" select="$unvisitedPoints" />
|
399
|
+
<xsl:with-param name="total" select="$sequencePoints" />
|
400
|
+
<xsl:with-param name="threshold" select="$threshold" />
|
401
|
+
<xsl:with-param name="scale" select="$scale" />
|
402
|
+
</xsl:call-template>
|
403
|
+
</td>
|
404
|
+
</tr>
|
405
|
+
</xsl:template>
|
406
|
+
|
407
|
+
<!-- Exclusions Summary -->
|
408
|
+
<xsl:template name="exclusionsSummary">
|
409
|
+
<tr>
|
410
|
+
<td colspan="5"> </td>
|
411
|
+
</tr>
|
412
|
+
<tr>
|
413
|
+
<td class="exclusionTable mainTableHeaderLeft" colspan="3">Excluded From Coverage Results</td>
|
414
|
+
<td class="exclusionTable mainTableGraphHeader" colspan="2">All Code Within</td>
|
415
|
+
</tr>
|
416
|
+
<xsl:for-each select="./exclusions/exclusion">
|
417
|
+
<tr>
|
418
|
+
<td class="mainTableCellBottom exclusionTableCellItem" colspan="3"><xsl:value-of select="@name" /></td>
|
419
|
+
<td class="mainTableCellBottom mainTableCellGraph" colspan="2"><xsl:value-of select="@category" /></td>
|
420
|
+
</tr>
|
421
|
+
</xsl:for-each>
|
422
|
+
</xsl:template>
|
423
|
+
|
424
|
+
<!-- Footer -->
|
425
|
+
<xsl:template name="footer">
|
426
|
+
<tr>
|
427
|
+
<td colspan="5"> </td>
|
428
|
+
</tr>
|
429
|
+
</xsl:template>
|
430
|
+
|
431
|
+
<!-- Draw % Green/Red/Yellow Bar -->
|
432
|
+
<xsl:template name="detailPercent">
|
433
|
+
<xsl:param name="notVisited" />
|
434
|
+
<xsl:param name="total" />
|
435
|
+
<xsl:param name="threshold" />
|
436
|
+
<xsl:param name="scale" />
|
437
|
+
<xsl:variable name="visited" select="$total - $notVisited" />
|
438
|
+
<xsl:variable name="coverage" select="$visited div $total * 100"/>
|
439
|
+
<table cellpadding="0" cellspacing="0">
|
440
|
+
<tbody>
|
441
|
+
<tr>
|
442
|
+
<xsl:if test="$notVisited = 0">
|
443
|
+
<td class="graphBarVisitedFully" height="14">
|
444
|
+
<xsl:attribute name="width">
|
445
|
+
<xsl:value-of select="$scale" />
|
446
|
+
</xsl:attribute>.</td>
|
447
|
+
</xsl:if>
|
448
|
+
<xsl:if test="($visited != 0) and ($notVisited != 0)">
|
449
|
+
<td class="graphBarVisited" height="14">
|
450
|
+
<xsl:attribute name="width">
|
451
|
+
<xsl:value-of select="format-number($coverage div 100 * $scale, '0') - 1" />
|
452
|
+
</xsl:attribute>.</td>
|
453
|
+
</xsl:if>
|
454
|
+
<xsl:if test="$notVisited != 0">
|
455
|
+
<td height="14">
|
456
|
+
<xsl:attribute name="class">
|
457
|
+
<xsl:if test="$coverage >= $threshold">graphBarSatisfactory</xsl:if>
|
458
|
+
<xsl:if test="$coverage < $threshold">graphBarNotVisited</xsl:if>
|
459
|
+
</xsl:attribute>
|
460
|
+
<xsl:attribute name="width">
|
461
|
+
<xsl:value-of select="format-number($notVisited div $total * $scale, '0')" />
|
462
|
+
</xsl:attribute>.</td>
|
463
|
+
</xsl:if>
|
464
|
+
</tr>
|
465
|
+
</tbody>
|
466
|
+
</table>
|
467
|
+
</xsl:template>
|
468
|
+
</xsl:stylesheet>
|