RLG-Web: add user registration

Update the server and client sides of RLG-Web to make use of the new
registration feature of sqlickrypt.
This commit is contained in:
John "Elwin" Edwards 2012-05-22 20:54:33 -07:00
parent dfbd2a71d0
commit e36f058daf
4 changed files with 130 additions and 4 deletions

View file

@ -320,6 +320,7 @@ function setup() {
keyHexCodes.init();
termemu.init("termwrap", 24, 80);
setTitle("Not connected.");
setmode("login");
return;
}
@ -364,7 +365,8 @@ function formlogin(ev) {
termemu.resize(reply.h, reply.w);
setTitle("Playing as " + loginmsg["name"]);
debug(1, "Logged in with id " + termemu.sessid);
document.getElementById("loginform").style.display = "none";
//document.getElementById("loginform").style.display = "none";
setmode("play");
getData();
}
else if (reply.t == 'E') {
@ -378,6 +380,36 @@ function formlogin(ev) {
return;
}
function formreg(ev) {
ev.preventDefault();
if (termemu.sessid != null)
return;
var regmsg = {};
regmsg["name"] = document.getElementById("regin_name").value;
regmsg["pw"] = document.getElementById("regin_pw").value;
regmsg["email"] = document.getElementById("regin_email").value;
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState != 4 || req.status != 200)
return;
var reply = JSON.parse(req.responseText);
if (reply.t == 'r') {
/* Success */
debug(1, "Registered account: " + reply.d);
setmode("login");
}
else if (reply.t == 'E') {
debug(1, "Could not register: " + reply.s);
document.getElementById("regin_name").value = "";
document.getElementById("regin_pw").value = "";
document.getElementById("regin_email").value = "";
}
};
req.open('POST', '/addacct', true);
req.send(JSON.stringify(regmsg));
return;
}
function logout() {
if (termemu.sessid == null)
return;
@ -386,7 +418,8 @@ function logout() {
nsend = 0;
nrecv = 0;
msgQ = [];
document.getElementById("loginform").style.display = "block";
//document.getElementById("loginform").style.display = "block";
setform("login");
return;
}
@ -403,6 +436,26 @@ function stop() {
return;
}
function setmode(mode, ev) {
if (ev)
ev.preventDefault();
if (mode == "play") {
document.getElementById("keyboard").style.display = "block";
document.getElementById("login").style.display = "none";
document.getElementById("register").style.display = "none";
}
else if (mode == "login") {
document.getElementById("keyboard").style.display = "none";
document.getElementById("login").style.display = "block";
document.getElementById("register").style.display = "none";
}
else if (mode == "register") {
document.getElementById("keyboard").style.display = "none";
document.getElementById("login").style.display = "none";
document.getElementById("register").style.display = "block";
}
}
function debug(level, msg) {
if (level < debugSuppress)
return;