Projekt

Obecné

Profil

Stáhnout (4.58 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\AdminModule\Components\ITransliterationNewFormFactory;
12
use App\FrontModule\Components\IKeyboard;
13
use App\Model\Repository\TransliterationRepository;
14

    
15
class TransliterationPresenter extends BaseAdminPresenter
16
{
17
    /**
18
     * @var ITransliterationGridFactory
19
     */
20
    private $transliterationGridFactory;
21

    
22
    /**
23
     * @var ITransliterationEditFormFactory
24
     */
25
    private $transliterationEditFormFactory;
26

    
27
    /**
28
     * @var TransliterationRepository
29
     */
30
    private $transliterationRepository;
31

    
32
    /**
33
     * @var ITransliterationDataEditFormFactory
34
     */
35
    private $transliterationDataEditFormFactory;
36
    /**
37
     * @var ITransliterationNewFormFactory
38
     */
39
    private $transliterationNewFormFactory;
40
    /**
41
     * @var IKeyboard
42
     */
43
    private $keyboard;
44

    
45
    public function __construct(ITransliterationGridFactory $transliterationGridFactory,
46
                                ITransliterationEditFormFactory $transliterationEditFormFactory,
47
                                TransliterationRepository $transliterationRepository,
48
                                ITransliterationDataEditFormFactory $transliterationDataEditFormFactory,
49
                                ITransliterationNewFormFactory $transliterationNewFormFactory,
50
                                IKeyboard $keyboard
51
    )
52
    {
53
        parent::__construct();
54
        $this->transliterationEditFormFactory = $transliterationEditFormFactory;
55
        $this->transliterationGridFactory = $transliterationGridFactory;
56
        $this->transliterationRepository = $transliterationRepository;
57
        $this->transliterationDataEditFormFactory = $transliterationDataEditFormFactory;
58
        $this->transliterationNewFormFactory = $transliterationNewFormFactory;
59
        $this->keyboard = $keyboard;
60
    }
61

    
62
    /**
63
     * Handle používaný v TransliterationGrid pro smazání transliterace
64
     *
65
     * @param int $id : ID transliterace
66
     */
67
    public function handleDeleteTransliteration(int $id)
68
    {
69
        if ($this->isAjax())
70
        {
71
            $this->transliterationRepository->findRow($id)->delete();
72
            $this['transliterationGrid']->reload();
73
        }
74
    }
75

    
76
    /**
77
     * Editace informací o transliteraci
78
     *
79
     * @param int $id
80
     */
81
    public function actionEdit(int $id)
82
    {
83
        $this['transliterationEditForm']->setTransliteration($id);
84
        $this['transliterationDataEditForm']->setTransliteration($id);
85
        $this->template->id = $id;
86
    }
87

    
88
    /**
89
     * Akce pro odstranění transliterace
90
     *
91
     * @param int $id
92
     * @throws \Nette\Application\AbortException
93
     */
94
    public function actionDeleteTransliteration(int $id){
95
        $result = $this->transliterationRepository->findRow($id)->delete();
96

    
97
        if ($result)
98
        {
99
            $this->flashMessage('Transliteration was successfully deleted.', EFlashMessage::SUCCESS);
100
        } else
101
        {
102
            $this->flashMessage('Transliteration wasn\'t deleted.', EFlashMessage::ERROR);
103
        }
104

    
105
        $this->redirect('Transliteration:default');
106
    }
107

    
108
    /**
109
     * Komponenta gridu se seznamem transliterací
110
     *
111
     * @return \App\AdminModule\Components\TransliterationGrid
112
     */
113
    public function createComponentTransliterationGrid()
114
    {
115
        return $this->transliterationGridFactory->create();
116
    }
117

    
118
    /**
119
     * Komponenta pro editaci informací o transliteraci
120
     *
121
     * @return \App\AdminModule\Components\TransliterationEditForm
122
     */
123
    public function createComponentTransliterationEditForm()
124
    {
125
        return $this->transliterationEditFormFactory->create();
126
    }
127

    
128
    /**
129
     * Komponenta pro editaci dat transliterace
130
     *
131
     * @return \App\AdminModule\Components\TransliterationDataEditForm
132
     */
133
    public function createComponentTransliterationDataEditForm()
134
    {
135
        return  $this->transliterationDataEditFormFactory->create();
136
    }
137

    
138
    /**
139
     * Komponenta pro přidávání nové transliterace
140
     *
141
     * @return \App\AdminModule\Components\TransliterationNewForm
142
     */
143
    public function createComponentTransliterationNewForm()
144
    {
145
        return $this->transliterationNewFormFactory->create();
146
    }
147

    
148
    /**
149
     * Komponenta s klávesnicí
150
     *
151
     * @return \App\FrontModule\Components\Keyboard
152
     */
153
    public function createComponentKeyboard()
154
    {
155
        return $this->keyboard->create();
156
    }
157

    
158
}
(10-10/12)