summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2007-03-02 22:10:11 +0100
committerAndrew Dolgov <[email protected]>2007-03-02 22:10:11 +0100
commit42395d28746c8f6d7493234b1faae2910de5eddb (patch)
treeeb47cac9fef325b0266d34b890a554eb362f80bb
parente6312f6c977eb1a9572f12ed3868055b3a79cdfc (diff)
ajaxify change email form
-rw-r--r--functions.php4
-rw-r--r--modules/pref-prefs.php32
-rw-r--r--prefs.js50
3 files changed, 60 insertions, 26 deletions
diff --git a/functions.php b/functions.php
index 973374701..6a4d635b8 100644
--- a/functions.php
+++ b/functions.php
@@ -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>";
}
diff --git a/modules/pref-prefs.php b/modules/pref-prefs.php
index 2185646af..047fb1865 100644
--- a/modules/pref-prefs.php
+++ b/modules/pref-prefs.php
@@ -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();
+ db_query($link, "UPDATE ttrss_users SET email = '$email'
+ WHERE id = '$active_uid'");
+
+ 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\">";
diff --git a/prefs.js b/prefs.js
index 6256f71bf..25f290c76 100644
--- a/prefs.js
+++ b/prefs.js
@@ -132,16 +132,23 @@ function notify_callback() {
function changepass_callback() {
- if (xmlhttp.readyState == 4) {
-
- if (xmlhttp.responseText.indexOf("ERROR: ") == 0) {
- notify_error(xmlhttp.responseText.replace("ERROR: ", ""));
- } else {
- notify_info(xmlhttp.responseText);
- }
+ 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();
- document.forms['change_pass_form'].reset();
- }
+ }
+ } catch (e) {
+ exception_error("changepass_callback", e);
+ }
}
function updateFeedList(sort_key) {
@@ -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;
+
+}