source: main/trunk/greenstone3/web/interfaces/oran/transform/layouts/xml-to-gui.xsl@ 22598

Last change on this file since 22598 was 22598, checked in by sjb48, 14 years ago

More work on format statements. New elements can now be added by dragging in to the sortables. Javascript is now more modular.

File size: 16.1 KB
Line 
1<!--
2Copyright (c) 2001-2009, Evan Lenz
3All rights reserved.
4
5Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
9 * Neither the name of Lenz Consulting Group nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
10
11 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
12
13Recent changes:
14
152010-06-10: Added the $force-exclude-all-namespaces parameter
162009-10-19: Added the $exclude-these-namespaces parameter
172009-10-08: Added $att-value parameter and template name to template rule for attributes.
18
19-->
20<xsl:stylesheet version="1.0"
21 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
22 xmlns:gsf="http://www.greenstone.org/greenstone3/schema/ConfigFormat"
23 xmlns:exsl="http://exslt.org/common"
24 extension-element-prefixes="exsl" >
25
26 <xsl:output omit-xml-declaration="yes"/>
27
28 <xsl:template name="xml-to-gui">
29 <xsl:param name="node-set" select="."/>
30 <xsl:param name="metadataSets" select="."/>
31
32 <xsl:value-of select="metadataSets[@name]"/>
33 <xsl:apply-templates select="$node-set" mode="xml-to-gui">
34 <xsl:with-param name="depth" select="1"/>
35 <xsl:with-param name="metadataSets" select="$metadataSets"/>
36 </xsl:apply-templates>
37 </xsl:template>
38
39 <xsl:template match="/" mode="xml-to-gui">
40 <xsl:param name="depth"/>
41 <xsl:param name="metadataSets"/>
42
43 <xsl:apply-templates mode="xml-to-gui">
44 <xsl:with-param name="depth" select="$depth"/>
45 <xsl:with-param name="metadataSets" select="$metadataSets"/>
46 </xsl:apply-templates>
47 </xsl:template>
48 <!-- **************************************************************************** -->
49
50 <!-- **************************************************************************** -->
51 <!-- COMBO BOX CREATION -->
52 <!-- **************************************************************************** -->
53
54 <xsl:template name="meta-to-combo">
55 <xsl:param name="metadataSets" select='.'/>
56 <xsl:param name="current" select='.'/>
57
58 <xsl:variable name="current_mod">
59 <xsl:choose>
60 <xsl:when test="contains($current,'.')"><xsl:value-of select="$current"/></xsl:when>
61 <xsl:otherwise>ex.<xsl:value-of select="$current"/></xsl:otherwise>
62 </xsl:choose>
63 </xsl:variable>
64
65 <select>
66 <option value ="{$current_mod}" disabled="disabled" selected="{$current_mod}"><xsl:value-of select="$current_mod"/></option>
67
68 <xsl:apply-templates select="$metadataSets" mode="meta-to-combo">
69 <xsl:with-param name="current" select="$current_mod"/>
70 </xsl:apply-templates>
71 </select>
72 </xsl:template>
73
74 <xsl:template match="metadataSet" mode="meta-to-combo">
75 <xsl:param name="current"/>
76
77 <xsl:apply-templates mode="meta-to-combo">
78 <xsl:with-param name="set" select="@name"/>
79 <xsl:with-param name="current" select="$current"/>
80 </xsl:apply-templates>
81 </xsl:template>
82
83 <xsl:template match="metadata" mode="meta-to-combo">
84 <xsl:param name="set"/>
85 <xsl:param name="current"/>
86
87 <xsl:variable name="meta"><xsl:value-of select="$set"/>.<xsl:value-of select="@name"/></xsl:variable>
88
89 <!-- if this is the current value, then set combo box to this value -->
90 <xsl:choose>
91 <xsl:when test="$current = $meta">
92 <option value ="{$meta}" selected="{$meta}"><xsl:value-of select="$meta"/></option>
93 </xsl:when>
94 <xsl:otherwise>
95 <option value ="{$meta}"><xsl:value-of select="$meta"/></option>
96 </xsl:otherwise>
97 </xsl:choose>
98 </xsl:template>
99
100 <xsl:template match="*" mode="meta-to-combo">
101 <xsl:param name="current"/>
102 <xsl:apply-templates mode="meta-to-combo">
103 <xsl:with-param name="current" select="$current"/>
104 </xsl:apply-templates>
105 </xsl:template>
106
107
108 <!-- **************************************************************************** -->
109
110 <!-- **************************************************************************** -->
111 <!-- GSF STATEMENTS -->
112 <!-- **************************************************************************** -->
113
114
115 <!-- ********** GSF:CHOOSE-METADATA ********** -->
116 <xsl:template match="gsf:choose-metadata" mode="xml-to-gui">
117 <xsl:param name="depth"/>
118 <xsl:param name="metadataSets"/>
119
120 <div class="gsf_choose_metadata css_gsf_choose_metadata block" title="gsf:choose-metadata">
121 CHOOSE <a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
122 <xsl:apply-templates mode="xml-to-gui">
123 <xsl:with-param name="depth" select="$depth"/>
124 <xsl:with-param name="metadataSets" select="$metadataSets"/>
125 </xsl:apply-templates>
126 </div>
127 </xsl:template>
128
129
130 <!-- ********** GSF:METADATA ********** -->
131 <xsl:template match="gsf:metadata" mode="xml-to-gui">
132 <xsl:param name="depth"/>
133 <xsl:param name="metadataSets"/>
134
135 <div class="gsf_metadata css_gsf_metadata block leaf" title="gsf:metadata">METADATA <xsl:call-template name="meta-to-combo">
136 <xsl:with-param name="metadataSets" select="$metadataSets"/>
137 <xsl:with-param name="current" select="@name"/>
138 </xsl:call-template> <a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
139 </div>
140 </xsl:template>
141
142
143 <!-- ********** GSF:LINK ********** -->
144 <xsl:template match="gsf:link" mode="xml-to-gui">
145 <xsl:param name="depth"/>
146 <xsl:param name="metadataSets"/>
147
148 <div class="gsf_link css_gsf_link block" title="gsf:link">
149 LINK[type=
150 <select>
151 <xsl:choose>
152 <xsl:when test="@type='document'">
153 <option value = "document" selected = "document">Document</option>
154 <option value = "classifier">Classifier</option>
155 <option value = "source">Source</option>
156 </xsl:when>
157 <xsl:when test="@type='classifier'">
158 <option value = "classifier" selected = "classifier">Classifier</option>
159 <option value = "document">Document</option>
160 <option value = "source">Source</option>
161 </xsl:when>
162 <xsl:when test="@type='source'">
163 <option value = "source" selected = "source">Source</option>
164 <option value ="document">Document</option>
165 <option value ="classifier">Classifier</option>
166 </xsl:when>
167 <xsl:when test="@type='horizontal'">
168 <option value = "horizontal" selected = "horizontal">Horizontal</option>
169 <option value = "source" selected = "source">Source</option>
170 <option value ="document">Document</option>
171 <option value ="classifier">Classifier</option>
172 </xsl:when>
173 </xsl:choose>
174 </select>]<a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
175 <xsl:apply-templates mode="xml-to-gui">
176 <xsl:with-param name="depth" select="$depth"/>
177 <xsl:with-param name="metadataSets" select="$metadataSets"/>
178 </xsl:apply-templates>
179 </div>
180 </xsl:template>
181
182
183 <!-- ********** GSF:TEMPLATE ********** -->
184 <xsl:template match="gsf:template" mode="xml-to-gui">
185 <xsl:param name="depth"/>
186 <xsl:param name="metadataSets"/>
187
188 <!-- CHILD = <xsl:value-of select="child[1]/@name"/> -->
189 <!-- CHILD = <xsl:value-of select="child::*[name()][1]"/> -->
190
191
192 <!-- <xsl:for-each select="child::*"> -->
193 <!-- <xsl:value-of select="name()"/> -->
194 <!-- </xsl:for-each> -->
195
196
197 <div class="gsf_template css_gsf_template block" title="gsf:template">
198 TEMPLATE[match=<input type="text" name="rawtextinput" size="10" value="{@match}"/>]<a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
199 <table border="1">
200 <tr class="tr">
201 <xsl:apply-templates mode="xml-to-gui">
202 <xsl:with-param name="depth" select="$depth"/>
203 <xsl:with-param name="metadataSets" select="$metadataSets"/>
204 </xsl:apply-templates>
205 </tr>
206 </table>
207 </div><br/>
208 </xsl:template>
209
210 <!-- ********** GSF:SWITCH ********** -->
211 <xsl:template match="gsf:switch" mode="xml-to-gui">
212 <xsl:param name="depth"/>
213 <xsl:param name="metadataSets"/>
214
215 <div class="gsf_switch css_gsf_switch block" title="gsf:switch">
216 SWITCH <a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
217 <xsl:apply-templates mode="xml-to-gui">
218 <xsl:with-param name="depth" select="$depth"/>
219 <xsl:with-param name="metadataSets" select="$metadataSets"/>
220 </xsl:apply-templates>
221 </div>
222 </xsl:template>
223
224
225 <!-- ********** GSF:WHEN ********** -->
226 <xsl:template match="gsf:when" mode="xml-to-gui">
227 <xsl:param name="depth"/>
228 <xsl:param name="metadataSets"/>
229
230 <div class="gsf_when css_gsf_when block" title="gsf:when">
231 WHEN[test=<xsl:value-of select="@test"/>] <br/><a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
232 <xsl:apply-templates mode="xml-to-gui">
233 <xsl:with-param name="depth" select="$depth"/>
234 <xsl:with-param name="metadataSets" select="$metadataSets"/>
235 </xsl:apply-templates>
236 </div>
237 </xsl:template>
238
239
240 <!-- ********** GSF:OTHERWISE ********** -->
241 <xsl:template match="gsf:otherwise" mode="xml-to-gui">
242 <xsl:param name="depth"/>
243 <xsl:param name="metadataSets"/>
244
245 <div class="gsf_otherwise css_gsf_otherwise block" title="gsf:otherwise">
246 OTHERWISE <br/><a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
247 <xsl:apply-templates mode="xml-to-gui">
248 <xsl:with-param name="depth" select="$depth"/>
249 <xsl:with-param name="metadataSets" select="$metadataSets"/>
250 </xsl:apply-templates>
251 </div>
252 </xsl:template>
253
254
255 <!-- ********** GSF:ICON ********** -->
256 <xsl:template match="gsf:icon" mode="xml-to-gui">
257 <xsl:param name="depth"/>
258 <xsl:param name="metadataSets"/>
259
260 <div class="gsf_icon css_gsf_icon block leaf" title="gsf:icon">
261 ICON[type=
262 <select>
263 <xsl:choose>
264 <xsl:when test="@type='document'">
265 <option value = "document" selected = "document">Document</option>
266 <option value = "classifier">Classifier</option>
267 <option value = "source">Source</option>
268 </xsl:when>
269 <xsl:when test="@type='classifier'">
270 <option value = "classifier" selected = "classifier">Classifier</option>
271 <option value = "document">Document</option>
272 <option value = "source">Source</option>
273 </xsl:when>
274 <xsl:when test="@type='source'">
275 <option value = "source" selected = "source">Source</option>
276 <option value ="document">Document</option>
277 <option value ="classifier">Classifier</option>
278 </xsl:when>
279 </xsl:choose>
280 </select>]<a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
281 </div>
282 </xsl:template>
283
284
285 <!-- ********** GSF:DEFAULT ********** -->
286 <xsl:template match="gsf:default" mode="xml-to-gui">
287 <xsl:param name="depth"/>
288 <xsl:param name="metadataSets"/>
289
290 <div class="block" title="gsf:default">
291 DEFAULT <a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
292 <xsl:apply-templates mode="xml-to-gui">
293 <xsl:with-param name="depth" select="$depth"/>
294 <xsl:with-param name="metadataSets" select="$metadataSets"/>
295 </xsl:apply-templates>
296 </div>
297 </xsl:template>
298
299
300 <!-- ********** TEXT ********** -->
301 <xsl:template match="text()" mode="xml-to-gui">
302 <xsl:param name="depth"/>
303 <xsl:param name="metadataSets"/>
304
305 <div class="block leaf" title="gsf:text">
306 <xsl:variable name="rawtext"><xsl:value-of select="."/></xsl:variable>
307 TEXT = <input type="text" name="rawtextinput" size="10" value="{$rawtext}"/><a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a>
308 </div>
309 </xsl:template>
310
311
312 <!-- ********** TABLE ********** -->
313 <xsl:template match="td" mode="xml-to-gui">
314 <xsl:param name="depth"/>
315 <xsl:param name="metadataSets"/>
316
317
318 <!-- <td class="td block resizable" title="td" valign="{@valign}" style='overflow: hidden;'> -->
319 <td valign="{@valign}" title="td">
320 <div class="td block" title="td-div">
321 <!-- <xsl:text>&lt;td</xsl:text>valign=<xsl:value-of select="@valign"/><xsl:text>&gt;</xsl:text><a href="#" class="minmax">[-]</a><a href="#" class="remove">[x]</a> -->
322 <xsl:apply-templates mode="xml-to-gui">
323 <xsl:with-param name="depth" select="$depth"/>
324 <xsl:with-param name="metadataSets" select="$metadataSets"/>
325 </xsl:apply-templates>
326 <!-- <xsl:text>&lt;/td&gt;</xsl:text><br/><br/> -->
327 </div>
328 </td>
329 </xsl:template>
330
331
332 <!-- ********** BREAK ********** -->
333 <xsl:template match="br" mode="xml-to-gui">
334 <xsl:param name="depth"/>
335 <xsl:param name="metadataSets"/>
336
337 <xsl:text>&lt;br/&gt;</xsl:text> <br/>
338
339 <xsl:apply-templates mode="xml-to-gui">
340 <xsl:with-param name="depth" select="$depth"/>
341 <xsl:with-param name="metadataSets" select="$metadataSets"/>
342 </xsl:apply-templates>
343 </xsl:template>
344
345
346 <!-- ********** MATCH ALL ********** -->
347 <xsl:template match="*" mode="xml-to-gui">
348 <xsl:param name="depth"/>
349 <xsl:param name="metadataSets"/>
350
351 <xsl:apply-templates mode="xml-to-gui">
352 <xsl:with-param name="depth" select="$depth"/>
353 <xsl:with-param name="metadataSets" select="$metadataSets"/>
354 </xsl:apply-templates>
355 </xsl:template>
356
357</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.