From 2cb44fe51752bece6413d3a4745cfba79df21884 Mon Sep 17 00:00:00 2001 From: Philip Häusler Date: Sun, 20 Dec 2015 10:35:03 +0100 Subject: make angeltype names clickable --- includes/controller/angeltypes_controller.php | 93 +++++++++++++++------------ 1 file changed, 51 insertions(+), 42 deletions(-) (limited to 'includes/controller/angeltypes_controller.php') diff --git a/includes/controller/angeltypes_controller.php b/includes/controller/angeltypes_controller.php index d174b890..16f0a4f2 100644 --- a/includes/controller/angeltypes_controller.php +++ b/includes/controller/angeltypes_controller.php @@ -13,7 +13,7 @@ function angeltypes_title() { function angeltypes_controller() { if (! isset($_REQUEST['action'])) $_REQUEST['action'] = 'list'; - + switch ($_REQUEST['action']) { default: case 'list': @@ -29,22 +29,31 @@ function angeltypes_controller() { } } +/** + * Path to angeltype view. + * + * @param AngelType $angeltype_id + */ +function angeltype_link($angeltype_id) { + return page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype_id; +} + /** * Job description for all angeltypes (public to everyone) */ function angeltypes_about_controller() { global $privileges, $user; - + if (isset($user)) $angeltypes = AngelTypes_with_user($user); else $angeltypes = AngelTypes(); if ($angeltypes === false) engelsystem_error("Unable to load angeltypes."); - + return array( _("Teams/Job description"), - AngelTypes_about_view($angeltypes, isset($user)) + AngelTypes_about_view($angeltypes, isset($user)) ); } @@ -53,29 +62,29 @@ function angeltypes_about_controller() { */ function angeltype_delete_controller() { global $privileges, $user; - + if (! in_array('admin_angel_types', $privileges)) redirect(page_link_to('angeltypes')); - + $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype === false) engelsystem_error("Unable to load angeltype."); if ($angeltype == null) redirect(page_link_to('angeltypes')); - + if (isset($_REQUEST['confirmed'])) { $result = AngelType_delete($angeltype); if ($result === false) engelsystem_error("Unable to delete angeltype."); - - engelsystem_log("Deleted angeltype: " . $angeltype['name']); - success(sprintf(_("Angeltype %s deleted."), $angeltype['name'])); + + engelsystem_log("Deleted angeltype: " . AngelType_name_render($angeltype)); + success(sprintf(_("Angeltype %s deleted."), AngelType_name_render($angeltype))); redirect(page_link_to('angeltypes')); } - + return array( sprintf(_("Delete angeltype %s"), $angeltype['name']), - AngelType_delete_view($angeltype) + AngelType_delete_view($angeltype) ); } @@ -84,35 +93,35 @@ function angeltype_delete_controller() { */ function angeltype_edit_controller() { global $privileges, $user; - + $name = ""; $restricted = false; $description = ""; - + if (isset($_REQUEST['angeltype_id'])) { $angeltype = AngelType($_REQUEST['angeltype_id']); if ($angeltype === false) engelsystem_error("Unable to load angeltype."); if ($angeltype == null) redirect(page_link_to('angeltypes')); - + $name = $angeltype['name']; $restricted = $angeltype['restricted']; $description = $angeltype['description']; - + if (! User_is_AngelType_coordinator($user, $angeltype)) redirect(page_link_to('angeltypes')); } else { if (! in_array('admin_angel_types', $privileges)) redirect(page_link_to('angeltypes')); } - + // In coordinator mode only allow to modify description $coordinator_mode = ! in_array('admin_angel_types', $privileges); - + if (isset($_REQUEST['submit'])) { $ok = true; - + if (! $coordinator_mode) { if (isset($_REQUEST['name'])) { list($valid, $name) = AngelType_validate_name($_REQUEST['name'], $angeltype); @@ -121,13 +130,13 @@ function angeltype_edit_controller() { error(_("Please check the name. Maybe it already exists.")); } } - + $restricted = isset($_REQUEST['restricted']); } - + if (isset($_REQUEST['description'])) $description = strip_request_item_nl('description'); - + if ($ok) { $restricted = $restricted ? 1 : 0; if (isset($angeltype)) { @@ -142,15 +151,15 @@ function angeltype_edit_controller() { engelsystem_error("Unable to create angeltype."); engelsystem_log("Created angeltype: " . $name . ", restricted: " . $restricted); } - + success("Angel type saved."); redirect(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype_id); } } - + return array( sprintf(_("Edit %s"), $name), - AngelType_edit_view($name, $restricted, $description, $coordinator_mode) + AngelType_edit_view($name, $restricted, $description, $coordinator_mode) ); } @@ -159,30 +168,30 @@ function angeltype_edit_controller() { */ 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 === false) engelsystem_error("Unable to load angeltype."); if ($angeltype == null) redirect(page_link_to('angeltypes')); - + $user_angeltype = UserAngelType_by_User_and_AngelType($user, $angeltype); if ($user_angeltype === false) engelsystem_error("Unable to load user angeltype."); - + $members = Users_by_angeltype($angeltype); if ($members === false) engelsystem_error("Unable to load members."); - + return array( 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']) + AngelType_view($angeltype, $members, $user_angeltype, in_array('admin_user_angeltypes', $privileges) || $user_angeltype['coordinator'], in_array('admin_angel_types', $privileges), $user_angeltype['coordinator']) ); } @@ -191,40 +200,40 @@ function angeltype_controller() { */ 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 = array( - button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'],_("view"),"btn-xs") + 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 array( angeltypes_title(), - AngelTypes_list_view($angeltypes, in_array('admin_angel_types', $privileges)) + AngelTypes_list_view($angeltypes, in_array('admin_angel_types', $privileges)) ); } ?> -- cgit v1.2.3-54-g00ecf