diff --git a/website/public/API/adminChangeUser.php b/website/public/API/adminChangeUser.php index 5c9384c..72acb8c 100644 --- a/website/public/API/adminChangeUser.php +++ b/website/public/API/adminChangeUser.php @@ -6,12 +6,18 @@ require_once ("../../queries/checkInput.php"); require_once ("../../queries/user.php"); require_once ("../../queries/group_page.php"); +$userinfo = getRoleByID($_SESSION['userID'])->fetch(PDO::FETCH_ASSOC); + if (isset($_POST["actions"]) && isset($_POST["userID"])) { changeUserStatusByID($_POST["userID"], $_POST["actions"]); } else if (isset($_POST["actions"]) && isset($_POST["groupID"])) { changeGroupStatusByID($_POST["groupID"], $_POST["actions"]); } else if (isset($_POST["batchactions"]) && isset($_POST["checkbox-user"])) { - changeMultipleUserStatusByID($_POST["checkbox-user"], $_POST["batchactions"]); + if ($userinfo['role'] == 'owner') { + changeMultipleUserStatusByID($_POST["checkbox-user"], $_POST["batchactions"]); + } else { + changeMultipleUserStatusByIDAdmin($_POST["checkbox-user"], $_POST["batchactions"]); + } } else if (isset($_POST["groupbatchactions"]) && isset($_POST["checkbox-group"])) { changeMultipleGroupStatusByID($_POST["checkbox-group"], $_POST["groupbatchactions"]); } diff --git a/website/public/API/adminPageNumber.php b/website/public/API/adminPageNumber.php index a6ac554..c829249 100644 --- a/website/public/API/adminPageNumber.php +++ b/website/public/API/adminPageNumber.php @@ -5,6 +5,7 @@ session_start(); require_once ("../../queries/connect.php"); require_once ("../../queries/checkInput.php"); require_once ("../../queries/user.php"); +require_once ("../../queries/group_page.php"); $search = ""; if (isset($_POST["search"])) { @@ -21,8 +22,17 @@ if (isset($_POST['status'])) { $status = $_POST["status"]; } -if ($pagetype == "user") { - include ("../../views/adminpanel-page.php"); -} else { - echo "Pagenumber failed!"; +$groupstatus = array(); +if (isset($_POST['groupstatus'])) { + $groupstatus = $_POST["groupstatus"]; } + +$entries = 20; +$currentpage = 1; +if (isset($_POST['currentpage'])) { + $currentpage = (int) test_input($_POST["currentpage"]); +} + +$offset = (int) $currentpage * $entries - $entries; + +include ("../../views/adminpanel-page.php"); diff --git a/website/public/API/adminSearchUsers.php b/website/public/API/adminSearchUsers.php index f1d7fc1..58b170a 100644 --- a/website/public/API/adminSearchUsers.php +++ b/website/public/API/adminSearchUsers.php @@ -8,13 +8,11 @@ require_once ("../../queries/user.php"); require_once ("../../queries/group_page.php"); $offset = 0; -if (isset($_POST["n"])) { - $offset = (int) test_input($_POST["n"]); -} $entries = 20; -if (isset($_POST["m"])) { - $entries = (int) test_input($_POST["m"]); +if (isset($_POST["currentpage"])) { + $offset = (int) test_input($_POST["currentpage"]) * $entries - $entries; } + $search = ""; if (isset($_POST["search"])) { $search = test_input($_POST["search"]); diff --git a/website/public/js/admin.js b/website/public/js/admin.js index c43e6ae..7e2efad 100644 --- a/website/public/js/admin.js +++ b/website/public/js/admin.js @@ -1,14 +1,16 @@ $(window).on("load", function () { changeFilter(); + searchFromOne(); + $(".admin-searchinput").keyup(function(){ - adminSearch(); + searchFromOne(); }); // all inputs and labels directly under admin filter and groupfilter $("#admin-filter, #admin-groupfilter > input, label").change(function(){ - adminSearch(); + searchFromOne(); }); $("#pagetype").change(function(){ - adminSearch(); + searchFromOne(); }); /* Update hidden input to be equal to submit pressed, @@ -22,8 +24,6 @@ $(window).on("load", function () { $('#groupbatchinput').prop('value', $(this).prop('value')); console.log($('#batchinput').prop('value')); }); - - adminSearch(); }); function checkAll() { @@ -61,18 +61,23 @@ function changeFilter() { } } +function searchFromOne() { + $('#currentpage').prop('value', 1); + adminSearch(); +} + function adminSearch() { + console.log($("#admin-searchform").serialize()); $.post( "API/adminSearchUsers.php", $("#admin-searchform").serialize() ).done(function (data) { - // console.log(data); $("#usertable").html(data); + updatePageN(); }) } function adminUpdate(form) { - console.log($(form).serialize()); $.post( "API/adminChangeUser.php", $(form).serialize() diff --git a/website/queries/user.php b/website/queries/user.php index 0900d9f..bf20e7d 100644 --- a/website/queries/user.php +++ b/website/queries/user.php @@ -307,6 +307,25 @@ function changeMultipleUserStatusByID($ids, $status) { return $q; } +function changeMultipleUserStatusByIDAdmin($ids, $status) { + $q = prepareQuery(" + UPDATE + `user` + SET + `role` = :status + WHERE + FIND_IN_SET (`userID`, :ids) + AND NOT `role` = 'admin' + AND NOT `role` = 'owner' + "); + + $ids = implode(',', $ids); + $q->bindParam(':ids', $ids); + $q->bindParam(':status', $status); + $q->execute(); + return $q; +} + function selectRandomNotFriendUser($userID) { $stmt = prepareQuery(" SELECT diff --git a/website/views/adminpanel-page.php b/website/views/adminpanel-page.php index a17ce50..cfd73bc 100644 --- a/website/views/adminpanel-page.php +++ b/website/views/adminpanel-page.php @@ -5,27 +5,26 @@ if ($pagetype == "user") { $pages = countSomeGroupsByStatus($search, $groupstatus); } $countresults = $pages->fetchColumn(); -$mincount = min($listm, $countresults); -$minlist = min($listn + 1, $countresults); + ?> - Pagina:
+ } + ?> + \ No newline at end of file diff --git a/website/views/adminpanel.php b/website/views/adminpanel.php index d2b83d2..f1d27a1 100644 --- a/website/views/adminpanel.php +++ b/website/views/adminpanel.php @@ -2,8 +2,6 @@