1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/"
xmlns:xi="http://www.w3.org/2001/XInclude"
py:strip="">
<py:match path="head[@status!='done']" once="true">
<head>
<title py:with="title = list(select('title/text()'))">
<py:if test="title">${title} - </py:if>IVLE
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script py:if="not publicmode and write_javascript_settings" type="text/javascript">
root_dir = "${root_dir}";
public_host = "${public_host}";
svn_base = "${svn_base}";
username = "${login}";
</script>
<link py:if="favicon" rel="shortcut icon" href="${favicon}" />
<py:for each="style in styles">
<link rel="stylesheet" type="text/css" href="${style}" />
</py:for>
<py:for each="script in scripts">
<script type="text/javascript" src="${script}"></script>
</py:for>
<!-- Plugin JavaScript to be run on page load -->
<script type="text/javascript">
<py:for each="init_script in scripts_init">
$(document).ready(${init_script});
</py:for>
</script>
${select('*[local-name()!="title"]')}
</head>
</py:match>
<py:match path="body[@status!='done']" once="true">
<body>
<div id="ivleheader">
<ul id="ivle_breadcrumbs">
<li py:attrs="{'class': 'breadcrumb crumbmenu' if logged_in else 'breadcrumb'}">
<a href="/">
<img src="${title_img}" alt="Informatics Virtual Learning Environment" />
</a>
<ul py:if="logged_in">
<li py:for="app in apps_in_tabs">
<a py:attrs="{'style': 'background: url(%s) no-repeat; padding-left: 30px' % app['icon_url']} if app['has_icon'] else {}" href="${app['path']}" title="${app['desc']}">${app['name']}</a>
</li>
</ul>
</li>
<li py:for="thiscrumb in breadcrumbs"
py:if="thiscrumb"
py:attrs="{True:{'class':'crumbmenu'}, False: None}[hasattr(thiscrumb, 'menu')]">
<py:choose test="getattr(thiscrumb, 'url', None)">
<py:when test="None">
<span>${thiscrumb.text}</span>
</py:when>
<py:otherwise>
<a href="${thiscrumb.url}">
${thiscrumb.text}
</a>
</py:otherwise>
</py:choose>
<ul py:if="hasattr(thiscrumb, 'menu')">
<li py:for="item in thiscrumb.menu"><a href="${thiscrumb.menu[item]}">${item}</a></li>
</ul>
</li>
</ul>
<div id="ivleheader_text">
<py:choose>
<p py:when="publicmode" class="userhello">Public access mode</p>
<p py:when="logged_in" class="userhello">
<span id="usernick">${nick}</span>
(<span class="username">${login}</span>) |
<a href="/~${login}">Settings</a> |
<py:choose>
<a py:when="defined('help_path')" href="/+help/${help_path}">Help</a>
<a py:otherwise="" href="/+help/">Help</a>
|</py:choose>
<a href="/+logout">Log out</a>
</p>
<p py:otherwise="" class="userhello">Not logged in.</p>
</py:choose>
</div>
</div>
<div id="ivlebody">
<div id="ivleview">
${select('*')}
</div>
<div id="ivleoverlays">
<py:for each="overlay in overlays">
${overlay}
</py:for>
</div>
</div>
</body>
</py:match>
${app_template}
</html>
|