diff options
Diffstat (limited to 'includes/controller')
-rw-r--r-- | includes/controller/angeltypes_controller.php | 6 | ||||
-rw-r--r-- | includes/controller/user_driver_licenses_controller.php | 118 |
2 files changed, 118 insertions, 6 deletions
diff --git a/includes/controller/angeltypes_controller.php b/includes/controller/angeltypes_controller.php index 44427f5b..d174b890 100644 --- a/includes/controller/angeltypes_controller.php +++ b/includes/controller/angeltypes_controller.php @@ -202,24 +202,18 @@ function angeltypes_list_controller() { foreach ($angeltypes as &$angeltype) { $actions = array( button(page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'],_("view"),"btn-xs") - //'<a class="view btn btn-default" href="' . page_link_to('angeltypes') . '&action=view&angeltype_id=' . $angeltype['id'] . '">' . _("view") . '</a>' ); 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"); - - //$actions[] = '<a class="edit" href="' . page_link_to('angeltypes') . '&action=edit&angeltype_id=' . $angeltype['id'] . '">' . _("edit") . '</a>'; - //$actions[] = '<a class="delete" href="' . page_link_to('angeltypes') . '&action=delete&angeltype_id=' . $angeltype['id'] . '">' . _("delete") . '</a>'; } $angeltype['membership'] = AngelType_render_membership($angeltype); if ($angeltype['user_angeltype_id'] != null) { - //$actions[] = '<a class="cancel" href="' . page_link_to('user_angeltypes') . '&action=delete&user_angeltype_id=' . $angeltype['user_angeltype_id'] . '">' . _("leave") . '</a>'; $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"); - //$actions[] = '<a class="add" href="' . page_link_to('user_angeltypes') . '&action=add&angeltype_id=' . $angeltype['id'] . '">' . _("join") . '</a>'; } $angeltype['restricted'] = $angeltype['restricted'] ? glyph('lock') : ''; diff --git a/includes/controller/user_driver_licenses_controller.php b/includes/controller/user_driver_licenses_controller.php new file mode 100644 index 00000000..b18a78b6 --- /dev/null +++ b/includes/controller/user_driver_licenses_controller.php @@ -0,0 +1,118 @@ +<?php + +/** + * Route user driver licenses actions. + */ +function user_driver_licenses_controller() { + global $privileges, $user; + + if (! isset($user)) + redirect(page_link_to('')); + + if (! isset($_REQUEST['action'])) + $_REQUEST['action'] = 'edit'; + + switch ($_REQUEST['action']) { + default: + case 'edit': + return user_driver_license_edit_controller(); + } +} + +/** + * Link to user driver license edit page for given user. + * + * @param User $user + */ +function user_driver_license_edit_link($user = null) { + if ($user == null) + return page_link_to('user_driver_licenses'); + return page_link_to('user_driver_licenses') . '&user_id=' . $user['UID']; +} + +/** + * Edit a users driver license information. + */ +function user_driver_license_edit_controller() { + global $privileges, $user; + + if (isset($_REQUEST['user_id'])) { + $user_source = User($_REQUEST['user_id']); + if ($user_source === false) + engelsystem_error('Unable to load angeltype.'); + if ($user_source == null) + redirect(user_driver_license_edit_link()); + + // only privilege admin_user can edit other users driver license information + if ($user['UID'] != $user_source['UID'] && ! in_array('admin_user', $privileges)) + redirect(user_driver_license_edit_link()); + } else { + $user_source = $user; + } + + $wants_to_drive = false; + $has_car = false; + $has_license_car = false; + $has_license_3_5t_transporter = false; + $has_license_7_5t_truck = false; + $has_license_12_5t_truck = false; + $has_license_forklift = false; + + $user_driver_license = UserDriverLicense($user_source['UID']); + if ($user_driver_license === false) + engelsystem_error('Unable to load user driver license.'); + if ($user_driver_license != null) { + $wants_to_drive = true; + $has_car = $user_driver_license['has_car']; + $has_license_car = $user_driver_license['has_license_car']; + $has_license_3_5t_transporter = $user_driver_license['has_license_3_5t_transporter']; + $has_license_7_5t_truck = $user_driver_license['has_license_7_5t_truck']; + $has_license_12_5t_truck = $user_driver_license['has_license_12_5t_truck']; + $has_license_forklift = $user_driver_license['has_license_forklift']; + } + + if (isset($_REQUEST['submit'])) { + $ok = true; + $wants_to_drive = isset($_REQUEST['wants_to_drive']); + $has_car = isset($_REQUEST['has_car']); + $has_license_car = isset($_REQUEST['has_license_car']); + $has_license_3_5t_transporter = isset($_REQUEST['has_license_3_5t_transporter']); + $has_license_7_5t_truck = isset($_REQUEST['has_license_7_5t_truck']); + $has_license_12_5t_truck = isset($_REQUEST['has_license_12_5t_truck']); + $has_license_forklift = isset($_REQUEST['has_license_forklift']); + + if ($wants_to_drive && ! $has_license_car && ! $has_license_3_5t_transporter && ! $has_license_7_5t_truck && ! $has_license_12_5t_truck && ! $has_license_forklift) { + $ok = false; + error(_("Please select at least one driving license.")); + } + + if ($ok) { + if (! $wants_to_drive && $user_driver_license != null) { + $result = UserDriverLicenses_delete($user_source['UID']); + if ($result === false) + engelsystem_error('Unable to remove user driver license information'); + success(_("Your driver license information has been removed.")); + } else { + if ($wants_to_drive) { + if ($user_driver_license == null) + $result = UserDriverLicenses_create($user_source['UID'], $has_car, $has_license_car, $has_license_3_5t_transporter, $has_license_7_5t_truck, $has_license_12_5t_truck, $has_license_forklift); + else + $result = UserDriverLicenses_update($user_source['UID'], $has_car, $has_license_car, $has_license_3_5t_transporter, $has_license_7_5t_truck, $has_license_12_5t_truck, $has_license_forklift); + + if ($result === false) + engelsystem_error('Unable to save user driver license information.'); + } + success(_("Your driver license information has been saved.")); + } + + redirect(user_link($user_source)); + } + } + + return [ + sprintf(_("Edit %s driving license information"), $user_source['Nick']), + UserDriverLicense_edit_view($user_source, $wants_to_drive, $has_car, $has_license_car, $has_license_3_5t_transporter, $has_license_7_5t_truck, $has_license_12_5t_truck, $has_license_forklift) + ]; +} + +?>
\ No newline at end of file |