From 61d61848a414dd266f7765fd89b35ce7b07a4e53 Mon Sep 17 00:00:00 2001 From: Philip Häusler Date: Sat, 17 Dec 2011 15:18:13 +0100 Subject: #1, #3, angels active and t-shirts --- includes/pages/admin_active.php | 117 ++++++++++++++++++++++++++++++++++++++++ includes/sys_menu.php | 1 + public/index.php | 4 ++ templates/admin_active.html | 39 ++++++++++++++ 4 files changed, 161 insertions(+) create mode 100644 includes/pages/admin_active.php create mode 100644 templates/admin_active.html diff --git a/includes/pages/admin_active.php b/includes/pages/admin_active.php new file mode 100644 index 00000000..d993395b --- /dev/null +++ b/includes/pages/admin_active.php @@ -0,0 +1,117 @@ +« back | apply'; + } + } + + if (isset ($_REQUEST['active']) && preg_match("/^[0-9]+$/", $_REQUEST['active'])) { + $id = $_REQUEST['active']; + sql_query("UPDATE `User` SET `Aktiv`=1 WHERE `UID`=" . sql_escape($id) . " LIMIT 1"); + $msg = success("Angel has been marked as active."); + } + elseif (isset ($_REQUEST['not_active']) && preg_match("/^[0-9]+$/", $_REQUEST['not_active'])) { + $id = $_REQUEST['not_active']; + sql_query("UPDATE `User` SET `Aktiv`=0 WHERE `UID`=" . sql_escape($id) . " LIMIT 1"); + $msg = success("Angel has been marked as not active."); + } + elseif (isset ($_REQUEST['tshirt']) && preg_match("/^[0-9]+$/", $_REQUEST['tshirt'])) { + $id = $_REQUEST['tshirt']; + sql_query("UPDATE `User` SET `Tshirt`=1 WHERE `UID`=" . sql_escape($id) . " LIMIT 1"); + $msg = success("Angel has got a t-shirt."); + } + elseif (isset ($_REQUEST['not_tshirt']) && preg_match("/^[0-9]+$/", $_REQUEST['not_tshirt'])) { + $id = $_REQUEST['not_tshirt']; + sql_query("UPDATE `User` SET `Tshirt`=0 WHERE `UID`=" . sql_escape($id) . " LIMIT 1"); + $msg = success("Angel has got no t-shirt."); + } + + $users = sql_select("SELECT `User`.*, COUNT(`ShiftEntry`.`id`) as `shift_count`, SUM(`end`-`start`) as `shift_length` FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON `ShiftEntry`.`SID` = `Shifts`.`SID` WHERE `User`.`Gekommen` = 1 GROUP BY `User`.`UID` ORDER BY `shift_length` DESC" . $limit); + + $table = ""; + if ($search == "") + $tokens = array (); + else + $tokens = explode(" ", $search); + foreach ($users as $usr) { + if (count($tokens) > 0) { + $match = false; + $index = join("", $usr); + foreach ($tokens as $t) + if (strstr($index, trim($t))) { + $match = true; + break; + } + if (!$match) + continue; + } + $table .= ''; + $table .= '' . $usr['Nick'] . ''; + $table .= '' . $usr['shift_count'] . ''; + + if ($usr['shift_count'] == 0) + $table .= '-'; + else + $table .= '' . round($usr['shift_length'] / 60) . ' min (' . round($usr['shift_length'] / 3600) . ' h)'; + + if ($usr['Aktiv'] == 1) + $table .= 'yes'; + else + $table .= ''; + if ($usr['Tshirt'] == 1) + $table .= 'yes'; + else + $table .= ''; + + $actions = array (); + if ($usr['Aktiv'] == 0) + $actions[] = 'set active'; + if ($usr['Aktiv'] == 1 && $usr['Tshirt'] == 0) { + $actions[] = 'remove active'; + $actions[] = 'got t-shirt'; + } + if ($usr['Tshirt'] == 1) + $actions[] = 'remove t-shirt'; + + $table .= '' . join(' | ', $actions) . ''; + + $table .= ''; + } + return template_render('../templates/admin_active.html', array ( + 'search' => $search, + 'count' => $count, + 'set_active' => $set_active, + 'table' => $table, + 'msg' => $msg, + 'link' => page_link_to('admin_active') + )); +} +?> \ No newline at end of file diff --git a/includes/sys_menu.php b/includes/sys_menu.php index 00bf4801..ef1998e1 100644 --- a/includes/sys_menu.php +++ b/includes/sys_menu.php @@ -37,6 +37,7 @@ function make_navigation() { // Admin Navigation $menu .= make_navigation_for(Get_Text('admin/'), array ( "admin_arrive", + "admin_active", "admin_user", "admin_usershifts", "admin_questions", diff --git a/public/index.php b/public/index.php index 1a58852b..d1865d4c 100644 --- a/public/index.php +++ b/public/index.php @@ -98,6 +98,10 @@ elseif (in_array($p, $privileges)) { require_once ('includes/pages/admin_arrive.php'); $content = admin_arrive(); } + elseif ($p == "admin_active") { + require_once ('includes/pages/admin_active.php'); + $content = admin_active(); + } elseif ($p == "admin_news") { require_once ('includes/pages/admin_news.php'); $content = admin_news(); diff --git a/templates/admin_active.html b/templates/admin_active.html new file mode 100644 index 00000000..51304334 --- /dev/null +++ b/templates/admin_active.html @@ -0,0 +1,39 @@ +
+

+ Search Angel: +

+

+ Mark most working angels as active +

+

+ %set_active% +

+
+%msg% + + + + + + + + + + + + + %table% + +
+ Nickname + + Shifts + + Length + + Active? + + T-shirt? + + Action +
-- cgit v1.2.3-54-g00ecf