~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to ivle/webapp/base/ivle-headings.html

Dispatch now generates an index for each plugin type, allowing plugins to
be written which are aware of other plugins, and other plugin types.

All view plugins now subclass from ivle.webapp.base.plugins.ViewPlugin,
as opposed to subclassing BasePlugin directly. This will allow us to
easily re-write console as an OverlayPlugin, and allow future new
plugins types to be created.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html xmlns="http://www.w3.org/1999/xhtml"       
 
2
      xmlns:py="http://genshi.edgewall.org/"
 
3
      xmlns:xi="http://www.w3.org/2001/XInclude"
 
4
      py:strip="">
 
5
  <py:match path="head[@status!='done']" once="true">
 
6
    <head status='done' py:attrs="select('@*')">
 
7
      <title py:with="title = list(select('title/text()'))">
 
8
        <py:if test="title">${title} - </py:if>IVLE
 
9
      </title>
 
10
 
 
11
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
12
 
 
13
      <script py:if="write_javascript_settings" type="text/javascript">
 
14
        root_dir = "${root_dir}";
 
15
        public_host = "${public_host}";
 
16
        username = "${login}";
 
17
      </script>
 
18
 
 
19
      <link py:if="favicon" rel="shortcut icon" href="${favicon}" />
 
20
 
 
21
      <link rel="stylesheet" type="text/css" href="/media/common/ivle.css" />
 
22
 
 
23
      <script type="text/javascript" src="/media/common/util.js"></script>
 
24
      <script type="text/javascript" src="/media/common/json2.js"></script>
 
25
      <script type="text/javascript" src="/media/common/md5.js"></script>
 
26
      <script type="text/javascript" src="/media/common/tos.js"></script>
 
27
 
 
28
      <!-- Plugin style sheets and JavaScript -->
 
29
      <py:for each="style in app_styles">
 
30
        <link rel="stylesheet" type="text/css" href="${style}" />
 
31
      </py:for>
 
32
 
 
33
      <py:for each="script in scripts">
 
34
        <script type="text/javascript" src="${script}"></script>
 
35
      </py:for>
 
36
 
 
37
      <!-- Plugin JavaScript to be run on page load -->
 
38
      <script type="text/javascript">
 
39
        <py:for each="init_script in scripts_init">
 
40
          window.addEventListener("load", ${init_script}, false);
 
41
        </py:for>
 
42
      </script>
 
43
      ${select('*[local-name()!="title"]')}
 
44
    </head>
 
45
  </py:match>    
 
46
  <py:match path="body[@status!='done']" once="true">
 
47
    <body status='done'>
 
48
      <div id="ivleheader"></div>
 
49
      <div id="ivleheader_text">
 
50
        <h1>IVLE</h1>
 
51
        <h2>Informatics Virtual Learning Environment</h2>
 
52
        <py:choose>
 
53
          <p py:when="publicmode" class="userhello">Running in public mode.</p>
 
54
          <p py:when="logged_in" class="userhello">
 
55
            <span id="usernick">${nick}</span>
 
56
            (<span class="username">${login}</span>) |
 
57
            <a href="/~${login}/+settings">Settings</a> |
 
58
            <a href="/help">Help</a> |
 
59
            <a href="/logout">Sign out</a>
 
60
          </p>
 
61
          <p py:otherwise="" class="userhello">Not logged in.</p>
 
62
        </py:choose>
 
63
      </div>
 
64
      <div id="ivleheader_tabs">
 
65
        <ul id="apptabs">
 
66
          <py:for each="app in apps_in_tabs">
 
67
            <li py:if="app['this_app']" class="thisapp"><py:if test="app['has_icon']"><img src="${app['icon_url']}" alt="" /> </py:if><a href="${app['path']}" title="${app['desc']}">${app['name']}</a></li>
 
68
            <li py:if="not app['this_app']"><py:if test="app['has_icon']"><img src="${app['icon_url']}" alt="" /> </py:if><a href="${app['path']}" title="${app['desc']}">${app['name']}</a></li>
 
69
          </py:for>
 
70
        </ul>
 
71
      </div>
 
72
      <div id="ivlebody">
 
73
      ${select('*')}
 
74
      </div>
 
75
    </body>
 
76
  </py:match>
 
77
  ${app_template}
 
78
</html>