General State Editor
[darcs-mirror-latutman.git] / xslt / style.xsl
1 <?xml version="1.0"?>
2 <!DOCTYPE xsl:stylesheet PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "libxslt/xslt2.dtd">
3 <xsl:stylesheet  
4  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
5  xmlns="http://www.w3.org/1999/xhtml"
6  >
7
8 <xsl:output method="xml"
9   media-type="text/xml"
10   doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
11   doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
12   omit-xml-declaration="yes"
13 />
14
15 <xsl:include href="libxslt/defaultStyle.xsl"/>
16
17 <!-- Always copy html elements -->
18 <xsl:template match="*[namespace-uri(.)='http://www.w3.org/1999/xhtml']|@*[namespace-uri(..)='http://www.w3.org/1999/xhtml']" mode="content">
19 <!--   <xsl:copy-of select="." />  -->
20  <xsl:copy>
21   <xsl:apply-templates select="@*|node()" mode="content"/>
22  </xsl:copy>
23 </xsl:template>
24
25 <xsl:variable name="staticBaseURL">/</xsl:variable>
26
27 <xsl:template match="*" mode="header">
28 <h1>LA-Tut-Manager</h1>
29 <p><a href="../">go up</a></p>
30
31 </xsl:template>
32
33 <xsl:template match="form" mode="content">
34 This really needs nicer styling from css!
35 <p/>
36 <xsl:copy-of select="."/>
37 </xsl:template>
38
39 <xsl:template match="*" mode="footer">
40 <hr/>
41 © <a href="mailto:mail@joachim-breitner.de">Joachim Breitner</a>
42 </xsl:template>
43 <!--
44 <xsl:template match="*">
45 <xsl:copy-of select="."/>
46 </xsl:template>
47
48 <xsl:template match="xml"><html>
49   now this is the replacement text
50 </html>
51 </xsl:template>
52 -->
53
54 <xsl:template match="index" mode="content">
55 <ul>
56 <li><a href="handins/">HandIns</a></li>
57 <li><a href="assignment/">Assignments</a></li>
58 <li><a href="student/">Students</a></li>
59 <li><a href="maintenance/">Maintenance</a></li>
60 </ul>
61 </xsl:template>
62
63 <xsl:template match="table" mode="content">
64  <table>
65   <tr>
66    <th/>
67    <xsl:for-each select="./tableHead">
68     <th><xsl:value-of select="."/></th>
69    </xsl:for-each>
70   </tr>
71   <xsl:for-each select="./tableRow">
72    <tr>
73     <th><xsl:value-of select="./tableHead"/></th>
74     <xsl:for-each select="./tableCell">
75      <td>
76       <xsl:apply-templates select="." mode="tablecell"/>
77      </td>
78     </xsl:for-each>
79    </tr>
80   </xsl:for-each>
81  </table>
82 </xsl:template>
83
84 <xsl:template match="handIn" mode="tablecell">
85 <xsl:value-of select="./points"/>
86 </xsl:template>
87
88 <xsl:template match="assignmentsWithHandIns" mode="content">
89
90  <p><a href="add">Add new</a></p>
91  <table>
92   <tr>
93    <th>Assignment</th>
94    <th>Maximum Points</th>
95    <th>Hand Ins</th>
96    <th>Average</th>
97    <th>Actions</th>
98   </tr>
99
100   <xsl:apply-templates select="./assignmentWithHandIns" mode="list"/>
101
102  </table>
103 </xsl:template>
104
105 <xsl:template match="assignmentWithHandIns" mode="list">
106 <tr>
107 <td><xsl:value-of select="assignment/assName"/></td>
108 <td><xsl:value-of select="assignment/maxPoints"/></td>
109 <td><xsl:value-of select="count(./handIn)"/></td>
110 <td><xsl:value-of select="sum(./handIn/points) div count(./handIn)"/></td>
111  <td>
112   <a><xsl:attribute name="href">./<xsl:value-of select="assignment/assName"/>/</xsl:attribute>View</a>
113   &nbsp;
114   <a><xsl:attribute name="href">./<xsl:value-of select="assignment/assName"/>/edit</xsl:attribute>Edit</a>
115   &nbsp;
116   <a><xsl:attribute name="href">./<xsl:value-of select="assignment/assName"/>/delete</xsl:attribute>Delete</a>
117  </td>
118 </tr>
119 </xsl:template>
120
121
122 <xsl:template match="students" mode="content">
123
124  <p><a href="add">Add new</a></p>
125  <table>
126   <tr>
127    <th>Student ID</th>
128    <th>eMail</th>
129    <th>Actions</th>
130   </tr>
131
132   <xsl:apply-templates select="./student" mode="list"/>
133
134  </table>
135 </xsl:template>
136
137 <xsl:template match="student" mode="list">
138 <tr>
139  <td><xsl:value-of select="studentID"/></td>
140  <td><xsl:value-of select="eMail"/></td>
141  <td>
142   <a><xsl:attribute name="href">./<xsl:value-of select="studentID"/>/</xsl:attribute>View</a>
143   &nbsp;
144   <a><xsl:attribute name="href">./<xsl:value-of select="studentID"/>/edit</xsl:attribute>Edit</a>
145   &nbsp;
146   <a><xsl:attribute name="href">./<xsl:value-of select="studentID"/>/delete</xsl:attribute>Delete</a>
147  </td>
148 </tr>
149 </xsl:template>
150
151 <xsl:template match="assignment" mode="content">
152 <h2>Assignment <xsl:value-of select="assName"/></h2>
153 <dl>
154 <dt>Punkte </dt><dd><xsl:value-of select="maxPoints"/></dd>
155 <dt>Abgaben </dt><dd><xsl:value-of select="count(./handIn)"/></dd>
156 <dt>Schnitt </dt><dd><xsl:value-of select="sum(./handIn/points) div count(./handIn)"/></dd>
157 <dt>Aktionen </dt><dd><a href="./edit">bearbeiten</a></dd>
158 </dl>
159
160 <p><a href="add">Add new</a></p>
161 <h3>Abgaben</h3>
162 <table>
163   <tr>
164    <th>Matrikelnummer</th>
165    <th>Punkte</th>
166   </tr>
167
168   <xsl:apply-templates select="./handIn" mode="list"/>
169 </table>
170 </xsl:template>
171
172 <xsl:template match="student" mode="content">
173 <h2>Student <xsl:value-of select="studentID"/></h2>
174 <dl>
175 <dt>e-Mail </dt><dd><xsl:value-of select="eMail"/></dd>
176 <!--
177 <dt>Abgaben </dt><dd><xsl:value-of select="count(./handIn)"/></dd>
178 <dt>Schnitt </dt><dd><xsl:value-of select="sum(./handIn/points) div count(./handIn)"/></dd>
179 -->
180 <dt>Aktionen </dt><dd><a href="./edit">bearbeiten</a></dd>
181 </dl>
182 </xsl:template>
183
184 <xsl:template match="handIn" mode="list">
185 <tr>
186  <td><xsl:value-of select="studentID"/></td>
187  <td><xsl:value-of select="points"/></td>
188  <td>
189   <a><xsl:attribute name="href">./<xsl:value-of select="studentID"/>/edit</xsl:attribute>Edit</a>
190   &nbsp;
191   <a><xsl:attribute name="href">./<xsl:value-of select="studentID"/>/delete</xsl:attribute>Delete</a>
192  </td>
193 </tr>
194 </xsl:template>
195
196 <xsl:template match="handIn" mode="content">
197 <dl>
198  <dt>Matrikelnummer</dt><dd><xsl:value-of select="studentID"/></dd>
199  <dt>Punkte</dt><dd><xsl:value-of select="points"/></dd>
200  <dt>Aktionen</dt>
201  <dd>
202   <a><xsl:attribute name="href">./edit</xsl:attribute>Edit</a>
203   &nbsp;
204   <a><xsl:attribute name="href">./delete</xsl:attribute>Delete</a>
205  </dd>
206 </dl>
207 </xsl:template>
208
209 </xsl:stylesheet>