getValue(); if (! $result->isValid()) { $valid = false; error(_("Please check the name. Maybe it already exists.")); } } $restricted = isset($_REQUEST['restricted']); $requires_driver_license = isset($_REQUEST['requires_driver_license']); } if (isset($_REQUEST['description'])) { $description = strip_request_item_nl('description'); } if ($valid) { if (isset($angeltype)) { $result = AngelType_update($angeltype['id'], $name, $restricted, $description, $requires_driver_license); if ($result === false) { engelsystem_error("Unable to update angeltype."); } engelsystem_log("Updated angeltype: " . $name . ($restricted ? ", restricted" : "") . ($requires_driver_license ? ", requires driver license" : "")); $angeltype_id = $angeltype['id']; } else { $angeltype_id = AngelType_create($name, $restricted, $description, $requires_driver_license); if ($angeltype_id === false) { engelsystem_error("Unable to create angeltype."); } engelsystem_log("Created angeltype: " . $name . ($restricted ? ", restricted" : "") . ($requires_driver_license ? ", requires driver license" : "")); } success("Angel type saved."); redirect(angeltype_link($angeltype_id)); } } return [ sprintf(_("Edit %s"), $name), AngelType_edit_view($name, $restricted, $description, $coordinator_mode, $requires_driver_license) ]; } /** * View details of a given angeltype. */ function angeltype_controller() { global $privileges, $user; if (! in_array('angeltypes', $privileges)) { redirect('?'); } if (! isset($_REQUEST['angeltype_id'])) { redirect(page_link_to('angeltypes')); } $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype == null) { redirect(page_link_to('angeltypes')); } $user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype); $user_driver_license = UserDriverLicense($user['UID']); if ($user_driver_license === false) { engelsystem_error("Unable to load user driver license."); } $members = Users_by_angeltype($angeltype); if ($members === false) { engelsystem_error("Unable to load members."); } return [ sprintf(_("Team %s"), $angeltype['name']), AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges), $user_angeltype['coordinator'], $user_driver_license, $user) ]; } /** * View a list of all angeltypes. */ function angeltypes_list_controller() { global $privileges, $user; if (! in_array('angeltypes', $privileges)) { redirect('?'); } $angeltypes = AngelTypes_with_user($user); if ($angeltypes === false) { engelsystem_error("Unable to load angeltypes."); } foreach ($angeltypes as &$angeltype) { $actions = [ button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'], _("view"), "btn-xs") ]; if (in_array('admin_angel_types', $privileges)) { $actions[] = button(page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'], _("edit"), "btn-xs"); $actions[] = button(page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'], _("delete"), "btn-xs"); } $angeltype['membership'] = AngelType_render_membership($angeltype); if ($angeltype['user_angeltype_id'] != null) { $actions[] = button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $angeltype['user_angeltype_id'], _("leave"), "btn-xs"); } else { $actions[] = button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("join"), "btn-xs"); } $angeltype['restricted'] = $angeltype['restricted'] ? glyph('lock') : ''; $angeltype['name'] = '' . $angeltype['name'] . ''; $angeltype['actions'] = table_buttons($actions); } return [ angeltypes_title(), AngelTypes_list_view($angeltypes, in_array('admin_angel_types', $privileges)) ]; } /** * Loads an angeltype from given angeltype_id request param. */ function load_angeltype() { if (! isset($_REQUEST['angeltype_id'])) { redirect(page_link_to('angeltypes')); } $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype == null) { error(_("Angeltype doesn't exist.")); redirect(page_link_to('angeltypes')); } return $angeltype; } ?>