ajaxify change email form

This commit is contained in:
Andrew Dolgov 2007-03-02 22:10:11 +01:00
parent e6312f6c97
commit 42395d2874
3 changed files with 60 additions and 26 deletions

View File

@ -3174,8 +3174,8 @@
header("Pragma: no-cache"); // HTTP/1.0
}
function format_warning($msg) {
return "<div class=\"warning\">
function format_warning($msg, $id = "") {
return "<div class=\"warning\" id=\"$id\">
<img src=\"images/sign_excl.png\">$msg</div>";
}

View File

@ -55,9 +55,8 @@
}
return;
}
if ($subop == "Save configuration") {
} else if ($subop == "Save configuration") {
$_SESSION["prefs_op_result"] = "save-config";
@ -113,17 +112,17 @@
print "Unknown option: $pref_name";
}
} else if ($subop == "Change e-mail") {
} else if ($subop == "change-email") {
$email = db_escape_string($_GET["email"]);
$email = db_escape_string($_POST["email"]);
$active_uid = $_SESSION["uid"];
if ($email) {
db_query($link, "UPDATE ttrss_users SET email = '$email'
WHERE id = '$active_uid'");
}
return prefs_js_redirect();
print "E-mail has been changed.";
return;
} else if ($subop == "Reset to defaults") {
@ -181,7 +180,8 @@
pwd_hash = 'SHA1:".sha1("password")."')");
if (db_num_rows($result) != 0) {
print format_warning("Your password is at default value, please change it.");
print format_warning("Your password is at default value,
please change it.", "default_pass_warning");
}
/* if ($_SESSION["pwd_change_result"] == "failed") {
@ -204,7 +204,7 @@
$_SESSION["prefs_op_result"] = "";
print "<form action=\"backend.php\" method=\"GET\">";
print "<form onsubmit='return false' id='change_email_form'>";
print "<table width=\"100%\" class=\"prefPrefsList\">";
print "<tr><td colspan='3'><h3>Personal data</h3></tr></td>";
@ -216,17 +216,19 @@
print "<tr><td width=\"40%\">E-mail</td>";
print "<td><input class=\"editbox\" name=\"email\"
onkeypress=\"return filterCR(event, changeUserEmail)\"
value=\"$email\"></td></tr>";
print "</table>";
print "<input type=\"hidden\" name=\"op\" value=\"pref-prefs\">";
print "<p><input class=\"button\" type=\"submit\"
value=\"Change e-mail\" name=\"subop\">";
print "<input type=\"hidden\" name=\"subop\" value=\"change-email\">";
print "</form>";
print "<p><input class=\"button\" type=\"submit\"
onclick=\"return changeUserEmail()\" value=\"Change e-mail\">";
print "<form onsubmit=\"return false\"
name=\"change_pass_form\" id=\"change_pass_form\">";

View File

@ -132,15 +132,22 @@ function notify_callback() {
function changepass_callback() {
try {
if (xmlhttp.readyState == 4) {
if (xmlhttp.responseText.indexOf("ERROR: ") == 0) {
notify_error(xmlhttp.responseText.replace("ERROR: ", ""));
} else {
notify_info(xmlhttp.responseText);
var warn = document.getElementById("default_pass_warning");
if (warn) warn.style.display = "none";
}
document.forms['change_pass_form'].reset();
}
} catch (e) {
exception_error("changepass_callback", e);
}
}
@ -1623,3 +1630,28 @@ function changeUserPassword() {
return false;
}
function changeUserEmail() {
try {
if (!xmlhttp_ready(xmlhttp)) {
printLockingError();
return false;
}
var query = Form.serialize("change_email_form");
notify_progress("Trying to change e-mail...");
xmlhttp.open("POST", "backend.php", true);
xmlhttp.onreadystatechange=notify_callback;
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send(query);
} catch (e) {
exception_error("changeUserPassword", e);
}
return false;
}