diff --git a/includes/view/AngelTypes_view.php b/includes/view/AngelTypes_view.php index 10c02745..dbeabe95 100644 --- a/includes/view/AngelTypes_view.php +++ b/includes/view/AngelTypes_view.php @@ -65,7 +65,10 @@ function AngelType_edit_view($name, $restricted, $description, $coordinator_mode ]); } -function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $coordinator, $user_driver_license, $user) { +/** + * Renders the buttons for the angeltype view. + */ +function AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $coordinator, $user_driver_license, $user) { $buttons = [ button(page_link_to('angeltypes'), _("Angeltypes"), 'back') ]; @@ -94,17 +97,15 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel $buttons[] = button(page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'], _("delete"), 'delete'); } - $page = [ - msg(), - buttons($buttons) - ]; - - $page[] = '

' . _("Description") . '

'; - $parsedown = new Parsedown(); - if ($angeltype['description'] != "") { - $page[] = '
' . $parsedown->parse($angeltype['description']) . '
'; - } - + return buttons($buttons); +} + +/** + * Renders and sorts the members of an angeltype into coordinators, members and unconfirmed members. + * + * @return [coordinators, members, unconfirmed members] + */ +function AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes) { $coordinators = []; $members_confirmed = []; $members_unconfirmed = []; @@ -147,14 +148,19 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel } } - $table_headers = [ - 'Nick' => _("Nick"), - 'DECT' => _("DECT"), - 'actions' => '' + return [ + $coordinators, + $members_confirmed, + $members_unconfirmed ]; - +} + +/** + * Creates the needed member table headers according to given rights and settings from the angeltype. + */ +function AngelType_view_table_headers($angeltype, $coordinator, $admin_angeltypes) { if ($angeltype['requires_driver_license'] && ($coordinator || $admin_angeltypes)) { - $table_headers = [ + return [ 'Nick' => _("Nick"), 'DECT' => _("DECT"), 'wants_to_drive' => _("Driver"), @@ -167,6 +173,30 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel 'actions' => '' ]; } + return [ + 'Nick' => _("Nick"), + 'DECT' => _("DECT"), + 'actions' => '' + ]; +} + +/** + * Render an angeltype page containing the member lists. + */ +function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $coordinator, $user_driver_license, $user) { + $page = [ + msg(), + AngelType_view_buttons($angeltype, $user_angeltype, $admin_angeltypes, $coordinator, $user_driver_license, $user) + ]; + + $page[] = '

' . _("Description") . '

'; + $parsedown = new Parsedown(); + if ($angeltype['description'] != "") { + $page[] = '
' . $parsedown->parse($angeltype['description']) . '
'; + } + + list($coordinators, $members_confirmed, $members_unconfirmed) = AngelType_view_members($angeltype, $members, $admin_user_angeltypes, $admin_angeltypes); + $table_headers = AngelType_view_table_headers($angeltype, $coordinator, $admin_angeltypes); if (count($coordinators) > 0) { $page[] = '

' . _("Coordinators") . '

';