1 <?xml-stylesheet type="text/xsl" href="#"?>
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:res="http://opensrf.org/-/namespaces/gateway/v1"
7 <xsl:template match="xsl:stylesheet">
10 <style type="text/css">
11 body { background-color:#F0F0F0; font: 9pt Verdana, Arial, "Arial Unicode MS", Helvetica, sans-serif;}
12 input.button { font:8pt Verdana, Arail, "Arial Unicode MS", Helvetica, sans-serif;}
14 div.DDB { position:absolute; top:20pt; left:15pt; visibility:visible; }
15 div.DLC { position:absolute; top:20pt; left:15pt; visibility:hidden; }
16 div.numFound { position:absolute; top:0px; left:0pt; font-weight:bold;}
18 table { background-color:lightgray; font-size:10pt; margin:10pt 0pt 15pt 0pt; width:90%; border-collapse: collapse; spacing:0; padding:0;}
19 td { background-color:#f0f0f0; border: solid lightgray 1px; }
20 td.fulltag { background-color:#f0f0f0;}
21 td.fullind { background-color:#f0f0f0; width:20pt;}
22 td.fullfield{ background-color:#f0f0f0; width:100%;}
24 table.signature { background-color:lightgray; font-size:10pt; margin:0; width:100%; border:none; padding:0;}
25 table.params { background-color:lightgray; font-size:10pt; margin:3px 0px 3px 0px; width:100%; border: solid black 1px; padding:0;}
26 td.params { background-color:lightgray; font-size:10pt; border: solid black 1px;}
28 h1 { text-decoration: underline; }
30 td.header { font-weight:bold; color:black; font-size:14pt; border-bottom: solid gray 2px}
31 td.label { vertical-align:top; padding-left:10pt; width:120pt; font-weight:normal; color:darkblue;}
32 td.value { vertical-align:top; text-align:left; font-weight: bold;}
33 span.subcode { color:darkblue;} </style>
39 <!--#if expr='$QUERY_STRING = /limit=([^&]+)/' -->
40 <!--#set var="limit" value="$1" -->
42 <!--#set var="limit" value="25" -->
45 <!--#if expr='$QUERY_STRING = /offset=([^&]+)/' -->
46 <!--#set var="offset" value="$1" -->
48 <!--#set var="offset" value="0" -->
51 <!--#if expr='$QUERY_STRING = /service=([^&]+)/' -->
52 <!--#set var="service" value="$1" -->
54 <!--#set var="service" value="" -->
57 <!--#if expr='$QUERY_STRING = /method=([^&]+)/' -->
58 <!--#set var="method" value="$1" -->
61 <!--#if expr="$QUERY_STRING = /all=on/" -->
62 <!--#set var="all" value="on" -->
63 <!--#set var="method" value="opensrf.sysemt.method.all" -->
65 <!--#set var="all" value="off" -->
66 <!--#set var="method" value="opensrf.sysemt.method" -->
69 <!--#if expr='$QUERY_STRING = /param=%22(.+?)%22/' -->
70 <!--#set var="param" value="$1" -->
72 <!--#set var="param" value="" -->
75 <xsl:if test="not(res:response)">
76 <br/><br/><br/><br/><br/><br/>
77 <br/><br/><br/><br/><br/><br/>
82 action='<!--#echo var="DOCUMENT_URI" -->'
84 this.param.value = "\"" + this.param.value + "\"";
85 if (this.all.checked) this.method.value = "opensrf.system.method.all";
87 <xsl:if test="not(res:response)">
88 <xsl:attribute name="style">
89 <xsl:value-of select="'text-align:center;'"/>
93 <input name="service" type="text" value='<!--#echo var="service" -->'/> 
94 API Method Name Regex:
95 <input name="param" type="text" value='<!--#echo var="param" -->'>
96 <xsl:if test="'<!--#echo var="all" -->' = 'on'">
97 <xsl:attribute name="disabled">
98 <xsl:value-of select="'true'"/>
102 All Methods (Use with care!)
108 if (this.checked) this.form.param.disabled = true;
109 else this.form.param.disabled = false;
111 <xsl:if test="'<!--#echo var="all" -->' = 'on'">
112 <xsl:attribute name="checked">
113 <xsl:value-of select="'checked'"/>
118 <input type="hidden" name="offset" value="<!--#echo var="offset" -->"/>
119 <button name="limit" value="<!--#echo var="limit" -->">Find 'em</button>
122 <xsl:if test="res:response">
125 <xsl:apply-templates select="res:response"/>
131 action='<!--#echo var="DOCUMENT_URI" -->'
133 this.param.value = "\"" + this.param.value + "\"";
134 if (this.all.checked) this.method.value = "opensrf.system.method.all";
136 <xsl:if test="not(res:response)">
137 <xsl:attribute name="style">
138 <xsl:value-of select="'text-align:center;'"/>
142 <input name="service" type="text" value='<!--#echo var="service" -->'/> 
143 API Method Name Regex:
144 <input name="param" type="text" value='<!--#echo var="param" -->'>
145 <xsl:if test="'<!--#echo var="all" -->' = 'on'">
146 <xsl:attribute name="disabled">
147 <xsl:value-of select="'true'"/>
151 All Methods (Use with care!)
157 if (this.checked) this.form.param.disabled = true;
158 else this.form.param.disabled = false;
160 <xsl:if test="'<!--#echo var="all" -->' = 'on'">
161 <xsl:attribute name="checked">
162 <xsl:value-of select="'checked'"/>
167 <input type="hidden" name="offset" value="<!--#echo var="offset" -->"/>
168 <button name="limit" value="<!--#echo var="limit" -->">Find 'em</button>
176 <xsl:template name="apiNameLink">
177 API Level: <xsl:value-of select="../res:element[@key='api_level']/res:number"/> / Method:
179 <xsl:attribute name="href">#<xsl:value-of select="../res:element[@key='api_level']/res:number"/>/<xsl:value-of select="res:string"/></xsl:attribute>
180 <xsl:value-of select="res:string"/>
185 <xsl:template match="res:response">
187 <xsl:when test="count(//res:element[@key='api_name']) > 1 or <!--#echo var="offset" --> > 0">
188 <h1>Matching Methods</h1>
190 <xsl:if test="<!--#echo var="offset" --> > 0">
193 <xsl:attribute name="href">docgen.xsl?service=<!--#echo var="service" -->&all=<!--#echo var="all" -->&param="<!--#echo var="param" -->"&limit=<!--#echo var="limit" -->&offset=<xsl:value-of select='<!--#echo var="offset" --> - <!--#echo var="limit" -->'/></xsl:attribute>
201 <xsl:value-of select='<!--#echo var="offset" --> + 1'/>
203 <xsl:value-of select='<!--#echo var="offset" --> + count(//res:element[@key="api_name"])'/>
206 <xsl:if test="count(//res:element[@key='api_name']) = <!--#echo var="limit" -->">
210 <xsl:attribute name="href">docgen.xsl?service=<!--#echo var="service" -->&all=<!--#echo var="all" -->&param="<!--#echo var="param" -->"&limit=<!--#echo var="limit" -->&offset=<xsl:value-of select='<!--#echo var="offset" --> + <!--#echo var="limit" -->'/></xsl:attribute>
218 <xsl:for-each select="//res:element[@key='api_name']">
219 <xsl:sort select="concat(../res:element[@key='api_level']/res:number/text(), res:string/text())"/>
220 <xsl:call-template name="apiNameLink"/>
223 <h1>Method Definitions</h1>
225 <xsl:when test="count(//res:element[@key='api_name']) = 0">
226 <h1><i>No Matching Methods Found</i></h1>
230 <xsl:for-each select="res:payload/res:object">
231 <xsl:sort select="concat(../res:element[@key='api_level']/res:number/text(), res:string/text())"/>
232 <xsl:call-template name="methodDefinition"/>
237 <xsl:template name="methodDefinition">
238 <xsl:if test="res:element[@key='remote']/res:number/text()='0'">
240 <xsl:if test="count(//res:element[@key='api_name']) > 1">
242 <xsl:attribute name="name"><xsl:value-of select="res:element[@key='api_level']/res:number"/>/<xsl:value-of select="res:element[@key='api_name']/res:string"/></xsl:attribute>
244 <a href="#top">Top</a>
249 <td colspan="3" class="header"><xsl:value-of select="res:element[@key='api_name']/res:string"/></td>
252 <td class="label">API Level:</td>
253 <td colspan="2" class="value"><xsl:value-of select="res:element[@key='api_level']/res:number"/></td>
256 <td class="label">Package:</td>
257 <td colspan="2" class="value"><xsl:value-of select="res:element[@key='package']/res:string"/></td>
260 <td class="label">Packaged Method:</td>
261 <td colspan="2" class="value"><xsl:value-of select="res:element[@key='method']/res:string"/></td>
264 <td class="label">Required argument count:</td>
265 <td colspan="2" class="value"><xsl:value-of select="res:element[@key='argc']/res:number"/></td>
267 <xsl:if test="normalize-space(res:element[@key='signature']/res:object/res:element[@key='desc']/res:string/text()) != normalize-space(res:element[@key='notes']/res:string/text())">
270 <xsl:attribute name='rowspan'>
271 <xsl:value-of select='
272 count(res:element[@key="signature"]/res:object/res:element[@key="params"]/res:array/res:object) +
273 count(res:element[@key="signature"]/res:object/res:element[@key="params"]/res:array[res:object]) +
280 <xsl:for-each select="res:element[@key='signature']/res:object">
281 <xsl:call-template name="methodSignature"/>
285 <td class="label">Streaming method:</td>
286 <td colspan="2" class="value">
287 <xsl:if test="res:element[@key='stream']/res:number/text()='1'">Yes</xsl:if>
288 <xsl:if test="res:element[@key='stream']/res:number/text()='0'">No</xsl:if>
291 <xsl:if test="res:element[@key='notes']">
293 <td class="label">Notes:</td>
294 <td colspan="2" class="value"><pre style="font-weight:normal;font-size:10px;"><xsl:value-of select="res:element[@key='notes']/res:string"/></pre></td>
302 <xsl:template name="paramInfoLine">
304 <td class="label params">
305 <xsl:if test="@key='name'">Name:</xsl:if>
306 <xsl:if test="@key='desc'">Description:</xsl:if>
307 <xsl:if test="@key='type'">Data type:</xsl:if>
308 <xsl:if test="@key='class'">Object class:</xsl:if>
310 <td class="value params"><xsl:value-of select="res:string"/></td>
315 <xsl:template name="paramInfo">
318 <table class="params">
320 <td class="label params">Position:</td>
321 <td class="value params"><xsl:value-of select="position()"/></td>
323 <xsl:for-each select="res:element">
324 <xsl:call-template name="paramInfoLine"/>
332 <xsl:template name="methodSignature">
333 <xsl:if test="res:element[@key='desc']">
335 <td class="label">Description:</td>
336 <td class="value"><xsl:value-of select="res:element[@key='desc']/res:string"/></td>
339 <xsl:if test="res:element[@key='params']/res:array/res:object">
342 <xsl:attribute name='rowspan'>
343 <xsl:value-of select='count(res:element[@key="params"]/res:array/res:object) + 1'/>
348 <xsl:for-each select="res:element[@key='params']/res:array/res:object">
349 <xsl:sort select="position()"/>
350 <xsl:call-template name="paramInfo"/>
352 <xsl:if test="res:element[@key='return']">
354 <td class="label">Returns:</td>
355 <td class="value"><xsl:value-of select="res:element[@key='return']/res:object/res:element[@key='desc']/res:string"/></td>
358 <td class="label">Return type:</td>
359 <td class="value"><xsl:value-of select="res:element[@key='return']/res:object/res:element[@key='type']/res:string"/></td>
362 <td class="label">Return type class:</td>
363 <td class="value"><xsl:value-of select="res:element[@key='return']/res:object/res:element[@key='class']/res:string"/></td>
369 <!--#if expr="$QUERY_STRING = /service=[^&]+/" -->
370 <!--#if expr="$QUERY_STRING = /param=%22[^&]+%22/" -->
371 <!-- virtual="/gateway?format=xml&${QUERY_STRING}"-->
372 <!-- virtual="/restgateway?${QUERY_STRING}"-->
373 <!--#include virtual='/gateway?format=xml&input_format=json&service=$service&method=opensrf.system.method¶m="$param"¶m=$limit¶m=$offset'-->
375 <!--#if expr="$QUERY_STRING = /all=on/" -->
376 <!-- virtual="/gateway?format=xml&${QUERY_STRING}"-->
377 <!-- virtual="/restgateway?${QUERY_STRING}"-->
378 <!--#include virtual='/gateway?format=xml&input_format=json&service=$service&method=opensrf.system.method.all¶m=$limit¶m=$offset' -->