1
/* IVLE - Informatics Virtual Learning Environment
2
* Copyright (C) 2007-2008 The University of Melbourne
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.
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.
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
18
* Module: Terms of Service
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).
27
/* The user must send this declaration message to ensure they acknowledge the
29
* (This is the exact same string as in userservice).
31
USER_DECLARATION = {"declaration":
32
"I accept the IVLE Terms of Service"};
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
40
function make_dots_anim()
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);
48
function updateDots(text)
56
function accept_license()
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.
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.
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,
78
handle_accept_response(xhr)
81
function handle_accept_response(xhr)
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()
90
function decline_license()
92
/* Redirect to the logout page */
93
window.location.href = app_path("logout");