Skip to content
This repository was archived by the owner on Mar 13, 2026. It is now read-only.

Commit 1326515

Browse files
committed
improve user display for crud usage
1 parent 2e437d5 commit 1326515

File tree

3 files changed

+54
-10
lines changed

3 files changed

+54
-10
lines changed

src/system/UsersBundle/src/Entity/User.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Zikula\CoreBundle\Doctrine\DBAL\CustomTypes;
2323
use Zikula\LegalBundle\Entity\LegalAwareUserInterface;
2424
use Zikula\LegalBundle\Entity\LegalAwareUserTrait;
25+
use Zikula\UsersBundle\ProfileConstant;
2526
use Zikula\UsersBundle\Repository\UserRepository;
2627
use Zikula\UsersBundle\UsersConstant;
2728

@@ -127,6 +128,17 @@ public function setId(?int $id): self
127128
return $this;
128129
}
129130

131+
public function getFullName(): string
132+
{
133+
$firstName = $this->getAttributeValue(ProfileConstant::ATTRIBUTE_NAME_FIRST_NAME);
134+
$lastName = $this->getAttributeValue(ProfileConstant::ATTRIBUTE_NAME_LAST_NAME);
135+
if ('' !== $firstName && '' !== $lastName) {
136+
return $firstName . ' ' . $lastName;
137+
}
138+
139+
return '';
140+
}
141+
130142
public function getActivated(): int
131143
{
132144
return $this->activated;
Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,30 @@
1-
{# based on association.html.twig #}
1+
{# based on association.html.twig and EAB demo #}
22
{# @var ea \EasyCorp\Bundle\EasyAdminBundle\Context\AdminContext #}
33
{# @var field \EasyCorp\Bundle\EasyAdminBundle\Dto\FieldDto #}
44
{# @var entity \EasyCorp\Bundle\EasyAdminBundle\Dto\EntityDto #}
5-
{% if 'toMany' == field.customOptions.get('associationType') %}
6-
<span class="badge badge-secondary">{{ field.formattedValue }}</span>
7-
{% else %}
8-
{#% if field.customOptions.get('relatedUrl') is not null %}
9-
<a href="{{ field.customOptions.get('relatedUrl') }}">{{ field.formattedValue }}</a>
5+
{% set user = field.value %}
6+
{% if user %}
7+
{% if 'toMany' == field.customOptions.get('associationType') %}
8+
<span class="badge badge-secondary">{{ field.formattedValue }}</span>
109
{% else %}
11-
{{ field.formattedValue }}
12-
{% endif %#}
13-
{{ field.value.id|profileLinkByUserId }}
14-
<span class="avatar">{{ userAvatar(field.value.id, {rating: 'g'}) }}</span>
10+
<div class="user-card d-flex align-items-center gap-2">
11+
<span class="avatar">{{ userAvatar(field.value.id, {size: 32, rating: 'g', class: 'rounded-circle'}) }}</span>
12+
<div class="user-info">
13+
<span class="user-name">{{ user.id|profileLinkByUserId }}</span>
14+
{% if 'ROLE_ADMIN' in user.roles %}
15+
<span class="badge badge-danger ms-1">{{ 'Admin'|trans }}</span>
16+
{% elseif 'ROLE_EDITOR' in user.roles %}
17+
<span class="badge badge-warning ms-1">{{ 'Editor'|trans }}</span>
18+
{% endif %}
19+
</div>
20+
</div>
21+
22+
{#% if field.customOptions.get('relatedUrl') is not null %}
23+
<a href="{{ field.customOptions.get('relatedUrl') }}">{{ field.formattedValue }}</a>
24+
{% else %}
25+
{{ field.formattedValue }}
26+
{% endif %#}
27+
{% endif %}
28+
{% else %}
29+
{#<span class="text-muted">{{ 'common.not_assigned'|trans }}</span>#}
1530
{% endif %}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{# based on EAB demo #}
2+
<div style="display: flex; align-items: center; gap: 10px; padding: 4px 0;">
3+
<span class="avatar">{{ userAvatar(entity.id, {size: 32, rating: 'g', class: 'rounded-circle'}) }}</span>
4+
<div style="min-width: 0; line-height: 1.3">
5+
<div style="font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
6+
{% if entity.fullName %}
7+
{{ entity.fullName }}
8+
<span style="font-weight: normal; color: #6c757d;">@{{ entity.username }}</span>
9+
{% else %}
10+
{{ entity.username }}
11+
{% endif %}
12+
</div>
13+
<div style="font-size: 0.85em; color: #6c757d; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;">
14+
{{ entity.email }}
15+
</div>
16+
</div>
17+
</div>

0 commit comments

Comments
 (0)