diff options
Diffstat (limited to 'includes/pages/admin_arrive.php')
-rw-r--r-- | includes/pages/admin_arrive.php | 405 |
1 files changed, 217 insertions, 188 deletions
diff --git a/includes/pages/admin_arrive.php b/includes/pages/admin_arrive.php index 4a1ee8d7..48e2c91f 100644 --- a/includes/pages/admin_arrive.php +++ b/includes/pages/admin_arrive.php @@ -1,201 +1,230 @@ <?php -function admin_arrive_title() { - return _("Arrived angels"); +use Engelsystem\Database\DB; + +/** + * @return string + */ +function admin_arrive_title() +{ + return _('Arrived angels'); } -function admin_arrive() { - $msg = ""; - $search = ""; - if (isset($_REQUEST['search'])) { - $search = strip_request_item('search'); - } - - if (isset($_REQUEST['reset']) && preg_match("/^[0-9]*$/", $_REQUEST['reset'])) { - $user_id = $_REQUEST['reset']; - $user_source = User($user_id); - if ($user_source != null) { - sql_query("UPDATE `User` SET `Gekommen`=0, `arrival_date` = NULL WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - engelsystem_log("User set to not arrived: " . User_Nick_render($user_source)); - success(_("Reset done. Angel has not arrived.")); - redirect(user_link($user_source)); - } else { - $msg = error(_("Angel not found."), true); - } - } elseif (isset($_REQUEST['arrived']) && preg_match("/^[0-9]*$/", $_REQUEST['arrived'])) { - $user_id = $_REQUEST['arrived']; - $user_source = User($user_id); - if ($user_source != null) { - sql_query("UPDATE `User` SET `Gekommen`=1, `arrival_date`='" . time() . "' WHERE `UID`='" . sql_escape($user_id) . "' LIMIT 1"); - engelsystem_log("User set has arrived: " . User_Nick_render($user_source)); - success(_("Angel has been marked as arrived.")); - redirect(user_link($user_source)); - } else { - $msg = error(_("Angel not found."), true); +/** + * @return string + */ +function admin_arrive() +{ + $msg = ''; + $search = ''; + $request = request(); + + if ($request->has('search')) { + $search = strip_request_item('search'); } - } - - $users = sql_select("SELECT * FROM `User` ORDER BY `Nick`"); - $arrival_count_at_day = []; - $planned_arrival_count_at_day = []; - $planned_departure_count_at_day = []; - $users_matched = []; - if ($search == "") { - $tokens = []; - } else { - $tokens = explode(" ", $search); - } - foreach ($users as $usr) { - if (count($tokens) > 0) { - $match = false; - $index = join(" ", $usr); - foreach ($tokens as $t) { - if (stristr($index, trim($t))) { - $match = true; - break; + + if ($request->has('reset') && preg_match('/^\d+$/', $request->input('reset'))) { + $user_id = $request->input('reset'); + $user_source = User($user_id); + if ($user_source != null) { + DB::update(' + UPDATE `User` + SET `Gekommen`=0, `arrival_date` = NULL + WHERE `UID`=? + LIMIT 1 + ', [$user_id]); + engelsystem_log('User set to not arrived: ' . User_Nick_render($user_source)); + success(_('Reset done. Angel has not arrived.')); + redirect(user_link($user_source)); + } else { + $msg = error(_('Angel not found.'), true); + } + } elseif ($request->has('arrived') && preg_match('/^\d+$/', $request->input('arrived'))) { + $user_id = $request->input('arrived'); + $user_source = User($user_id); + if ($user_source != null) { + DB::update(' + UPDATE `User` + SET `Gekommen`=1, `arrival_date`=? + WHERE `UID`=? + LIMIT 1 + ', [time(), $user_id]); + engelsystem_log('User set has arrived: ' . User_Nick_render($user_source)); + success(_('Angel has been marked as arrived.')); + redirect(user_link($user_source)); + } else { + $msg = error(_('Angel not found.'), true); } - } - if (! $match) { - continue; - } } - - $usr['nick'] = User_Nick_render($usr); - if ($usr['planned_departure_date'] != null) { - $usr['rendered_planned_departure_date'] = date('Y-m-d', $usr['planned_departure_date']); + + $users = DB::select('SELECT * FROM `User` ORDER BY `Nick`'); + $arrival_count_at_day = []; + $planned_arrival_count_at_day = []; + $planned_departure_count_at_day = []; + $users_matched = []; + if ($search == '') { + $tokens = []; } else { - $usr['rendered_planned_departure_date'] = '-'; + $tokens = explode(' ', $search); + } + foreach ($users as $usr) { + if (count($tokens) > 0) { + $match = false; + $index = join(' ', $usr); + foreach ($tokens as $t) { + if (stristr($index, trim($t))) { + $match = true; + break; + } + } + if (!$match) { + continue; + } + } + + $usr['nick'] = User_Nick_render($usr); + if ($usr['planned_departure_date'] != null) { + $usr['rendered_planned_departure_date'] = date('Y-m-d', $usr['planned_departure_date']); + } else { + $usr['rendered_planned_departure_date'] = '-'; + } + $usr['rendered_planned_arrival_date'] = date('Y-m-d', $usr['planned_arrival_date']); + $usr['rendered_arrival_date'] = $usr['arrival_date'] > 0 ? date('Y-m-d', $usr['arrival_date']) : '-'; + $usr['arrived'] = $usr['Gekommen'] == 1 ? _('yes') : ''; + $usr['actions'] = $usr['Gekommen'] == 1 + ? '<a href="' . page_link_to( + 'admin_arrive', + ['reset' => $usr['UID'], 'search' => $search] + ) . '">' . _('reset') . '</a>' + : '<a href="' . page_link_to( + 'admin_arrive', + ['arrived' => $usr['UID'], 'search' => $search] + ) . '">' . _('arrived') . '</a>'; + + if ($usr['arrival_date'] > 0) { + $day = date('Y-m-d', $usr['arrival_date']); + if (!isset($arrival_count_at_day[$day])) { + $arrival_count_at_day[$day] = 0; + } + $arrival_count_at_day[$day]++; + } + + if ($usr['planned_arrival_date'] != null) { + $day = date('Y-m-d', $usr['planned_arrival_date']); + if (!isset($planned_arrival_count_at_day[$day])) { + $planned_arrival_count_at_day[$day] = 0; + } + $planned_arrival_count_at_day[$day]++; + } + + if ($usr['planned_departure_date'] != null && $usr['Gekommen'] == 1) { + $day = date('Y-m-d', $usr['planned_departure_date']); + if (!isset($planned_departure_count_at_day[$day])) { + $planned_departure_count_at_day[$day] = 0; + } + $planned_departure_count_at_day[$day]++; + } + + $users_matched[] = $usr; } - $usr['rendered_planned_arrival_date'] = date('Y-m-d', $usr['planned_arrival_date']); - $usr['rendered_arrival_date'] = $usr['arrival_date'] > 0 ? date('Y-m-d', $usr['arrival_date']) : "-"; - $usr['arrived'] = $usr['Gekommen'] == 1 ? _("yes") : ""; - $usr['actions'] = $usr['Gekommen'] == 1 ? '<a href="' . page_link_to('admin_arrive') . '&reset=' . $usr['UID'] . '&search=' . $search . '">' . _("reset") . '</a>' : '<a href="' . page_link_to('admin_arrive') . '&arrived=' . $usr['UID'] . '&search=' . $search . '">' . _("arrived") . '</a>'; - - if ($usr['arrival_date'] > 0) { - $day = date('Y-m-d', $usr['arrival_date']); - if (! isset($arrival_count_at_day[$day])) { - $arrival_count_at_day[$day] = 0; - } - $arrival_count_at_day[$day] ++; + + ksort($arrival_count_at_day); + ksort($planned_arrival_count_at_day); + ksort($planned_departure_count_at_day); + + $arrival_at_day = []; + $arrival_sum = 0; + foreach ($arrival_count_at_day as $day => $count) { + $arrival_sum += $count; + $arrival_at_day[$day] = [ + 'day' => $day, + 'count' => $count, + 'sum' => $arrival_sum + ]; } - - if ($usr['planned_arrival_date'] != null) { - $day = date('Y-m-d', $usr['planned_arrival_date']); - if (! isset($planned_arrival_count_at_day[$day])) { - $planned_arrival_count_at_day[$day] = 0; - } - $planned_arrival_count_at_day[$day] ++; + + $planned_arrival_at_day = []; + $planned_arrival_sum = 0; + foreach ($planned_arrival_count_at_day as $day => $count) { + $planned_arrival_sum += $count; + $planned_arrival_at_day[$day] = [ + 'day' => $day, + 'count' => $count, + 'sum' => $planned_arrival_sum + ]; } - - if ($usr['planned_departure_date'] != null && $usr['Gekommen'] == 1) { - $day = date('Y-m-d', $usr['planned_departure_date']); - if (! isset($planned_departure_count_at_day[$day])) { - $planned_departure_count_at_day[$day] = 0; - } - $planned_departure_count_at_day[$day] ++; + + $planned_departure_at_day = []; + $planned_departure_sum = 0; + foreach ($planned_departure_count_at_day as $day => $count) { + $planned_departure_sum += $count; + $planned_departure_at_day[$day] = [ + 'day' => $day, + 'count' => $count, + 'sum' => $planned_departure_sum + ]; } - - $users_matched[] = $usr; - } - - ksort($arrival_count_at_day); - ksort($planned_arrival_count_at_day); - ksort($planned_departure_count_at_day); - - $arrival_at_day = []; - $arrival_sum = 0; - foreach ($arrival_count_at_day as $day => $count) { - $arrival_sum += $count; - $arrival_at_day[$day] = [ - 'day' => $day, - 'count' => $count, - 'sum' => $arrival_sum - ]; - } - - $planned_arrival_at_day = []; - $planned_arrival_sum = 0; - foreach ($planned_arrival_count_at_day as $day => $count) { - $planned_arrival_sum += $count; - $planned_arrival_at_day[$day] = [ - 'day' => $day, - 'count' => $count, - 'sum' => $planned_arrival_sum - ]; - } - - $planned_departure_at_day = []; - $planned_departure_sum = 0; - foreach ($planned_departure_count_at_day as $day => $count) { - $planned_departure_sum += $count; - $planned_departure_at_day[$day] = [ - 'day' => $day, - 'count' => $count, - 'sum' => $planned_departure_sum - ]; - } - - return page_with_title(admin_arrive_title(), [ - msg(), - form([ - form_text('search', _("Search"), $search), - form_submit('submit', _("Search")) - ]), - table([ - 'nick' => _("Nickname"), - 'rendered_planned_arrival_date' => _("Planned arrival"), - 'arrived' => _("Arrived?"), - 'rendered_arrival_date' => _("Arrival date"), - 'rendered_planned_departure_date' => _("Planned departure"), - 'actions' => "" - ], $users_matched), - div('row', [ - div('col-md-4', [ - heading(_("Planned arrival statistics"), 2), - bargraph('planned_arrives', 'day', [ - 'count' => _("arrived"), - 'sum' => _("arrived sum") - ], [ - 'count' => '#090', - 'sum' => '#888' - ], $planned_arrival_at_day), - table([ - 'day' => _("Date"), - 'count' => _("Count"), - 'sum' => _("Sum") - ], $planned_arrival_at_day) - ]), - div('col-md-4', [ - heading(_("Arrival statistics"), 2), - bargraph('arrives', 'day', [ - 'count' => _("arrived"), - 'sum' => _("arrived sum") - ], [ - 'count' => '#090', - 'sum' => '#888' - ], $arrival_at_day), - table([ - 'day' => _("Date"), - 'count' => _("Count"), - 'sum' => _("Sum") - ], $arrival_at_day) - ]), - div('col-md-4', [ - heading(_("Planned departure statistics"), 2), - bargraph('planned_departures', 'day', [ - 'count' => _("arrived"), - 'sum' => _("arrived sum") - ], [ - 'count' => '#090', - 'sum' => '#888' - ], $planned_departure_at_day), - table([ - 'day' => _("Date"), - 'count' => _("Count"), - 'sum' => _("Sum") - ], $planned_departure_at_day) - ]) - ]) - ]); + + return page_with_title(admin_arrive_title(), [ + $msg . msg(), + form([ + form_text('search', _('Search'), $search), + form_submit('submit', _('Search')) + ]), + table([ + 'nick' => _('Nickname'), + 'rendered_planned_arrival_date' => _('Planned arrival'), + 'arrived' => _('Arrived?'), + 'rendered_arrival_date' => _('Arrival date'), + 'rendered_planned_departure_date' => _('Planned departure'), + 'actions' => '' + ], $users_matched), + div('row', [ + div('col-md-4', [ + heading(_('Planned arrival statistics'), 2), + bargraph('planned_arrives', 'day', [ + 'count' => _('arrived'), + 'sum' => _('arrived sum') + ], [ + 'count' => '#090', + 'sum' => '#888' + ], $planned_arrival_at_day), + table([ + 'day' => _('Date'), + 'count' => _('Count'), + 'sum' => _('Sum') + ], $planned_arrival_at_day) + ]), + div('col-md-4', [ + heading(_('Arrival statistics'), 2), + bargraph('arrives', 'day', [ + 'count' => _('arrived'), + 'sum' => _('arrived sum') + ], [ + 'count' => '#090', + 'sum' => '#888' + ], $arrival_at_day), + table([ + 'day' => _('Date'), + 'count' => _('Count'), + 'sum' => _('Sum') + ], $arrival_at_day) + ]), + div('col-md-4', [ + heading(_('Planned departure statistics'), 2), + bargraph('planned_departures', 'day', [ + 'count' => _('arrived'), + 'sum' => _('arrived sum') + ], [ + 'count' => '#090', + 'sum' => '#888' + ], $planned_departure_at_day), + table([ + 'day' => _('Date'), + 'count' => _('Count'), + 'sum' => _('Sum') + ], $planned_departure_at_day) + ]) + ]) + ]); } -?> |