Projekt

Obecné

Profil

Stáhnout (3.11 KB) Statistiky
| Větev: | Tag: | Revize:
1
<?php
2

    
3

    
4
namespace App\AdminModule\Presenters;
5

    
6

    
7
use App\AdminModule\Components\ITransliterationDataEditFormFactory;
8
use App\AdminModule\Components\ITransliterationGridFactory;
9
use App\AdminModule\Components\ITransliterationEditFormFactory;
10
use App\Enum\EFlashMessage;
11
use App\Model\Repository\TransliterationRepository;
12

    
13
class TransliterationPresenter extends BaseUserPresenter
14
{
15
    /**
16
     * @var ITransliterationGridFactory
17
     */
18
    private $transliterationGridFactory;
19

    
20
    /**
21
     * @var ITransliterationEditFormFactory
22
     */
23
    private $transliterationEditFormFactory;
24

    
25
    /**
26
     * @var TransliterationRepository
27
     */
28
    private $transliterationRepository;
29

    
30
    /**
31
     * @var ITransliterationDataEditFormFactory
32
     */
33
    private $transliterationDataEditFormFactory;
34

    
35
    public function __construct(ITransliterationGridFactory $transliterationGridFactory,
36
                                ITransliterationEditFormFactory $transliterationEditFormFactory,
37
                                TransliterationRepository $transliterationRepository,
38
                                ITransliterationDataEditFormFactory $transliterationDataEditFormFactory
39
    )
40
    {
41
        parent::__construct();
42
        $this->transliterationEditFormFactory = $transliterationEditFormFactory;
43
        $this->transliterationGridFactory = $transliterationGridFactory;
44
        $this->transliterationRepository = $transliterationRepository;
45
        $this->transliterationDataEditFormFactory = $transliterationDataEditFormFactory;
46
    }
47

    
48
    /**
49
     * Handle používaný v TransliterationGrid pro smazání transliterace
50
     *
51
     * @param int $id : ID transliterace
52
     */
53
    public function handleDeleteTransliteration(int $id)
54
    {
55
        if ($this->isAjax())
56
        {
57
            $this->transliterationRepository->findRow($id)->delete();
58
            $this['transliterationGrid']->reload();
59
        }
60
    }
61

    
62
    /**
63
     * Editace informací o transliteraci
64
     *
65
     * @param int $id
66
     */
67
    public function actionEdit(int $id)
68
    {
69
        $this['transliterationEditForm']->setTransliteration($id);
70
        $this['transliterationDataEditForm']->setTransliteration($id);
71
        $this->template->id = $id;
72
    }
73

    
74
    /**
75
     * Akce pro odstranění transliterace
76
     *
77
     * @param int $id
78
     * @throws \Nette\Application\AbortException
79
     */
80
    public function actionDeleteTransliteration(int $id)
81
    {
82
        if ($this->transliterationRepository->findRow($id)->delete())
83
        {
84
            $this->flashMessage('Transliteration was removed.', EFlashMessage::SUCCESS);
85
        } else
86
        {
87
            $this->flashMessage('Transliteration was not found', EFlashMessage::ERROR);
88
        }
89

    
90
        $this->redirect('Transliteration:');
91
    }
92

    
93
    public function createComponentTransliterationGrid()
94
    {
95
        return $this->transliterationGridFactory->create();
96
    }
97

    
98
    public function createComponentTransliterationEditForm()
99
    {
100
        return $this->transliterationEditFormFactory->create();
101
    }
102

    
103
    public function createComponentTransliterationDataEditForm()
104
    {
105
        return  $this->transliterationDataEditFormFactory->create();
106
    }
107

    
108
}
(10-10/12)