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

« back to all changes in this revision

Viewing changes to ivle/webapp/tos/media/tos.js

  • Committer: Matt Giuca
  • Date: 2009-12-15 04:44:25 UTC
  • Revision ID: matt.giuca@gmail.com-20091215044425-uxzmdrd89s2d5ax6
doc: Added dev/faq, with some helpful tips on creating certain objects.

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
    tos_acceptbuttons.appendChild(dom_make_text_elem("p",
 
70
        "IVLE is now setting up your environment. Please wait..."));
 
71
    tos_acceptbuttons.appendChild(make_dots_anim());
 
72
    /* Make the Ajax request */
 
73
    ajax_call(handle_accept_response, "userservice", "activate_me",
 
74
        USER_DECLARATION, "POST")
 
75
}
 
76
 
 
77
function handle_accept_response(xhr)
 
78
{
 
79
    /* TEMP */
 
80
    var tos_acceptbuttons = document.getElementById("tos_acceptbuttons");
 
81
    dom_removechildren(tos_acceptbuttons);
 
82
 
 
83
    try
 
84
    {
 
85
        response = JSON.parse(xhr.responseText);
 
86
    }
 
87
    catch (e)
 
88
    {
 
89
        response = {'response': 'parse-failure'};
 
90
    }
 
91
 
 
92
    if (response.response == 'usrmgt-failure')
 
93
    {
 
94
    tos_acceptbuttons.appendChild(dom_make_text_elem("p",
 
95
        "Error connecting to User Management server. Please try again later.")); 
 
96
    }
 
97
    else if (response.response == 'parse-failure')
 
98
    {
 
99
    tos_acceptbuttons.appendChild(dom_make_text_elem("p",
 
100
        "Error connecting to server. Please try again later. "));
 
101
    }
 
102
    else
 
103
    {
 
104
        /* Refresh the page; as the user is now (apparently) logged in */
 
105
        window.location.href = parse_url(window.location.href).args["url"] || "/";
 
106
    }
 
107
}
 
108
 
 
109
function decline_license()
 
110
{
 
111
    /* Redirect to the logout page */
 
112
    window.location.href = app_path("+logout");
 
113
}