From fe6fab67be17cd271eb77294f33667a81c7ea156 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Litza Date: Wed, 26 Dec 2012 18:14:23 +0100 Subject: filter free angels by angeltype --- includes/pages/admin_free.php | 20 ++++++++++++++++++-- templates/admin_free.html | 2 +- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/includes/pages/admin_free.php b/includes/pages/admin_free.php index d5e3bd36..d6f4b7a0 100644 --- a/includes/pages/admin_free.php +++ b/includes/pages/admin_free.php @@ -6,7 +6,22 @@ function admin_free() { if (isset ($_REQUEST['search'])) $search = strip_request_item('search'); - $users = sql_select("SELECT `User`.* FROM `User` LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID` AND `Shifts`.`start` < " . sql_escape(time()) . " AND `Shifts`.`end` > " . sql_escape(time()) . ") WHERE `User`.`Gekommen` = 1 AND `Shifts`.`SID` IS NULL GROUP BY `User`.`UID` ORDER BY `Nick`"); + $angeltypesearch = ""; + if (empty ($_REQUEST['angeltype'])) + $_REQUEST['angeltype'] = ''; + else { + $angeltypesearch = " INNER JOIN `UserAngelTypes` ON (`UserAngelTypes`.`angeltype_id` = '" . sql_escape($_REQUEST['angeltype']) . "' AND `UserAngelTypes`.`user_id` = `User`.`UID`"; + if (isset ($_REQUEST['confirmed_only'])) + $angeltypesearch .= " AND `UserAngelTypes`.`confirm_user_id`"; + $angeltypesearch .= ") "; + } + + $angel_types_source = sql_select("SELECT `id`, `name` FROM `AngelTypes` ORDER BY `name`"); + $angel_types = array('' => 'alle Typen'); + foreach ($angel_types_source as $angel_type) + $angel_types[$angel_type['id']] = $angel_type['name']; + + $users = sql_select("SELECT `User`.* FROM `User` ${angeltypesearch} LEFT JOIN `ShiftEntry` ON `User`.`UID` = `ShiftEntry`.`UID` LEFT JOIN `Shifts` ON (`ShiftEntry`.`SID` = `Shifts`.`SID` AND `Shifts`.`start` < " . sql_escape(time()) . " AND `Shifts`.`end` > " . sql_escape(time()) . ") WHERE `User`.`Gekommen` = 1 AND `Shifts`.`SID` IS NULL GROUP BY `User`.`UID` ORDER BY `Nick`"); $table = ""; if ($search == "") @@ -41,8 +56,9 @@ function admin_free() { } return template_render('../templates/admin_free.html', array ( 'search' => $search, + 'angeltypes' => html_select_key('angeltype', 'angeltype', $angel_types, $_REQUEST['angeltype']), 'table' => $table, 'link' => page_link_to('admin_free') )); } -?> \ No newline at end of file +?> diff --git a/templates/admin_free.html b/templates/admin_free.html index 522de12b..35ac1afa 100644 --- a/templates/admin_free.html +++ b/templates/admin_free.html @@ -1,6 +1,6 @@

- Search Angel: + Search Angel: %angeltypes%

-- cgit v1.2.3-54-g00ecf