xslt files
[darcs-mirror-latutman.git] / xslt / libxslt / forms.xsl
1 <!DOCTYPE xsl:stylesheet PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "xslt2.dtd">\r
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">\r
3 \r
4 \r
5 <!--generic forms implementation -->\r
6 \r
7 \r
8 <xsl:template match="form" mode="xml">\r
9   <form id="{@id}"  action="{@action}" method="{@method}">\r
10         <xsl:apply-templates select="*" mode="form"/>\r
11   </form>\r
12 </xsl:template>\r
13 \r
14 \r
15 <xsl:attribute-set name="form">\r
16   <xsl:attribute name="action"><xsl:value-of select="@action"/></xsl:attribute>\r
17   <xsl:attribute name="method"><xsl:value-of select="@method"/></xsl:attribute>\r
18   <xsl:attribute name="onsubmit">return verify(this)</xsl:attribute>\r
19 </xsl:attribute-set>\r
20 \r
21 <xsl:template match="*" mode="input">\r
22 <xsl:param name="label"/>\r
23 <xsl:param name="cols">50</xsl:param>\r
24 <xsl:param name="size"/>\r
25 <xsl:param name="id"/>\r
26 \r
27 <xsl:variable name="name" select="substring(concat(name(),@name), (string-length(name())+1)* round(string-length(@name) div (string-length(@name)+1)) )"/>\r
28 <xsl:variable name="id_" select="substring(concat($name,$id), (string-length($name)+1)* round(string-length($id) div (string-length($id)+1)) )"/>\r
29 <xsl:variable name="size_" select="substring(concat(@maxlength,$size), (string-length(@maxlength)+1)* round(string-length($size) div (string-length($size)+1)) )"/>\r
30 \r
31 <label xstyle="vertical-align: top" for="{$id_}"><xsl:copy-of select="$label"/>:&nbsp;&nbsp;</label>\r
32 \r
33 <xsl:choose>\r
34 <xsl:when test="@type='bool'">\r
35 <input type="radio" required="{@required}" name="{$name}" value="1"/> Yes\r
36 <input type="radio" required="{@required}" name="{$name}" value="0"/> No\r
37 </xsl:when>\r
38 \r
39 <xsl:when test="@type='page'">\r
40 <!--<label for="{$name}"><xsl:value-of select="$label"/>: <br/></label>-->\r
41 <br/>\r
42 <textarea cols="{$cols}" rows="20" name="{$name}">\r
43 <xsl:copy-of select="./text()"/>\r
44 </textarea>\r
45 </xsl:when>\r
46 \r
47 \r
48 <xsl:when test="@type='para'">\r
49 <!--<label for="{$name}"><xsl:value-of select="$label"/>: <br/></label>-->\r
50 <br/>\r
51 <textarea cols="{$cols}" rows="6" name="{$name}">\r
52 <xsl:copy-of select="./text()"/>\r
53 </textarea>\r
54 </xsl:when>\r
55 \r
56 \r
57 <xsl:when test="@type='sentence'">\r
58 <br/>\r
59 <textarea cols="{$cols}" rows="3" name="{$name}">\r
60 <xsl:copy-of select="./text()"/>\r
61 </textarea>\r
62 </xsl:when>\r
63 \r
64 \r
65 <xsl:otherwise>\r
66 <input name="{$name}" id="{$id_}" required="{@required}" size="{$size_}" maxlength="{@maxlength}" value="{text()}"/>\r
67 </xsl:otherwise>\r
68 </xsl:choose>\r
69 \r
70 \r
71 </xsl:template>\r
72 \r
73 <xsl:template match="*" mode="textarea">\r
74 <xsl:param name="label"/>\r
75 <xsl:param name="id"/>\r
76 \r
77 <xsl:variable name="hasNameAttr" select="round(string-length(@name) div (string-length(@name)+1))"/>\r
78 <xsl:variable name="offset" select="$hasNameAttr*(string-length(name())+1)"/>\r
79 <xsl:variable name="name" select="substring(concat(name(),@name),$offset)"/>\r
80 \r
81 <label for="{$name}"><xsl:value-of select="$label"/>: <br/></label>\r
82 <textarea cols="{@cols}" rows="{@rows}" name="{$name}">\r
83 <xsl:value-of select="text()"/>\r
84 </textarea>\r
85 \r
86 </xsl:template>\r
87 \r
88 <xsl:template match="*" mode="yes-no">\r
89 <xsl:param name="label"/>\r
90 <xsl:param name="id"/>\r
91 <xsl:variable name="name" select="substring(concat(name(),@name), (string-length(name())+1)* round(string-length(@name) div (string-length(@name)+1)) )"/>\r
92 <xsl:variable name="id_" select="substring(concat($name,$id), (string-length($name)+1)* round(string-length($id) div (string-length($id)+1)) )"/>\r
93 \r
94 <label for="{$id_}"><xsl:value-of select="$label"/>: </label>\r
95 \r
96 </xsl:template>\r
97 \r
98 <!--\r
99 \r
100 <xsl:element name="script">\r
101 <xsl:attribute name="language">javascript</xsl:attribute>\r
102 <xsl:attribute name="type">text/javascript</xsl:attribute>\r
103 //!-<script language="javascript" type="text/javascript">-\r
104 //   alert("")\r
105 <![CDATA[\r
106 //   alert("h2")\r
107 ]]>\r
108 \r
109 //-</script>\r
110 </xsl:element>\r
111   <xsl:value-of select="$index/@regURL"/>\r
112 \r
113 Types:\r
114 input\r
115 select\r
116 check\r
117 how to handle multilevel select?\r
118 -->\r
119 \r
120 \r
121 \r
122 </xsl:stylesheet>\r
123 \r