From 0ac05d251c0df5fa09a27b7686acc5690b436f31 Mon Sep 17 00:00:00 2001 From: Philip Häusler Date: Sun, 20 Dec 2015 11:36:12 +0100 Subject: #198 fixed: driving license feature completed - integrated into angeltypes --- includes/view/AngelTypes_view.php | 75 ++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 25 deletions(-) (limited to 'includes/view/AngelTypes_view.php') diff --git a/includes/view/AngelTypes_view.php b/includes/view/AngelTypes_view.php index 758d5706..fae52713 100644 --- a/includes/view/AngelTypes_view.php +++ b/includes/view/AngelTypes_view.php @@ -50,7 +50,7 @@ function AngelType_delete_view($angeltype) { )); } -function AngelType_edit_view($name, $restricted, $description, $coordinator_mode) { +function AngelType_edit_view($name, $restricted, $description, $coordinator_mode, $requires_driver_license) { return page_with_title(sprintf(_("Edit %s"), $name), array( buttons(array( button(page_link_to('angeltypes'), _("Angeltypes"), 'back') @@ -59,6 +59,7 @@ function AngelType_edit_view($name, $restricted, $description, $coordinator_mode form(array( $coordinator_mode ? form_info(_("Name"), $name) : form_text('name', _("Name"), $name), $coordinator_mode ? form_info(_("Restricted"), $restricted ? _("Yes") : _("No")) : form_checkbox('restricted', _("Restricted"), $restricted), + $coordinator_mode ? form_info(_("Requires driver license"), $requires_driver_license ? _("Yes") : _("No")) : form_checkbox('requires_driver_license', _("Requires driver license"), $requires_driver_license), form_info("", _("Restricted angel types can only be used by an angel if enabled by an archangel (double opt-in).")), form_textarea('description', _("Description"), $description), form_info("", _("Please use markdown for the description.")), @@ -67,14 +68,20 @@ function AngelType_edit_view($name, $restricted, $description, $coordinator_mode )); } -function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $coordinator) { - $buttons = array( +function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angeltypes, $admin_angeltypes, $coordinator, $user_driver_license, $user) { + $buttons = [ button(page_link_to('angeltypes'), _("Angeltypes"), 'back') - ); + ]; + + if ($angeltype['requires_driver_license']) + $buttons[] = button(user_driver_license_edit_link($user), glyph("road") . _("my driving license")); if ($user_angeltype == null) $buttons[] = button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("join"), 'add'); else { + if ($angeltype['requires_driver_license'] && $user_driver_license == null) + error(_("This angeltype requires a driver license. Please enter your driver license information!")); + if ($angeltype['restricted'] && $user_angeltype['confirm_user_id'] == null) error(sprintf(_("You are unconfirmed for this angeltype. Please go to the introduction for %s to get confirmed."), $angeltype['name'])); $buttons[] = button(page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $user_angeltype['id'], _("leave"), 'cancel'); @@ -94,14 +101,23 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel $parsedown = new Parsedown(); if ($angeltype['description'] != "") $page[] = '
' . $parsedown->parse($angeltype['description']) . '
'; - - // Team-Coordinators list missing $coordinators = array(); $members_confirmed = array(); $members_unconfirmed = array(); foreach ($members as $member) { $member['Nick'] = User_Nick_render($member); + + if ($angeltype['requires_driver_license']) { + $member['wants_to_drive'] = glyph_bool($member['user_id']); + $member['has_car'] = glyph_bool($member['has_car']); + $member['has_license_car'] = glyph_bool($member['has_license_car']); + $member['has_license_3_5t_transporter'] = glyph_bool($member['has_license_3_5t_transporter']); + $member['has_license_7_5t_truck'] = glyph_bool($member['has_license_7_5t_truck']); + $member['has_license_12_5t_truck'] = glyph_bool($member['has_license_12_5t_truck']); + $member['has_license_forklift'] = glyph_bool($member['has_license_forklift']); + } + if ($angeltype['restricted'] && $member['confirm_user_id'] == null) { $member['actions'] = table_buttons([ button(page_link_to('user_angeltypes') . '&action=confirm&user_angeltype_id=' . $member['user_angeltype_id'], _("confirm"), 'btn-xs'), @@ -125,13 +141,30 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel $members_confirmed[] = $member; } } - if (count($coordinators) > 0) { - $page[] = '

' . _("Coordinators") . '

'; - $page[] = table(array( + + $table_headers = [ + 'Nick' => _("Nick"), + 'DECT' => _("DECT"), + 'actions' => '' + ]; + + if ($angeltype['requires_driver_license'] && ($coordinator || $admin_angeltypes)) + $table_headers = [ 'Nick' => _("Nick"), 'DECT' => _("DECT"), - 'actions' => "" - ), $coordinators); + 'wants_to_drive' => _("Driver"), + 'has_car' => _("Has car"), + 'has_license_car' => _("Car"), + 'has_license_3_5t_transporter' => _("3,5t Transporter"), + 'has_license_7_5t_truck' => _("7,5t Truck"), + 'has_license_12_5t_truck' => _("12,5t Truck"), + 'has_license_forklift' => _("Forklift"), + 'actions' => '' + ]; + + if (count($coordinators) > 0) { + $page[] = '

' . _("Coordinators") . '

'; + $page[] = table($table_headers, $coordinators); } if (count($members_confirmed) > 0) @@ -150,26 +183,18 @@ function AngelType_view($angeltype, $members, $user_angeltype, $admin_user_angel $page[] = '

' . _("Members") . '

'; if ($admin_user_angeltypes) - $page[] = buttons(array( + $page[] = buttons([ button(page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'], _("Add"), 'add') - )); - $page[] = table(array( - 'Nick' => _("Nick"), - 'DECT' => _("DECT"), - 'actions' => "" - ), $members_confirmed); + ]); + $page[] = table($table_headers, $members_confirmed); if ($admin_user_angeltypes && $angeltype['restricted'] && count($members_unconfirmed) > 0) { $page[] = '

' . _("Unconfirmed") . '

'; - $page[] = buttons(array( + $page[] = buttons([ button(page_link_to('user_angeltypes') . '&action=confirm_all&angeltype_id=' . $angeltype['id'], _("confirm all"), 'ok'), button(page_link_to('user_angeltypes') . '&action=delete_all&angeltype_id=' . $angeltype['id'], _("deny all"), 'cancel') - )); - $page[] = table(array( - 'Nick' => _("Nick"), - 'DECT' => _("DECT"), - 'actions' => "" - ), $members_unconfirmed); + ]); + $page[] = table($table_headers, $members_unconfirmed); } return page_with_title(sprintf(_("Team %s"), $angeltype['name']), $page); -- cgit v1.2.3-54-g00ecf