QueueMessageAdmin::configureRoutes()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
/*
4
 * This file is part of HeriJobQueueBundle.
5
 *
6
 * (c) Alexandre Mogère
7
 *
8
 * This source file is subject to the MIT license that is bundled
9
 * with this source code in the file LICENSE.
10
 */
11
12
namespace Heri\Bundle\JobQueueBundle\Admin;
13
14
use Sonata\AdminBundle\Datagrid\DatagridMapper;
15
use Sonata\AdminBundle\Datagrid\ListMapper;
16
use Sonata\AdminBundle\Form\FormMapper;
17
use Sonata\AdminBundle\Route\RouteCollection;
18
use Sonata\AdminBundle\Show\ShowMapper;
19
use Sonata\AdminBundle\Admin\Admin;
20
21
/**
22
 * Class QueueMessageAdmin.
23
 */
24
class QueueMessageAdmin extends Admin
25
{
26
    use QueueTabMenuTrait;
27
28
    protected $baseRouteName = 'sonata_queue_message';
29
    protected $baseRoutePattern = '/queue_message';
30
31
    protected $translationDomain = 'HeriJobQueueBundle';
32
33
    protected $datagridValues = [
34
        '_sort_order' => 'ASC',
35
        '_sort_by' => 'id',
36
    ];
37
38
    /**
39
     * Fields to be shown on create/edit forms.
40
     *
41
     * @param FormMapper $formMapper
42
     */
43
    protected function configureFormFields(FormMapper $formMapper)
44
    {
45
        // Define group zoning
46
        $formMapper
47
            ->with('General', ['class' => 'col-md-8'])->end()
48
            ->with('Status', ['class' => 'col-md-4'])->end()
49
        ;
50
51
        $formMapper
52
            ->with('General')
53
                ->add('queue')
54
                ->add('handle')
55
                ->add('body')
56
                ->add('priority')
57
                ->add('numRetries')
58
            ->end()
59
            ->with('Status')
60
                ->add('failed', null, ['required' => false])
61
                ->add('ended', null, ['required' => false])
62
            ->end()
63
        ;
64
    }
65
66
    /**
67
     * Fields to be shown on filter forms.
68
     *
69
     * @param DatagridMapper $datagridMapper
70
     */
71
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
72
    {
73
        $datagridMapper
74
            ->add('queue')
75
            ->add('body', null, ['global_search' => false])
76
            ->add('priority')
77
            ->add('numRetries')
78
            ->add('failed')
79
            ->add('ended')
80
        ;
81
    }
82
83
    /**
84
     * Fields to be shown on lists.
85
     *
86
     * @param ListMapper $listMapper
87
     */
88
    protected function configureListFields(ListMapper $listMapper)
89
    {
90
        $listMapper
91
            ->addIdentifier('id')
92
            ->add('queue')
93
            ->add('body')
94
            ->add('handle')
95
            ->add('priority', null, ['editable' => true])
96
            ->add('numRetries', null, ['editable' => true])
97
            ->add('failed', null, ['editable' => true])
98
            ->add('ended', null, ['editable' => true])
99
            ->add('_action', 'actions', [
100
                'actions' => [
101
                    'showLogs' => [
102
                        'template' => 'HeriJobQueueBundle:QueueMessageAdmin:showLogs.html.twig',
103
                    ],
104
                    'edit' => [],
105
                    'delete' => [],
106
                ],
107
            ]);
108
    }
109
110
    protected function configureShowFields(ShowMapper $showMapper)
111
    {
112
        $showMapper
113
            ->add('queue')
114
            ->add('handle')
115
            ->add('body')
116
            ->add('priority')
117
            ->add('numRetries')
118
            ->add('failed')
119
            ->add('ended')
120
        ;
121
    }
122
123
    protected function configureRoutes(RouteCollection $collection)
124
    {
125
        $collection->add('showLogs', $this->getRouterIdParameter().'/list');
126
    }
127
}
128