-
Notifications
You must be signed in to change notification settings - Fork 190
/
ExceptionAdminListConfigurator.php
124 lines (107 loc) · 3.62 KB
/
ExceptionAdminListConfigurator.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
namespace Kunstmaan\AdminBundle\AdminList;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\QueryBuilder;
use Kunstmaan\AdminBundle\Entity\Exception;
use Kunstmaan\AdminBundle\Helper\Security\Acl\AclHelper;
use Kunstmaan\AdminListBundle\AdminList\Configurator\AbstractDoctrineORMAdminListConfigurator;
use Kunstmaan\AdminListBundle\AdminList\FilterType\ORM;
use Kunstmaan\AdminListBundle\AdminList\ItemAction\SimpleItemAction;
use Kunstmaan\AdminListBundle\AdminList\ListAction\SimpleListAction;
class ExceptionAdminListConfigurator extends AbstractDoctrineORMAdminListConfigurator
{
public function __construct(EntityManager $em, ?AclHelper $aclHelper = null)
{
parent::__construct($em, $aclHelper);
}
public function buildFields()
{
$this->addField('code', 'settings.exceptions.code', true);
$this->addField('url', 'settings.exceptions.url', true);
$this->addField('urlReferer', 'settings.exceptions.urlReferer', true);
$this->addField('events', 'settings.exceptions.events', true);
$this->addField('createdAt', 'settings.exceptions.createdAt', true);
}
public function buildFilters()
{
$this->addFilter('code', new ORM\NumberFilterType('code'), 'settings.exceptions.code');
$this->addFilter('url', new ORM\StringFilterType('url'), 'settings.exceptions.url');
$this->addFilter('urlReferer', new ORM\StringFilterType('urlReferer'), 'settings.exceptions.urlReferer');
$this->addFilter('isResolved', new ORM\BooleanFilterType('isResolved'), 'settings.exceptions.isResolved');
$this->addFilter('createdAt', new ORM\DateFilterType('createdAt'), 'settings.exceptions.createdAt');
}
public function buildListActions()
{
$listRoute = [
'path' => 'kunstmaanadminbundle_admin_exception_resolve_all',
'params' => [],
];
$this->addListAction(
new SimpleListAction(
$listRoute,
'settings.exceptions.resolve_all',
null,
'@KunstmaanAdmin/Settings/button_resolve_all.html.twig'
)
);
}
public function buildItemActions()
{
$this->addItemAction(
new SimpleItemAction(
function (Exception $row) {
return [
'path' => 'kunstmaanadminbundle_admin_exception_toggle_resolve',
'params' => [
'id' => $row->getId(),
],
];
},
null,
null,
'@KunstmaanAdmin/Settings/button_resolve.html.twig'
)
);
}
public function finishQueryBuilder(QueryBuilder $queryBuilder)
{
$queryBuilder->orderBy('b.isResolved', 'ASC');
$queryBuilder->addOrderBy('b.createdAt', 'DESC');
}
public function canAdd()
{
return false;
}
public function canExport()
{
return false;
}
public function canEdit($item)
{
return false;
}
public function canDelete($item)
{
return false;
}
public function canView($item)
{
return false;
}
public function getEntityClass(): string
{
return Exception::class;
}
/**
* @param string|null $suffix
*
* @return string
*/
public function getPathByConvention($suffix = null)
{
if (null === $suffix || $suffix === '') {
return 'kunstmaanadminbundle_admin_exception';
}
return sprintf('kunstmaanadminbundle_admin_exception_%s', $suffix);
}
}