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

« back to all changes in this revision

Viewing changes to www/dispatch/html.py

  • Committer: dcoles
  • Date: 2008-07-03 04:43:49 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:805
Setup: Now you can supply a --mirror or -m option to `./setup build` to specify 
which mirror to use to build the jail from. Default is still AARNET, but at 
least is can be changed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
# Does not include the login page. See login.py.
25
25
 
26
26
import cgi
 
27
import urllib
27
28
import os.path
28
29
 
29
30
import conf
52
53
""" % (cgi.escape(titlepart), cgi.escape(req.content_type)))
53
54
    # Write inline JavaScript which gives the client code access to certain
54
55
    # server-side variables.
55
 
    if req.username:
56
 
        username = repr(req.username)
 
56
    if req.user:
 
57
        username = repr(req.user.login)
57
58
    else:
58
59
        username = "null"
59
60
    req.write("""  <script type="text/javascript">
60
61
    root_dir = %s;
 
62
    public_host = %s;
61
63
    username = %s;
62
64
  </script>
63
 
""" % (repr(conf.root_dir), username))
64
 
    iconurl = get_icon_url(req.app)
 
65
""" % (repr(conf.root_dir), repr(conf.public_host), username))
 
66
    iconurl = get_icon_url(req.app, small=True)
65
67
    if iconurl:
66
68
        req.write("""  <link rel="shortcut icon" href="%s" />
67
69
""" % cgi.escape(iconurl))
86
88
  <h2>Informatics Virtual Learning Environment</h2>
87
89
""")
88
90
 
89
 
    if req.username:
 
91
    if req.user:
90
92
        # Get the user's nickname from the request session
91
 
        nickname = req.get_session()['nick']
92
 
        req.write('  <p class="userhello">%s (<span '
93
 
            'class="username">%s</span>) |\n'
 
93
        nickname = req.user.nick
 
94
        req.write('  <p class="userhello"><span id="usernick">%s</span> '
 
95
            '(<span class="username">%s</span>) |\n'
 
96
            '    <a href="%s">Settings</a> |\n'
94
97
            '    <a href="%s">Help</a> |\n'
95
 
            '    <a href="%s">Logout</a>\n'
 
98
            '    <a href="%s">Sign out</a>\n'
96
99
            '  </p>\n' %
97
 
            (cgi.escape(nickname), cgi.escape(req.username),
 
100
            (cgi.escape(nickname), cgi.escape(req.user.login),
 
101
             cgi.escape(util.make_path('settings')),
98
102
             cgi.escape(get_help_url(req)),
99
103
             cgi.escape(util.make_path('logout'))))
100
104
    else:
106
110
    # If the "debuginfo" app is installed, display a warning to the admin to
107
111
    # make sure it is removed in production.
108
112
    if "debuginfo" in conf.apps.app_url:
109
 
        req.write("  <p><small>Warning: debuginfo is enabled. Remove this "
110
 
            "app from conf.apps.app_url when placed into production."
111
 
            "</small></p>\n")
 
113
        req.write("  <p><small>Warning: debuginfo is enabled. Set "
 
114
            "enable_debuginfo = False in lib/conf/apps.py, when placing IVLE "
 
115
            "into production.</small></p>\n")
112
116
 
113
117
    # If req has a "no_agreement" attribute, then it is because the user has
114
118
    # not signed the agreement; therefore we are displaying the TOS page.
115
119
    # Do not show apps (see dispatch.login).
116
 
    if req.username and not hasattr(req, 'no_agreement'):
 
120
    if req.user and not req.user.state == 'no_agreement':
117
121
        # Only print app tabs if logged in
118
122
        print_apps_list(req, req.app)
119
123
    req.write('</div>\n<div id="ivlebody">\n')
143
147
    """Given an app's url name, gets the URL of the icon image for this app,
144
148
    relative to the site root. Returns None if the app has no icon."""
145
149
    if appurl is None: return None
146
 
    app = conf.apps.app_url[appurl]
 
150
    try:
 
151
        app = conf.apps.app_url[appurl]
 
152
    except KeyError:
 
153
        # Due to navigating to a bad app
 
154
        return None
147
155
    if small:
148
156
        icon_dir = conf.apps.app_icon_dir_small
149
157
    else:
169
177
        file.write('    <li%s>' % li_attr)
170
178
        if app.icon:
171
179
            file.write('<img src="%s" alt="" /> '
172
 
                % cgi.escape(get_icon_url(urlname)))
173
 
        file.write('<a href="%s">%s</a></li>\n'
174
 
            % (cgi.escape(util.make_path(urlname)), cgi.escape(app.name)))
 
180
                % urllib.quote(get_icon_url(urlname)))
 
181
        file.write('<a href="%s" title="%s">%s</a></li>\n'
 
182
            % (urllib.quote(util.make_path(urlname)), cgi.escape(app.desc),
 
183
                cgi.escape(app.name)))
175
184
 
176
185
    file.write('  </ul>\n')