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

« back to all changes in this revision

Viewing changes to www/dispatch/html.py

  • Committer: dilshan_a
  • Date: 2008-01-25 05:00:05 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:310
Add lineno to exception info.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
# content (the common parts of the HTML pages shared across the entire site).
24
24
# Does not include the login page. See login.py.
25
25
 
 
26
import cgi
26
27
import os.path
27
28
 
28
29
import conf
39
40
    # Note the inline JavaScript, which provides the client with constants
40
41
    # derived from the server configuration.
41
42
    if req.title != None:
42
 
        titlepart = ' - ' + req.title
 
43
        titlepart = req.title + ' - '
43
44
    else:
44
45
        titlepart = ''
45
46
    req.write("""<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
46
47
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
47
48
<html xmlns="http://www.w3.org/1999/xhtml">
48
49
<head>
49
 
  <title>IVLE%s</title>
 
50
  <title>%sIVLE</title>
50
51
  <meta http-equiv="Content-Type" content="%s; charset=utf-8" />
51
 
  <script type="text/javascript">
52
 
    root_dir = "%s";
 
52
""" % (cgi.escape(titlepart), cgi.escape(req.content_type)))
 
53
    # Write inline JavaScript which gives the client code access to certain
 
54
    # server-side variables.
 
55
    if req.username:
 
56
        username = repr(req.username)
 
57
    else:
 
58
        username = "null"
 
59
    req.write("""  <script type="text/javascript">
 
60
    root_dir = %s;
 
61
    username = %s;
53
62
  </script>
54
 
  <link rel="stylesheet" type="text/css" href="%s" />
55
 
""" % (titlepart, req.content_type,
56
 
        repr(conf.root_dir)[1:-1],
57
 
        util.make_path('media/common/ivle.css')))
 
63
""" % (repr(conf.root_dir), username))
 
64
    iconurl = get_icon_url(req.app)
 
65
    if iconurl:
 
66
        req.write("""  <link rel="shortcut icon" href="%s" />
 
67
""" % cgi.escape(iconurl))
 
68
    req.write("""  <link rel="stylesheet" type="text/css" href="%s" />
 
69
""" % cgi.escape(util.make_path('media/common/ivle.css')))
58
70
 
59
71
    # Write any app-specific style and script links
60
72
    for style in req.styles:
61
73
        req.write('  <link rel="stylesheet" type="text/css" href="%s" />\n'
62
 
            % util.make_path(style))
 
74
            % cgi.escape(util.make_path(style)))
63
75
    for script in req.scripts:
64
76
        req.write('  <script type="text/javascript" src="%s" />\n'
65
 
            % util.make_path(script))
 
77
            % cgi.escape(util.make_path(script)))
66
78
 
67
79
    req.write("</head>\n\n")
68
80
 
79
91
            '    <a href="%s">Help</a> |\n'
80
92
            '    <a href="%s">Logout</a>\n'
81
93
            '  </p>\n' %
82
 
            (req.username, get_help_url(req), util.make_path('logout')))
 
94
            (cgi.escape(req.username),
 
95
             cgi.escape(get_help_url(req)),
 
96
             cgi.escape(util.make_path('logout'))))
83
97
    else:
84
98
        req.write('  <p class="userhello">Not logged in.</p>')
85
99
 
115
129
        help_path = 'help'
116
130
    return util.make_path(help_path)
117
131
 
 
132
def get_icon_url(appurl, small=False):
 
133
    """Given an app's url name, gets the URL of the icon image for this app,
 
134
    relative to the site root. Returns None if the app has no icon."""
 
135
    if appurl is None: return None
 
136
    app = conf.apps.app_url[appurl]
 
137
    if small:
 
138
        icon_dir = conf.apps.app_icon_dir_small
 
139
    else:
 
140
        icon_dir = conf.apps.app_icon_dir
 
141
    if app.icon is None: return None
 
142
    return util.make_path(os.path.join(icon_dir, app.icon))
 
143
 
118
144
def print_apps_list(file, thisapp):
119
145
    """Prints all app tabs, as a UL. Prints a list item for each app that has
120
146
    a tab.
122
148
    file: Object with a "write" method - ie. the request object.
123
149
    Reads from: conf
124
150
    """
125
 
    file.write('  <ul class="apptabs">\n')
 
151
    file.write('  <ul id="apptabs">\n')
126
152
 
127
153
    for urlname in conf.apps.apps_in_tabs:
128
154
        app = conf.apps.app_url[urlname]
132
158
            li_attr = ''
133
159
        file.write('    <li%s>' % li_attr)
134
160
        if app.icon:
135
 
            file.write('<img src="%s" alt="" /> ' %
136
 
                util.make_path(os.path.join(conf.apps.app_icon_dir,
137
 
                app.icon)))
 
161
            file.write('<img src="%s" alt="" /> '
 
162
                % cgi.escape(get_icon_url(urlname)))
138
163
        file.write('<a href="%s">%s</a></li>\n'
139
 
            % (util.make_path(urlname), app.name))
 
164
            % (cgi.escape(util.make_path(urlname)), cgi.escape(app.name)))
140
165
 
141
166
    file.write('  </ul>\n')