ajaxify change email form

master
Andrew Dolgov 18 years ago
parent e6312f6c97
commit 42395d2874

@ -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>";
} }

@ -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'");
}
return prefs_js_redirect(); print "E-mail has been changed.";
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\">";

@ -132,15 +132,22 @@ function notify_callback() {
function changepass_callback() { function changepass_callback() {
try {
if (xmlhttp.readyState == 4) { if (xmlhttp.readyState == 4) {
if (xmlhttp.responseText.indexOf("ERROR: ") == 0) { if (xmlhttp.responseText.indexOf("ERROR: ") == 0) {
notify_error(xmlhttp.responseText.replace("ERROR: ", "")); notify_error(xmlhttp.responseText.replace("ERROR: ", ""));
} else { } else {
notify_info(xmlhttp.responseText); notify_info(xmlhttp.responseText);
var warn = document.getElementById("default_pass_warning");
if (warn) warn.style.display = "none";
} }
document.forms['change_pass_form'].reset(); document.forms['change_pass_form'].reset();
}
} catch (e) {
exception_error("changepass_callback", e);
} }
} }
@ -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;
}

Loading…
Cancel
Save