Add initial version of admin "users" page

master
Julien Rosset 1 year ago
parent 93ae08e8aa
commit 7813c93e9b

@ -0,0 +1,47 @@
<?php
namespace App\Controller\Administration;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Controllers for users administration pages
*/
#[Route('/admin/user')]
class UserController extends AbstractController {
/**
* @var TranslatorInterface The translator service
*/
private readonly TranslatorInterface $translator;
/**
* Initialisation
*
* @param TranslatorInterface $translator The translator service
*/
public function __construct (TranslatorInterface $translator) {
$this->translator = $translator;
}
/**
* List all users
*
* @return Response The response
*/
#[Route('/', name: 'admin_user_list')]
public function list (): Response {
return $this->render('/Administration/user/list.html.twig');
}
/**
* AJAX query for a list of users (Datatables.net)
*
* @return Response The response
*/
#[Route('/ajax', name: 'admin_user_ajax', methods: 'POST')]
public function list__ajax (): Response {
return $this->render('/Administration/user/list.html.twig');
}
}

@ -0,0 +1,35 @@
{% extends '/base.html.twig' %}
{% block title %}{{ 'pages.admin.user'|trans }} - {{ parent() }}{% endblock %}
{% block mainContent %}
<h1 class="mb-4">{{ 'pages.admin.user'|trans }}</h1>
<table class="table table-striped table-hover table-datatable"
data-sort-paging="true"
data-sort-ajax="{{ path('admin_user_ajax') }}"
data-sort-layout='{"topStart":"search","topEnd":null,"bottomStart":null,"bottomEnd":"paging"}'
>
<thead>
<tr>
<th scope="col" data-sort-name="email">{{ 'fields.email.label'|trans }}</th>
<th scope="col" data-sort-name="name">{{ 'fields.name'|trans }}</th>
<th scope="col" data-sort-name="isVerified">{{ 'fields.emailVerify'|trans }}</th>
<th scope="col" data-sort-name="adminValidated">{{ 'fields.adminValidated'|trans }}</th>
<th scope="col" data-sort-name="administrator">{{ 'fields.administrator'|trans }}</th>
<th scope="col" data-sort="false">&nbsp;</th>
</tr>
</thead>
<tbody class="table-group-divider">
<tr>
<td>email</td>
<td>name</td>
<td>isVerified</td>
<td>adminValidated</td>
<td>administrator</td>
<td>&nbsp;</td>
</tr>
</tbody>
</table>
{% endblock %}
{% block importmap %}{{ importmap(['app', 'datatables']) }}{% endblock %}
Loading…
Cancel
Save