diff --git a/src/Entity/UserSystem/User.php b/src/Entity/UserSystem/User.php index 375030a5..7b62ec4e 100644 --- a/src/Entity/UserSystem/User.php +++ b/src/Entity/UserSystem/User.php @@ -632,6 +632,28 @@ class User extends AttachmentContainingDBElement implements UserInterface, HasPe return $this; } + /** + * Returns the about me text of the user. + * @return string + */ + public function getAboutMe(): string + { + return $this->aboutMe; + } + + /** + * Change the about me text of the user. + * @param string $aboutMe + * @return User + */ + public function setAboutMe(string $aboutMe): User + { + $this->aboutMe = $aboutMe; + return $this; + } + + + /** * Gets the language the user prefers (as 2 letter ISO code). * diff --git a/src/Form/UserAdminForm.php b/src/Form/UserAdminForm.php index 380d8c8f..9f97d8f3 100644 --- a/src/Form/UserAdminForm.php +++ b/src/Form/UserAdminForm.php @@ -29,6 +29,7 @@ use App\Entity\UserSystem\User; use App\Form\Permissions\PermissionsType; use App\Form\Type\CurrencyEntityType; use App\Form\Type\MasterPictureAttachmentType; +use App\Form\Type\RichTextEditorType; use App\Form\Type\StructuralEntityType; use App\Form\Type\ThemeChoiceType; use Symfony\Component\Form\AbstractType; @@ -126,6 +127,16 @@ class UserAdminForm extends AbstractType 'required' => false, 'disabled' => !$this->security->isGranted('edit_infos', $entity), ]) + ->add('aboutMe', RichTextEditorType::class, [ + 'required' => false, + 'empty_data' => '', + 'label' => 'user.aboutMe.label', + 'attr' => [ + 'rows' => 4, + ], + 'mode' => 'markdown-full', + 'disabled' => !$this->security->isGranted('edit_infos', $entity), + ]) //Config section ->add('language', LanguageType::class, [ diff --git a/src/Form/UserSettingsType.php b/src/Form/UserSettingsType.php index 685ac14d..c54e90e9 100644 --- a/src/Form/UserSettingsType.php +++ b/src/Form/UserSettingsType.php @@ -24,6 +24,7 @@ namespace App\Form; use App\Entity\UserSystem\User; use App\Form\Type\CurrencyEntityType; +use App\Form\Type\RichTextEditorType; use App\Form\Type\ThemeChoiceType; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Event\PreSetDataEvent; @@ -93,6 +94,16 @@ class UserSettingsType extends AbstractType ]), ], ]) + ->add('aboutMe', RichTextEditorType::class, [ + 'required' => false, + 'empty_data' => '', + 'label' => 'user.aboutMe.label', + 'attr' => [ + 'rows' => 4, + ], + 'mode' => 'markdown-full', + 'disabled' => !$this->security->isGranted('edit_infos', $options['data']) || $this->demo_mode, + ]) ->add('language', LanguageType::class, [ 'disabled' => $this->demo_mode, 'required' => false, diff --git a/templates/admin/user_admin.html.twig b/templates/admin/user_admin.html.twig index 5343377e..065e958c 100644 --- a/templates/admin/user_admin.html.twig +++ b/templates/admin/user_admin.html.twig @@ -22,6 +22,7 @@ {{ form_row(form.last_name) }} {{ form_row(form.email) }} {{ form_row(form.department) }} + {{ form_row(form.aboutMe) }} {% endblock %} {% block additional_panes %} diff --git a/templates/users/user_info.html.twig b/templates/users/user_info.html.twig index fd5a6374..28d720b6 100644 --- a/templates/users/user_info.html.twig +++ b/templates/users/user_info.html.twig @@ -64,6 +64,11 @@ {% endif %} + {% if user.aboutMe is not empty %} +
+
{% trans %}user.aboutMe.label{% endtrans %}
+ {{ user.aboutMe | format_markdown }} + {% endif %} {% endblock %} diff --git a/templates/users/user_settings.html.twig b/templates/users/user_settings.html.twig index b67708b9..cdd419bc 100644 --- a/templates/users/user_settings.html.twig +++ b/templates/users/user_settings.html.twig @@ -34,6 +34,7 @@ {{ form_widget(settings_form.remove_avatar) }} + {{ form_row(settings_form.aboutMe) }}
{{ form_row(settings_form.language) }} diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index f5140d56..fd9e8582 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -11199,5 +11199,11 @@ Element 3 Edit Measurement Unit + + + user.aboutMe.label + About Me + +