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
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")
77
function handle_accept_response(xhr)
80
var tos_acceptbuttons = document.getElementById("tos_acceptbuttons");
81
dom_removechildren(tos_acceptbuttons);
85
response = JSON.parse(xhr.responseText);
89
response = {'response': 'parse-failure'};
92
if (response.response == 'usrmgt-failure')
94
tos_acceptbuttons.appendChild(dom_make_text_elem("p",
95
"Error connecting to User Management server. Please try again later."));
97
else if (response.response == 'parse-failure')
99
tos_acceptbuttons.appendChild(dom_make_text_elem("p",
100
"Error connecting to server. Please try again later. "));
102
else if (response.response == 'error')
104
tos_acceptbuttons.appendChild(dom_make_text_elem("p",
105
"Error activating user: " + response.message));
109
/* Refresh the page; as the user is now (apparently) logged in */
110
window.location.href = parse_url(window.location.href).args["url"] || "/";
114
function decline_license()
116
/* Redirect to the logout page */
117
window.location.href = app_path("+logout");