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 header("Pragma: no-cache"); // HTTP/1.0
} }
function format_warning($msg) { function format_warning($msg, $id = "") {
return "<div class=\"warning\"> return "<div class=\"warning\" id=\"$id\">
<img src=\"images/sign_excl.png\">$msg</div>"; <img src=\"images/sign_excl.png\">$msg</div>";
} }

View File

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

View File

@ -132,16 +132,23 @@ function notify_callback() {
function changepass_callback() { function changepass_callback() {
if (xmlhttp.readyState == 4) { 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();
if (xmlhttp.responseText.indexOf("ERROR: ") == 0) { }
notify_error(xmlhttp.responseText.replace("ERROR: ", "")); } catch (e) {
} else { exception_error("changepass_callback", e);
notify_info(xmlhttp.responseText); }
}
document.forms['change_pass_form'].reset();
}
} }
function updateFeedList(sort_key) { function updateFeedList(sort_key) {
@ -1623,3 +1630,28 @@ function changeUserPassword() {
return false; 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;
}