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

« back to all changes in this revision

Viewing changes to www/media/common/tos.js

  • Committer: mattgiuca
  • Date: 2008-02-19 00:54:28 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:500
db: get_user and get_users now return User objects instead of dictionaries.
    This is the major part of replacing dicts with User objects, as it
    propagates upwards.

Propagated User objects up through the following modules:
    listusers.py, dispatch.login, authenticate, userservice, forumutil
All of these now treat users as an object rather than a dict.

To save on the size of the changes so far, login still individually copies
fields over to the session (so the session does not yet store a user object;
that is the second part of this refactor).

WOO!! Revision 500 :)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* IVLE - Informatics Virtual Learning Environment
 
2
 * Copyright (C) 2007-2008 The University of Melbourne
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or modify
 
5
 * it under the terms of the GNU General Public License as published by
 
6
 * the Free Software Foundation; either version 2 of the License, or
 
7
 * (at your option) any later version.
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 * GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License
 
15
 * along with this program; if not, write to the Free Software
 
16
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 *
 
18
 * Module: Terms of Service
 
19
 * Author: Matt Giuca
 
20
 * Date: 14/2/2008
 
21
 *
 
22
 * Client handler for the "Terms of Service" page.
 
23
 * (Accepts user's acceptance, and calls usermgt to create the user's jail and
 
24
 * activate their account).
 
25
 */
 
26
 
 
27
/* The user must send this declaration message to ensure they acknowledge the
 
28
 * TOS.
 
29
 * (This is the exact same string as in userservice).
 
30
 */
 
31
USER_DECLARATION = {"declaration":
 
32
                        "I accept the IVLE Terms of Service"};
 
33
 
 
34
/** Creates a "dot dot dot" animation to indicate the client is waiting for a
 
35
 * response from the server.
 
36
 * This will keep animating forever.
 
37
 * Returns a DOM element which will automatically have its contents changed on
 
38
 * intervals.
 
39
 */
 
40
function make_dots_anim()
 
41
{
 
42
    var p = document.createElement("p");
 
43
    anim_dots = document.createTextNode("");
 
44
    p.appendChild(anim_dots);
 
45
    setInterval("anim_dots.data = updateDots(anim_dots.data);", 500);
 
46
    return p;
 
47
}
 
48
function updateDots(text)
 
49
{
 
50
    if (text.length >= 4)
 
51
        return ".";
 
52
    else
 
53
        return text + ".";
 
54
}
 
55
 
 
56
function accept_license()
 
57
{
 
58
    /* The user has accepted the license.
 
59
     * We need to call usermgt to tell it the good news.
 
60
     * It will go away and make the user's jail and activate the account in
 
61
     * the DB, among other things.
 
62
     * This could take awhile (which is why we're using Ajax).
 
63
     * We need to wait on this page for the server's response.
 
64
     */
 
65
    /* Start by clearing away these buttons. */
 
66
    var tos_acceptbuttons = document.getElementById("tos_acceptbuttons");
 
67
    dom_removechildren(tos_acceptbuttons);
 
68
    /* Print a "please wait" message */
 
69
    /* XXX: The current implementation of Ajax is SYNCHRONOUS.
 
70
     * That means we return right away; the animation won't work properly.
 
71
     */
 
72
    tos_acceptbuttons.appendChild(dom_make_text_elem("p",
 
73
        "IVLE is now setting up your environment. Please wait..."));
 
74
    tos_acceptbuttons.appendChild(make_dots_anim());
 
75
    /* Make the Ajax request */
 
76
    var xhr = ajax_call("userservice", "activate_me", USER_DECLARATION,
 
77
        "POST")
 
78
    handle_accept_response(xhr)
 
79
}
 
80
 
 
81
function handle_accept_response(xhr)
 
82
{
 
83
    /* TEMP */
 
84
    var tos_acceptbuttons = document.getElementById("tos_acceptbuttons");
 
85
    dom_removechildren(tos_acceptbuttons);
 
86
    /* Refresh the page; as the user is now (apparently) logged in */
 
87
    window.location.reload()
 
88
}
 
89
 
 
90
function decline_license()
 
91
{
 
92
    /* Redirect to the logout page */
 
93
    window.location.href = app_path("logout");
 
94
}