Skip to content

Commit

Permalink
imp: Display both owned and assigned tickets to agents on home page
Browse files Browse the repository at this point in the history
  • Loading branch information
marien-probesys committed Dec 11, 2024
1 parent 1e2dc34 commit 7509502
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 20 deletions.
31 changes: 20 additions & 11 deletions src/Controller/PagesController.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,26 +27,35 @@ public function home(
Security\Authorizer $authorizer,
Service\UserService $userService,
): Response {
$ticketsOwnedPagination = $ticketSearcher->getTickets(
SearchEngine\Ticket\Searcher::queryOwned(),
'updated-desc',
[
'page' => 1,
'maxResults' => 5,
]
);

if ($authorizer->isAgent('any')) {
$query = SearchEngine\Ticket\Searcher::queryAssignedMe();
$view = 'assigned-me';
$ticketsAssignedPagination = $ticketSearcher->getTickets(
SearchEngine\Ticket\Searcher::queryAssignedMe(),
'updated-desc',
[
'page' => 1,
'maxResults' => 5,
]
);
} else {
$query = SearchEngine\Ticket\Searcher::queryOwned();
$view = 'owned';
$ticketsAssignedPagination = null;
}

$ticketsPagination = $ticketSearcher->getTickets($query, 'updated-desc', [
'page' => 1,
'maxResults' => 5,
]);

/** @var Entity\User */
$user = $this->getUser();
$defaultOrganization = $userService->getDefaultOrganization($user);

return $this->render('pages/home.html.twig', [
'view' => $view,
'ticketsPagination' => $ticketsPagination,
'ticketsOwnedPagination' => $ticketsOwnedPagination,
'ticketsAssignedPagination' => $ticketsAssignedPagination,
'defaultOrganization' => $defaultOrganization,
]);
}
Expand Down
50 changes: 41 additions & 9 deletions templates/pages/home.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,46 @@
<main class="layout__body">
<h1>{{ 'home.title' | trans }}</h1>

{% if ticketsAssignedPagination %}
<div class="flow">
<div class="cols cols--center flow">
<h2 class="col--extend">
{{ 'home.your_assigned_tickets' | trans }}
</h2>
</div>

{% if ticketsAssignedPagination.count > 0 %}
<div class="flow">
{{ include(
'tickets/_list.html.twig',
{ tickets: ticketsAssignedPagination.items },
with_context = false
) }}

{% if ticketsAssignedPagination.mustPaginate %}
<div class="text--center">
<a class="button" href="{{ path('tickets', { 'view': 'assigned-me' }) }}">
{{ 'home.all_your_tickets' | trans }}
</a>
</div>
{% endif %}
</div>
{% else %}
<div class="placeholder flow flow--larger">
<img class="placeholder__image" src="{{ asset('illustration-placeholder.svg') }}" alt="" />

<p class="placeholder__text">
{{ 'home.no_tickets' | trans }}
</p>
</div>
{% endif %}
</div>
{% endif %}

<div class="flow">
<div class="cols cols--center flow">
<h2 class="col--extend">
{% if view == 'owned' %}
{{ 'home.your_tickets' | trans }}
{% elseif view == 'assigned-me' %}
{{ 'home.your_assigned_tickets' | trans }}
{% endif %}
{{ 'home.your_tickets' | trans }}
</h2>

{% if defaultOrganization %}
Expand All @@ -35,17 +67,17 @@
{% endif %}
</div>

{% if ticketsPagination.count > 0 %}
{% if ticketsOwnedPagination.count > 0 %}
<div class="flow">
{{ include(
'tickets/_list.html.twig',
{ tickets: ticketsPagination.items },
{ tickets: ticketsOwnedPagination.items },
with_context = false
) }}

{% if ticketsPagination.mustPaginate %}
{% if ticketsOwnedPagination.mustPaginate %}
<div class="text--center">
<a class="button" href="{{ path('tickets', { 'view': view }) }}">
<a class="button" href="{{ path('tickets', { 'view': 'owned' }) }}">
{{ 'home.all_your_tickets' | trans }}
</a>
</div>
Expand Down

0 comments on commit 7509502

Please sign in to comment.