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

« back to all changes in this revision

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

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
/* 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 = window.location.href;
 
106
    }
 
107
}
 
108
 
 
109
function decline_license()
 
110
{
 
111
    /* Redirect to the logout page */
 
112
    window.location.href = app_path("logout");
 
113
}