Hide dect, voucher and t-shirt options shown to users when disabled via config

This commit is contained in:
Johannes Rudolph 2022-12-23 04:22:39 +01:00 committed by GitHub
parent 737066414e
commit 92e0b8be65
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 49 additions and 31 deletions

View File

@ -148,7 +148,7 @@ function angeltype_edit_controller()
$angeltype->description = strip_request_item_nl('description', $angeltype->description); $angeltype->description = strip_request_item_nl('description', $angeltype->description);
$angeltype->contact_name = strip_request_item('contact_name', $angeltype->contact_name); $angeltype->contact_name = strip_request_item('contact_name', $angeltype->contact_name);
$angeltype->contact_dect = strip_request_item('contact_dect', $angeltype->contact_dect); $angeltype->contact_dect = strip_request_item('contact_dect', $angeltype->contact_dect) ?: '';
$angeltype->contact_email = strip_request_item('contact_email', $angeltype->contact_email); $angeltype->contact_email = strip_request_item('contact_email', $angeltype->contact_email);
if ($valid) { if ($valid) {

View File

@ -126,7 +126,7 @@ function AngelType_edit_view(AngelType $angeltype, bool $supporter_mode)
__('Primary contact person/desk for user questions.') __('Primary contact person/desk for user questions.')
), ),
form_text('contact_name', __('Name'), $angeltype->contact_name), form_text('contact_name', __('Name'), $angeltype->contact_name),
form_text('contact_dect', __('DECT'), $angeltype->contact_dect), config('enable_dect') ? form_text('contact_dect', __('DECT'), $angeltype->contact_dect) : '',
form_text('contact_email', __('E-Mail'), $angeltype->contact_email), form_text('contact_email', __('E-Mail'), $angeltype->contact_email),
form_submit('submit', __('Save')) form_submit('submit', __('Save'))
]) ])
@ -220,7 +220,9 @@ function AngelType_view_members(AngelType $angeltype, $members, $admin_user_ange
$members_unconfirmed = []; $members_unconfirmed = [];
foreach ($members as $member) { foreach ($members as $member) {
$member->name = User_Nick_render($member) . User_Pronoun_render($member); $member->name = User_Nick_render($member) . User_Pronoun_render($member);
$member['dect'] = $member->contact->dect; if (config('enable_dect')) {
$member['dect'] = $member->contact->dect;
}
if ($angeltype->requires_driver_license) { if ($angeltype->requires_driver_license) {
$member['wants_to_drive'] = icon_bool($member->license->wantsToDrive()); $member['wants_to_drive'] = icon_bool($member->license->wantsToDrive());
$member['has_car'] = icon_bool($member->license->has_car); $member['has_car'] = icon_bool($member->license->has_car);
@ -313,8 +315,13 @@ function AngelType_view_members(AngelType $angeltype, $members, $admin_user_ange
*/ */
function AngelType_view_table_headers(AngelType $angeltype, $supporter, $admin_angeltypes) function AngelType_view_table_headers(AngelType $angeltype, $supporter, $admin_angeltypes)
{ {
$headers = [
'name' => __('Nick'),
'dect' => __('DECT'),
'actions' => ''
];
if ($angeltype->requires_driver_license && ($supporter || $admin_angeltypes)) { if ($angeltype->requires_driver_license && ($supporter || $admin_angeltypes)) {
return [ $headers = [
'name' => __('Nick'), 'name' => __('Nick'),
'dect' => __('DECT'), 'dect' => __('DECT'),
'wants_to_drive' => __('Driver'), 'wants_to_drive' => __('Driver'),
@ -327,11 +334,10 @@ function AngelType_view_table_headers(AngelType $angeltype, $supporter, $admin_a
'actions' => '' 'actions' => ''
]; ];
} }
return [ if (!config('enable_dect')) {
'name' => __('Nick'), unset($headers['dect']);
'dect' => __('DECT'), }
'actions' => '' return $headers;
];
} }
/** /**
@ -498,7 +504,7 @@ function AngelTypes_render_contact_info(AngelType $angeltype)
{ {
$info = [ $info = [
__('Name') => [$angeltype->contact_name, $angeltype->contact_name], __('Name') => [$angeltype->contact_name, $angeltype->contact_name],
__('DECT') => [sprintf('<a href="tel:%s">%1$s</a>', $angeltype->contact_dect), $angeltype->contact_dect], __('DECT') => config('enable_dect') ? [sprintf('<a href="tel:%s">%1$s</a>', $angeltype->contact_dect), $angeltype->contact_dect] : null,
__('E-Mail') => [sprintf('<a href="mailto:%s">%1$s</a>', $angeltype->contact_email), $angeltype->contact_email], __('E-Mail') => [sprintf('<a href="mailto:%s">%1$s</a>', $angeltype->contact_email), $angeltype->contact_email],
]; ];
$contactInfo = []; $contactInfo = [];

View File

@ -91,12 +91,16 @@ function Users_view(
$u['last_name'] = $user->personalData->last_name; $u['last_name'] = $user->personalData->last_name;
$u['dect'] = sprintf('<a href="tel:%s">%1$s</a>', $user->contact->dect); $u['dect'] = sprintf('<a href="tel:%s">%1$s</a>', $user->contact->dect);
$u['arrived'] = icon_bool($user->state->arrived); $u['arrived'] = icon_bool($user->state->arrived);
$u['got_voucher'] = $user->state->got_voucher; if (config('enable_voucher')) {
$u['got_voucher'] = $user->state->got_voucher;
}
$u['freeloads'] = $user->getAttribute('freeloads'); $u['freeloads'] = $user->getAttribute('freeloads');
$u['active'] = icon_bool($user->state->active); $u['active'] = icon_bool($user->state->active);
$u['force_active'] = icon_bool($user->state->force_active); $u['force_active'] = icon_bool($user->state->force_active);
$u['got_shirt'] = icon_bool($user->state->got_shirt); if (config('enable_tshirt_size')) {
$u['shirt_size'] = $user->personalData->shirt_size; $u['got_shirt'] = icon_bool($user->state->got_shirt);
$u['shirt_size'] = $user->personalData->shirt_size;
}
$u['arrival_date'] = $user->personalData->planned_arrival_date $u['arrival_date'] = $user->personalData->planned_arrival_date
? $user->personalData->planned_arrival_date->format(__('Y-m-d')) : ''; ? $user->personalData->planned_arrival_date->format(__('Y-m-d')) : '';
$u['departure_date'] = $user->personalData->planned_departure_date $u['departure_date'] = $user->personalData->planned_departure_date
@ -129,12 +133,18 @@ function Users_view(
$user_table_headers['dect'] = Users_table_header_link('dect', __('DECT'), $order_by); $user_table_headers['dect'] = Users_table_header_link('dect', __('DECT'), $order_by);
} }
$user_table_headers['arrived'] = Users_table_header_link('arrived', __('Arrived'), $order_by); $user_table_headers['arrived'] = Users_table_header_link('arrived', __('Arrived'), $order_by);
$user_table_headers['got_voucher'] = Users_table_header_link('got_voucher', __('Voucher'), $order_by); if (config('enable_voucher')) {
$user_table_headers['got_voucher'] = Users_table_header_link('got_voucher', __('Voucher'), $order_by);
}
$user_table_headers['freeloads'] = Users_table_header_link('freeloads', __('Freeloads'), $order_by); $user_table_headers['freeloads'] = Users_table_header_link('freeloads', __('Freeloads'), $order_by);
$user_table_headers['active'] = Users_table_header_link('active', __('Active'), $order_by); $user_table_headers['active'] = Users_table_header_link('active', __('Active'), $order_by);
$user_table_headers['force_active'] = Users_table_header_link('force_active', __('Forced'), $order_by); $user_table_headers['force_active'] = Users_table_header_link('force_active', __('Forced'), $order_by);
$user_table_headers['got_shirt'] = Users_table_header_link('got_shirt', __('T-Shirt'), $order_by); if (config('enable_tshirt_size')) {
$user_table_headers['shirt_size'] = Users_table_header_link('shirt_size', __('Size'), $order_by); $user_table_headers['got_shirt'] = Users_table_header_link('got_shirt', __('T-Shirt'), $order_by);
}
if (config('enable_tshirt_size')) {
$user_table_headers['shirt_size'] = Users_table_header_link('shirt_size', __('Size'), $order_by);
}
$user_table_headers['arrival_date'] = Users_table_header_link( $user_table_headers['arrival_date'] = Users_table_header_link(
'planned_arrival_date', 'planned_arrival_date',
__('Planned arrival'), __('Planned arrival'),
@ -510,7 +520,7 @@ function User_view(
div('row', [ div('row', [
div('col-md-12', [ div('col-md-12', [
buttons([ buttons([
$auth->can('user.edit.shirt') ? button( $auth->can('user.edit.shirt') && config('enable_tshirt_size') ? button(
url('/admin/user/' . $user_source->id . '/shirt'), url('/admin/user/' . $user_source->id . '/shirt'),
icon('person') . __('Shirt') icon('person') . __('Shirt')
) : '', ) : '',
@ -599,7 +609,7 @@ function User_view(
]), ]),
($its_me || $admin_user_privilege) ? '<h2>' . __('Shifts') . '</h2>' : '', ($its_me || $admin_user_privilege) ? '<h2>' . __('Shifts') . '</h2>' : '',
$myshifts_table, $myshifts_table,
($its_me && $nightShiftsConfig['enabled']) ? info( ($its_me && $nightShiftsConfig['enabled'] && config('enable_tshirt_size')) ? info(
icon('info-circle') . sprintf( icon('info-circle') . sprintf(
__('Your night shifts between %d and %d am count twice.'), __('Your night shifts between %d and %d am count twice.'),
$nightShiftsConfig['start'], $nightShiftsConfig['start'],
@ -705,19 +715,21 @@ function User_view_state_admin($freeloader, $user_source)
. '</span>'; . '</span>';
} }
$voucherCount = $user_source->state->got_voucher; if (config('enable_voucher')) {
$availableCount = $voucherCount + User_get_eligable_voucher_count($user_source); $voucherCount = $user_source->state->got_voucher;
$availableCount = max($voucherCount, $availableCount); $availableCount = $voucherCount + User_get_eligable_voucher_count($user_source);
if ($user_source->state->got_voucher > 0) { $availableCount = max($voucherCount, $availableCount);
$state[] = '<span class="text-success">' if ($user_source->state->got_voucher > 0) {
. icon('valentine') $state[] = '<span class="text-success">'
. __('Got %s of %s vouchers', [$voucherCount, $availableCount]) . icon('valentine')
. '</span>'; . __('Got %s of %s vouchers', [$voucherCount, $availableCount])
} else { . '</span>';
$state[] = '<span class="text-danger">' } else {
. __('Got no vouchers') $state[] = '<span class="text-danger">'
. ($availableCount ? ' (' . __('out of %s', [$availableCount]) . ')' : '') . __('Got no vouchers')
. '</span>'; . ($availableCount ? ' (' . __('out of %s', [$availableCount]) . ')' : '')
. '</span>';
}
} }
return $state; return $state;