xref: /reactos/sdk/tools/rgenstat/web/rapistatus.xsl (revision c2c66aff)
1<?xml version="1.0" ?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
4	<xsl:output method="html" indent="no"/>
5	<!--	<xsl:output method="xml"/>-->
6<!-- Will not work:	<xsl:strip-space elements="*"/> -->
7
8	<xsl:template match="/">
9		<HTML>
10			<HEAD>
11				<TITLE>
12					ReactOS API Status
13				</TITLE>
14				<SCRIPT src="rapistatus.js"></SCRIPT>
15				<LINK rel="stylesheet" type="text/css" href="rapistatus.css"></LINK>
16			</HEAD>
17			<BODY onLoad="onLoad();">
18				<P>
19					<H1>ReactOS API Status</H1>
20				</P>
21				<P>
22					<TABLE>
23						<TR>
24							<TD> <INPUT type="checkbox" ID="implemented" onClick="selectImplemented();" checked="1"/> </TD>
25							<TD> <IMG src="i.gif"/> </TD>
26							<TD> Implemented </TD>
27							<TD width="20"/>
28						</TR>
29						<TR>
30							<TD> <INPUT type="checkbox" ID="unimplemented" onClick="selectUnimplemented();" checked="1"/> </TD>
31							<TD> <IMG src="u.gif"/> </TD>
32							<TD> Unimplemented </TD>
33							<TD width="20"/>
34						</TR>
35					</TABLE>
36				</P>
37				<DIV ID="ROOT">
38					<xsl:apply-templates/>
39				</DIV>
40				<P>
41					Legend :<BR/>
42					<TABLE>
43						<TR>
44							<TD> <IMG src="c.gif"/> </TD>
45							<TD> Component </TD>
46							<TD> <IMG src="i.gif"/> </TD>
47							<TD> Implemented </TD>
48							<TD> <IMG src="sc.gif"/> </TD>
49							<TD> Complete </TD>
50						</TR>
51						<TR>
52							<TD> <IMG src="f.gif"/> </TD>
53							<TD> Function </TD>
54							<TD> <IMG src="u.gif"/> </TD>
55							<TD> Unimplemented </TD>
56							<TD></TD>
57							<TD></TD>
58						</TR>
59					</TABLE>
60
61				</P>
62			</BODY>
63		</HTML>
64	</xsl:template>
65
66
67	<!-- component -->
68	<xsl:template match="/components">
69		<xsl:apply-templates select="component">
70			<xsl:sort select="@name"/>
71		</xsl:apply-templates>
72	</xsl:template>
73
74	<xsl:template match="components/component[@implemented_total or @unimplemented_total]">
75		<DIV>
76			<xsl:call-template name="ELEMENT">
77				<xsl:with-param name="class">c</xsl:with-param>
78			</xsl:call-template>
79			<xsl:apply-templates>
80				<xsl:with-param name="base"><xsl:value-of select="@base"/></xsl:with-param>
81			</xsl:apply-templates>
82		</DIV>
83	</xsl:template>
84
85
86	<!-- function -->
87	<xsl:template match="functions">
88		<xsl:param name="base"/>
89		<xsl:apply-templates select="f">
90			<xsl:sort select="@n"/>
91			<xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
92		</xsl:apply-templates>
93	</xsl:template>
94
95	<xsl:template match="functions/f">
96		<xsl:param name="base"/>
97		<DIV>
98			<xsl:call-template name="ELEMENT">
99				<xsl:with-param name="class">f</xsl:with-param>
100				<xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
101			</xsl:call-template>
102			<xsl:apply-templates/>
103		</DIV>
104	</xsl:template>
105
106
107	<!-- support templates -->
108
109	<xsl:template name="ELEMENT">
110		<xsl:param name="class"/>
111		<xsl:param name="base"/>
112		<xsl:param name="image"/>
113			<xsl:attribute name="class">
114	  		<xsl:value-of select="$class"/>
115  			<xsl:text>_</xsl:text>
116			</xsl:attribute>
117			<xsl:call-template name="toggle"/>
118			<xsl:choose>
119				<xsl:when test="local-name() != 'component' and @i = 'true'">
120					<img src="i.gif" class="i"/>
121				</xsl:when>
122				<xsl:when test="local-name() != 'component' and @i = 'false'">
123					<img src="u.gif" class="u"/>
124				</xsl:when>
125				<xsl:when test="local-name() = 'component' and @complete >= 100">
126					<img src="sc.gif"/>
127				</xsl:when>
128				<xsl:otherwise>
129					<xsl:value-of select="@i"/><img src="tb.gif" with="12" height="12"/>
130				</xsl:otherwise>
131			</xsl:choose>
132			<xsl:choose>
133				<xsl:when test="$image">
134					<img src="{$image}.gif" class="t"/>
135				</xsl:when>
136				<xsl:otherwise>
137					<img src="{$class}.gif" class="t"/>
138				</xsl:otherwise>
139			</xsl:choose>
140			<xsl:call-template name="name"/>
141			<xsl:call-template name="n"/>
142 			<xsl:call-template name="file">
143				<xsl:with-param name="base"><xsl:value-of select="$base"/></xsl:with-param>
144			</xsl:call-template>
145			<xsl:call-template name="status"/>
146	</xsl:template>
147
148	<xsl:template name="status">
149		<xsl:if test="@complete and @complete != 0">
150			<SPAN class="st">
151				<img src="sc.gif"/>
152				<xsl:text>: </xsl:text>
153				<xsl:value-of select="@complete"/>
154				<xsl:text>%</xsl:text>
155			</SPAN>
156		</xsl:if>
157		<xsl:if test="@implemented_total">
158			<SPAN class="st">
159				<img src="i.gif"/>: <xsl:value-of select="@implemented_total"/>
160			</SPAN>
161		</xsl:if>
162		<xsl:if test="@unimplemented_total">
163			<SPAN class="st">
164				<img src="u.gif"/>: <xsl:value-of select="@unimplemented_total"/>
165			</SPAN>
166		</xsl:if>
167	</xsl:template>
168
169	<xsl:template name="toggle">
170		<xsl:choose>
171			<xsl:when test="local-name() = 'component'">
172				<IMG src="tp.gif" class="t"/>
173			</xsl:when>
174			<xsl:otherwise>
175   			<IMG src="tb.gif"/>
176			</xsl:otherwise>
177		</xsl:choose>
178	</xsl:template>
179
180	<xsl:template name="name">
181		<xsl:if test="@name">
182			<SPAN class="l"><xsl:value-of select="@name"/></SPAN>
183		</xsl:if>
184	</xsl:template>
185
186	<xsl:template name="n">
187		<xsl:if test="@n">
188			<SPAN class="l"><xsl:value-of select="@n"/></SPAN>
189		</xsl:if>
190	</xsl:template>
191
192	<xsl:template name="file">
193		<xsl:param name="base"/>
194		<xsl:if test="@f">
195			<SPAN class="h"><xsl:value-of select="$base"/><xsl:value-of select="@f"/></SPAN>
196		</xsl:if>
197	</xsl:template>
198
199</xsl:stylesheet>
200