From e6cb77a07ad5ff4b7d43aa00fdf1fc810bfebf69 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Fri, 18 Nov 2005 10:00:18 +0100 Subject: user manager --- prefs.js | 213 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) (limited to 'prefs.js') diff --git a/prefs.js b/prefs.js index df49f85be..c18e5100f 100644 --- a/prefs.js +++ b/prefs.js @@ -8,6 +8,7 @@ var xmlhttp = false; var active_feed = false; var active_filter = false; var active_label = false; +var active_user = false; var active_tab = false; @@ -95,6 +96,28 @@ function labellist_callback() { } } +function userlist_callback() { + var container = document.getElementById('prefContent'); + if (xmlhttp.readyState == 4) { + container.innerHTML=xmlhttp.responseText; + +/* if (active_filter) { + var row = document.getElementById("ULRR-" + active_label); + if (row) { + if (!row.className.match("Selected")) { + row.className = row.className + "Selected"; + } + } + var checkbox = document.getElementById("LICHK-" + active_label); + + if (checkbox) { + checkbox.checked = true; + } + } */ + p_notify(""); + } +} + function prefslist_callback() { var container = document.getElementById('prefContent'); if (xmlhttp.readyState == 4) { @@ -141,6 +164,23 @@ function updateFeedList() { } +function updateUsersList() { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + +// document.getElementById("prefContent").innerHTML = "Loading feeds, please wait..."; + + p_notify("Loading, please wait..."); + + xmlhttp.open("GET", "backend.php?op=pref-users", true); + xmlhttp.onreadystatechange=userlist_callback; + xmlhttp.send(null); + +} + function toggleSelectRow(sender) { var parent_row = sender.parentNode.parentNode; @@ -233,6 +273,31 @@ function addFeed() { } +function addUser() { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + var sqlexp = document.getElementById("uadd_box"); + + if (sqlexp.value.length == 0) { + notify("Missing user login."); + } else { + notify("Adding user..."); + + xmlhttp.open("GET", "backend.php?op=pref-users&subop=add&login=" + + param_escape(sqlexp.value), true); + + xmlhttp.onreadystatechange=userlist_callback; + xmlhttp.send(null); + + sqlexp.value = ""; + } + +} + function editLabel(id) { if (!xmlhttp_ready(xmlhttp)) { @@ -249,6 +314,22 @@ function editLabel(id) { } +function editUser(id) { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + active_user = id; + + xmlhttp.open("GET", "backend.php?op=pref-users&subop=edit&id=" + + param_escape(id), true); + xmlhttp.onreadystatechange=userlist_callback; + xmlhttp.send(null); + +} + function editFilter(id) { if (!xmlhttp_ready(xmlhttp)) { @@ -299,6 +380,22 @@ function getSelectedLabels() { return sel_rows; } +function getSelectedUsers() { + + var content = document.getElementById("prefUserList"); + + var sel_rows = new Array(); + + for (i = 0; i < content.rows.length; i++) { + if (content.rows[i].className.match("Selected")) { + var row_id = content.rows[i].id.replace("UMRR-", ""); + sel_rows.push(row_id); + } + } + + return sel_rows; +} + function getSelectedFilters() { @@ -405,6 +502,29 @@ function removeSelectedLabels() { } } +function removeSelectedUsers() { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + var sel_rows = getSelectedUsers(); + + if (sel_rows.length > 0) { + + notify("Removing selected users..."); + + xmlhttp.open("GET", "backend.php?op=pref-users&subop=remove&ids="+ + param_escape(sel_rows.toString()), true); + xmlhttp.onreadystatechange=userlist_callback; + xmlhttp.send(null); + + } else { + notify("Please select some labels first."); + } +} + function removeSelectedFilters() { if (!xmlhttp_ready(xmlhttp)) { @@ -535,6 +655,22 @@ function labelEditCancel() { } +function userEditCancel() { + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + active_user = false; + + notify("Operation cancelled."); + + xmlhttp.open("GET", "backend.php?op=pref-users", true); + xmlhttp.onreadystatechange=userlist_callback; + xmlhttp.send(null); + +} function filterEditCancel() { @@ -588,6 +724,40 @@ function labelEditSave() { } +function userEditSave() { + + var user = active_user; + + if (!xmlhttp_ready(xmlhttp)) { + printLockingError(); + return + } + + var login = document.getElementById("iedit_ulogin").value; + var level = document.getElementById("iedit_ulevel").value; + + if (login.length == 0) { + notify("Login cannot be blank."); + return; + } + + if (level.length == 0) { + notify("User level cannot be blank."); + return; + } + + active_user = false; + + xmlhttp.open("GET", "backend.php?op=pref-users&subop=editSave&id=" + + user + "&l=" + param_escape(login) + "&al=" + param_escape(level), + true); + + xmlhttp.onreadystatechange=labellist_callback; + xmlhttp.send(null); + +} + + function filterEditSave() { var filter = active_filter; @@ -638,6 +808,47 @@ function editSelectedLabel() { } +function editSelectedUser() { + var rows = getSelectedUsers(); + + if (rows.length == 0) { + notify("No users are selected."); + return; + } + + if (rows.length > 1) { + notify("Please select one user."); + return; + } + + editUser(rows[0]); +} + +function resetSelectedUserPass() { + var rows = getSelectedUsers(); + + if (rows.length == 0) { + notify("No users are selected."); + return; + } + + if (rows.length > 1) { + notify("Please select one user."); + return; + } + + notify("Resetting password for selected user..."); + + var id = rows[0]; + + xmlhttp.open("GET", "backend.php?op=pref-users&subop=resetPass&id=" + + param_escape(id), true); + xmlhttp.onreadystatechange=userlist_callback; + xmlhttp.send(null); + +} + + function editSelectedFilter() { var rows = getSelectedFilters(); @@ -755,6 +966,8 @@ function selectTab(id) { updateLabelList(); } else if (id == "genConfig") { updatePrefsList(); + } else if (id == "userConfig") { + updateUsersList(); } var tab = document.getElementById(active_tab + "Tab"); -- cgit v1.2.3