parent
d786fcde95
commit
61d61848a4
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
function admin_active() {
|
||||
$msg = "";
|
||||
$search = "";
|
||||
$count = 0;
|
||||
$limit = "";
|
||||
$set_active = "";
|
||||
if (isset ($_REQUEST['search']))
|
||||
$search = strip_request_item('search');
|
||||
|
||||
if (isset ($_REQUEST['set_active'])) {
|
||||
$ok = true;
|
||||
|
||||
if (isset ($_REQUEST['count']) && preg_match("/^[0-9]+$/", $_REQUEST['count']))
|
||||
$count = strip_request_item('count');
|
||||
else {
|
||||
$ok = false;
|
||||
$msg .= error("Please enter a number of angels to be marked as active.");
|
||||
}
|
||||
|
||||
if ($ok)
|
||||
$limit = " LIMIT " . $count;
|
||||
if (isset ($_REQUEST['ack'])) {
|
||||
sql_query("UPDATE `User` SET `Aktiv` = 0 WHERE `Tshirt` = 0");
|
||||
$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);
|
||||
foreach ($users as $usr)
|
||||
sql_query("UPDATE `User` SET `Aktiv` = 1 WHERE `UID`=" . sql_escape($usr['UID']));
|
||||
|
||||
$limit = "";
|
||||
$msg = success("Marked angels.");
|
||||
} else {
|
||||
$set_active = '<a href="' . page_link_to('admin_active') . '&serach=' . $search . '">« back</a> | <a href="' . page_link_to('admin_active') . '&search=' . $search . '&count=' . $count . '&set_active&ack">apply</a>';
|
||||
}
|
||||
}
|
||||
|
||||
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 .= '<tr>';
|
||||
$table .= '<td>' . $usr['Nick'] . '</td>';
|
||||
$table .= '<td>' . $usr['shift_count'] . '</td>';
|
||||
|
||||
if ($usr['shift_count'] == 0)
|
||||
$table .= '<td>-</td>';
|
||||
else
|
||||
$table .= '<td>' . round($usr['shift_length'] / 60) . ' min (' . round($usr['shift_length'] / 3600) . ' h)</td>';
|
||||
|
||||
if ($usr['Aktiv'] == 1)
|
||||
$table .= '<td>yes</td>';
|
||||
else
|
||||
$table .= '<td></td>';
|
||||
if ($usr['Tshirt'] == 1)
|
||||
$table .= '<td>yes</td>';
|
||||
else
|
||||
$table .= '<td></td>';
|
||||
|
||||
$actions = array ();
|
||||
if ($usr['Aktiv'] == 0)
|
||||
$actions[] = '<a href="' . page_link_to('admin_active') . '&active=' . $usr['UID'] . '&search=' . $search . '">set active</a>';
|
||||
if ($usr['Aktiv'] == 1 && $usr['Tshirt'] == 0) {
|
||||
$actions[] = '<a href="' . page_link_to('admin_active') . '&not_active=' . $usr['UID'] . '&search=' . $search . '">remove active</a>';
|
||||
$actions[] = '<a href="' . page_link_to('admin_active') . '&tshirt=' . $usr['UID'] . '&search=' . $search . '">got t-shirt</a>';
|
||||
}
|
||||
if ($usr['Tshirt'] == 1)
|
||||
$actions[] = '<a href="' . page_link_to('admin_active') . '&not_tshirt=' . $usr['UID'] . '&search=' . $search . '">remove t-shirt</a>';
|
||||
|
||||
$table .= '<td>' . join(' | ', $actions) . '</td>';
|
||||
|
||||
$table .= '</tr>';
|
||||
}
|
||||
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')
|
||||
));
|
||||
}
|
||||
?>
|
|
@ -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",
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
<form action="%link%" method="post">
|
||||
<p>
|
||||
Search Angel: <input type="text" name="search" value="%search%" /><input type="submit" name="submit" value="Search" />
|
||||
</p>
|
||||
<p>
|
||||
Mark <input type="text" name="count" value="%count%" style="width: 30px;"/>most working angels as active <input type="submit" name="set_active" value="Preview" />
|
||||
</p>
|
||||
<p>
|
||||
%set_active%
|
||||
</p>
|
||||
</form>
|
||||
%msg%
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
Nickname
|
||||
</th>
|
||||
<th>
|
||||
Shifts
|
||||
</th>
|
||||
<th>
|
||||
Length
|
||||
</th>
|
||||
<th>
|
||||
Active?
|
||||
</th>
|
||||
<th>
|
||||
T-shirt?
|
||||
</th>
|
||||
<th>
|
||||
Action
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
%table%
|
||||
</tbody>
|
||||
</table>
|
Loading…
Reference in New Issue