Use twig to render profile setting page

This commit is contained in:
Igor Scheller 2020-11-24 17:22:52 +01:00
parent 0c3ff73454
commit 27331b4cf6
4 changed files with 90 additions and 82 deletions

View File

@ -4,6 +4,7 @@ use Carbon\Carbon;
use Engelsystem\Models\Room;
use Engelsystem\Models\User\User;
use Engelsystem\Models\Worklog;
use Engelsystem\Renderer\Renderer;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
@ -37,81 +38,84 @@ function User_settings_view(
$enable_dect = config('enable_dect');
$enable_planned_arrival = config('enable_planned_arrival');
return page_with_title(settings_title(), [
msg(),
div('row', [
div('col-md-3 settings-menu', [
'<ul class="nav nav-pills nav-stacked">',
'<li class="active"><a href="' . url('/user-settings') . '">' . __('settings.profile') . '</a></li>',
'<li><a href="' . url('/settings/password') . '">' . __('settings.password') . '</a></li>',
'<li><a href="' . url('/settings/oauth') . '">' . __('settings.oauth') . '</a></li>',
'</ul>'
]),
div('col-md-9', [
heading(__('settings.profile'), 2),
form([
form_info('', __('Here you can change your user details.')),
form_info(entry_required() . ' = ' . __('Entry required!')),
form_text('nick', __('Nick'), $user_source->name, true),
$enable_pronoun
? form_text('pronoun', __('Pronoun'), $personalData->pronoun, false, 15)
. form_info('', __('Will be shown on your profile page and in angel lists.'))
: '',
$enable_user_name ? form_text('lastname', __('Last name'), $personalData->last_name) : '',
$enable_user_name ? form_text('prename', __('First name'), $personalData->first_name) : '',
$enable_planned_arrival ? form_date(
'planned_arrival_date',
__('Planned date of arrival') . ' ' . entry_required(),
$personalData->planned_arrival_date ? $personalData->planned_arrival_date->getTimestamp() : '',
$buildup_start_date,
$teardown_end_date
) : '',
$enable_planned_arrival ? form_date(
'planned_departure_date',
__('Planned date of departure'),
$personalData->planned_departure_date ? $personalData->planned_departure_date->getTimestamp() : '',
$buildup_start_date,
$teardown_end_date
) : '',
$enable_dect ? form_text('dect', __('DECT'), $user_source->contact->dect) : '',
form_text('mobile', __('Mobile'), $user_source->contact->mobile),
form_text('mail', __('E-Mail') . ' ' . entry_required(), $user_source->email),
form_checkbox(
'email_shiftinfo',
__(
'The %s is allowed to send me an email (e.g. when my shifts change)',
[config('app_name')]
),
$user_source->settings->email_shiftinfo
),
form_checkbox(
'email_by_human_allowed',
__('Humans are allowed to send me an email (e.g. for ticket vouchers)'),
$user_source->settings->email_human
),
$enable_tshirt_size ? form_select(
'tshirt_size',
__('Shirt size'),
$tshirt_sizes,
$personalData->shirt_size,
__('Please select...')
) : '',
form_info('', __('Please visit the angeltypes page to manage your angeltypes.')),
form_submit('submit', __('Save'))
]),
form([
form_info(__('Here you can choose your color settings:')),
form_select('theme', __('Color settings:'), $themes, $user_source->settings->theme),
form_submit('submit_theme', __('Save'))
]),
form([
form_info(__('Here you can choose your language:')),
form_select('language', __('Language:'), $locales, $user_source->settings->language),
form_submit('submit_language', __('Save'))
]),
])
])
], true);
/** @var Renderer $renderer */
$renderer = app(Renderer::class);
return $renderer->render(
'pages/settings/settings.twig',
[
'title' => 'settings.profile',
'content' =>
msg()
. div('row', [
div('col-md-9', [
form([
form_info('', __('Here you can change your user details.')),
form_info(entry_required() . ' = ' . __('Entry required!')),
form_text('nick', __('Nick'), $user_source->name, true),
$enable_pronoun
? form_text('pronoun', __('Pronoun'), $personalData->pronoun, false, 15)
. form_info('', __('Will be shown on your profile page and in angel lists.'))
: '',
$enable_user_name ? form_text('lastname', __('Last name'), $personalData->last_name) : '',
$enable_user_name ? form_text('prename', __('First name'), $personalData->first_name) : '',
$enable_planned_arrival ? form_date(
'planned_arrival_date',
__('Planned date of arrival') . ' ' . entry_required(),
$personalData->planned_arrival_date
? $personalData->planned_arrival_date->getTimestamp()
: '',
$buildup_start_date,
$teardown_end_date
) : '',
$enable_planned_arrival ? form_date(
'planned_departure_date',
__('Planned date of departure'),
$personalData->planned_departure_date
? $personalData->planned_departure_date->getTimestamp()
: '',
$buildup_start_date,
$teardown_end_date
) : '',
$enable_dect ? form_text('dect', __('DECT'), $user_source->contact->dect) : '',
form_text('mobile', __('Mobile'), $user_source->contact->mobile),
form_text('mail', __('E-Mail') . ' ' . entry_required(), $user_source->email),
form_checkbox(
'email_shiftinfo',
__(
'The %s is allowed to send me an email (e.g. when my shifts change)',
[config('app_name')]
),
$user_source->settings->email_shiftinfo
),
form_checkbox(
'email_by_human_allowed',
__('Humans are allowed to send me an email (e.g. for ticket vouchers)'),
$user_source->settings->email_human
),
$enable_tshirt_size ? form_select(
'tshirt_size',
__('Shirt size'),
$tshirt_sizes,
$personalData->shirt_size,
__('Please select...')
) : '',
form_info('', __('Please visit the angeltypes page to manage your angeltypes.')),
form_submit('submit', __('Save'))
]),
form([
form_info(__('Here you can choose your color settings:')),
form_select('theme', __('Color settings:'), $themes, $user_source->settings->theme),
form_submit('submit_theme', __('Save'))
]),
form([
form_info(__('Here you can choose your language:')),
form_select('language', __('Language:'), $locales, $user_source->settings->language),
form_submit('submit_language', __('Save'))
]),
])
])
]
);
}
/**

View File

@ -4,7 +4,7 @@
{% block title %}{{ __('settings.oauth') }}{% endblock %}
{% block container_title %}
<h2 id="oauth-settings-title">{{ block('title') }}</h2>
<h1 id="oauth-settings-title">{{ __('settings.settings') }} <small>{{ block('title') }}</small></h1>
{% endblock %}
{% block row_content %}

View File

@ -1,11 +1,14 @@
{% extends 'layouts/app.twig' %}
{% import 'macros/base.twig' as m %}
{% block title %}{{ __('settings') }}{% endblock %}
{% block title %}{{ __(title|default(__('settings.settings'))) }}{% endblock %}
{% block content %}
<div class="container user-settings">
<h1>{{ __('settings.settings') }}</h1>
{% block container_title %}
<h1>{{ __('settings.settings') }} <small>{{ block('title') }}</small></h1>
{% endblock %}
<div class="row">
<div class="col-md-3 settings-menu">
<ul class="nav nav-pills nav-stacked">
@ -22,13 +25,10 @@
</div>
<div class="col-md-9">
{% block container_title %}
<h2>{{ block('title') }}</h2>
{% endblock %}
{% include 'layouts/parts/messages.twig' %}
{% block row_content %}
{{ content|raw }}
{% endblock %}
</div>
</div>

View File

@ -210,6 +210,10 @@ class LegacyMiddleware implements MiddlewareInterface
return response($content, (int)$page);
}
if (strpos($content, '<html') !== false) {
return response($content);
}
return response(
view(
'layouts/app',