diff options
-rw-r--r-- | classes/pref/users.php | 42 | ||||
-rw-r--r-- | js/prefs.js | 70 |
2 files changed, 45 insertions, 67 deletions
diff --git a/classes/pref/users.php b/classes/pref/users.php index 914491e4a..db6dc0d68 100644 --- a/classes/pref/users.php +++ b/classes/pref/users.php @@ -12,7 +12,7 @@ class Pref_Users extends Handler_Protected { } function csrf_ignore($method) { - $csrf_ignored = array("index"); + $csrf_ignored = array("index", "edit"); return array_search($method, $csrf_ignored) !== false; } @@ -102,11 +102,11 @@ class Pref_Users extends Handler_Protected { global $access_level_names; $id = $this->dbh->escape_string($_REQUEST["id"]); - print "<form id=\"user_edit_form\" onsubmit='return false'>"; + print "<form id=\"user_edit_form\" onsubmit='return false' dojoType=\"dijit.form.Form\">"; - print "<input type=\"hidden\" name=\"id\" value=\"$id\">"; - print "<input type=\"hidden\" name=\"op\" value=\"pref-users\">"; - print "<input type=\"hidden\" name=\"method\" value=\"editSave\">"; + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"id\" value=\"$id\">"; + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"op\" value=\"pref-users\">"; + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"method\" value=\"editSave\">"; $result = $this->dbh->query("SELECT * FROM ttrss_users WHERE id = '$id'"); @@ -120,16 +120,14 @@ class Pref_Users extends Handler_Protected { print "<div class=\"dlgSecCont\">"; if ($sel_disabled) { - print "<input type=\"hidden\" name=\"login\" value=\"$login\">"; - print "<input size=\"30\" style=\"font-size : 16px\" - onkeypress=\"return filterCR(event, userEditSave)\" $sel_disabled - value=\"$login\">"; - } else { - print "<input size=\"30\" style=\"font-size : 16px\" - onkeypress=\"return filterCR(event, userEditSave)\" $sel_disabled - name=\"login\" value=\"$login\">"; + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"login\" value=\"$login\">"; } + print "<input size=\"30\" style=\"font-size : 16px\" + dojoType=\"dijit.form.ValidationTextBox\" required=\"1\" + onkeypress=\"return filterCR(event, userEditSave)\" $sel_disabled + name=\"login\" value=\"$login\">"; + print "</div>"; print "<div class=\"dlgSec\">".__("Authentication")."</div>"; @@ -139,17 +137,16 @@ class Pref_Users extends Handler_Protected { if (!$sel_disabled) { print_select_hash("access_level", $access_level, $access_level_names, - $sel_disabled); + "dojoType=\"dijit.form.Select\" $sel_disabled"); } else { print_select_hash("", $access_level, $access_level_names, - $sel_disabled); - print "<input type=\"hidden\" name=\"access_level\" value=\"$access_level\">"; + "dojoType=\"dijit.form.Select\" $sel_disabled"); + print "<input dojoType=\"dijit.form.TextBox\" style=\"display : none\" name=\"access_level\" value=\"$access_level\">"; } - print "<br/>"; + print "<hr/>"; - print __('Change password to') . - " <input type=\"password\" size=\"20\" onkeypress=\"return filterCR(event, userEditSave)\" + print "<input dojoType=\"dijit.form.TextBox\" type=\"password\" size=\"20\" onkeypress=\"return filterCR(event, userEditSave)\" placeholder=\"Change password to\" name=\"password\">"; print "</div>"; @@ -157,8 +154,7 @@ class Pref_Users extends Handler_Protected { print "<div class=\"dlgSec\">".__("Options")."</div>"; print "<div class=\"dlgSecCont\">"; - print __('E-mail: '). - " <input size=\"30\" name=\"email\" onkeypress=\"return filterCR(event, userEditSave)\" + print "<input dojoType=\"dijit.form.TextBox\" size=\"30\" name=\"email\" onkeypress=\"return filterCR(event, userEditSave)\" placeholder=\"Email\" value=\"$email\">"; print "</div>"; @@ -168,9 +164,9 @@ class Pref_Users extends Handler_Protected { print "</form>"; print "<div class=\"dlgButtons\"> - <button onclick=\"return userEditSave()\">". + <button dojoType=\"dijit.form.Button\" type=\"submit\">". __('Save')."</button> - <button onclick=\"return userEditCancel()\">". + <button dojoType=\"dijit.form.Button\" onclick=\"dijit.byId('userEditDlg').hide()\">". __('Cancel')."</button></div>"; return; diff --git a/js/prefs.js b/js/prefs.js index e226459fc..b4d55269b 100644 --- a/js/prefs.js +++ b/js/prefs.js @@ -85,15 +85,34 @@ function editUser(id, event) { try { notify_progress("Loading, please wait..."); - var query = "?op=pref-users&method=edit&id=" + + var query = "backend.php?op=pref-users&method=edit&id=" + param_escape(id); - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - infobox_callback2(transport, __("User Editor")); - document.forms['user_edit_form'].login.focus(); - } }); + if (dijit.byId("userEditDlg")) + dijit.byId("userEditDlg").destroyRecursive(); + + dialog = new dijit.Dialog({ + id: "userEditDlg", + title: __("User Editor"), + style: "width: 600px", + execute: function() { + if (this.validate()) { + + notify_progress("Saving data...", true); + + var query = dojo.formToQuery("user_edit_form"); + + new Ajax.Request("backend.php", { + parameters: query, + onComplete: function(transport) { + dialog.hide(); + updateUsersList(); + }}); + } + }, + href: query}); + + dialog.show(); } catch (e) { exception_error("editUser", e); @@ -463,43 +482,6 @@ function purgeSelectedFeeds() { return false; } -function userEditCancel() { - closeInfoBox(); - return false; -} - -function userEditSave() { - - try { - - var login = document.forms["user_edit_form"].login.value; - - if (login.length == 0) { - alert(__("Login field cannot be blank.")); - return; - } - - notify_progress("Saving user..."); - - closeInfoBox(); - - var query = Form.serialize("user_edit_form"); - - new Ajax.Request("backend.php", { - parameters: query, - onComplete: function(transport) { - updateUsersList(); - } }); - - } catch (e) { - exception_error("userEditSave", e); - } - - return false; - -} - - function editSelectedUser() { var rows = getSelectedUsers(); |