Projekt

Obecné

Profil

Stáhnout (4.57 KB) Statistiky
| Větev: | Tag: | Revize:
1 3f8f3bd6 Filip Jani
<?php
2
3
4
namespace App\AdminModule\Presenters;
5
6
7 cdaf3e0a Filip Jani
use App\AdminModule\Components\ITransliterationDataEditFormFactory;
8 3f8f3bd6 Filip Jani
use App\AdminModule\Components\ITransliterationGridFactory;
9 2d22b618 hard456
use App\AdminModule\Components\ITransliterationEditFormFactory;
10 a8141f46 Filip Jani
use App\Enum\EFlashMessage;
11 786cbd6d Filip Jani
use App\AdminModule\Components\ITransliterationNewFormFactory;
12 c8d80ce7 hard456
use App\FrontModule\Components\IKeyboard;
13 3f8f3bd6 Filip Jani
use App\Model\Repository\TransliterationRepository;
14
15
class TransliterationPresenter extends BaseUserPresenter
16
{
17
    /**
18
     * @var ITransliterationGridFactory
19
     */
20
    private $transliterationGridFactory;
21
22 2d22b618 hard456
    /**
23
     * @var ITransliterationEditFormFactory
24
     */
25
    private $transliterationEditFormFactory;
26
27
    /**
28
     * @var TransliterationRepository
29
     */
30
    private $transliterationRepository;
31
32 cdaf3e0a Filip Jani
    /**
33
     * @var ITransliterationDataEditFormFactory
34
     */
35
    private $transliterationDataEditFormFactory;
36 c8d80ce7 hard456
    /**
37
     * @var ITransliterationNewFormFactory
38
     */
39
    private $transliterationNewFormFactory;
40
    /**
41
     * @var IKeyboard
42
     */
43
    private $keyboard;
44 cdaf3e0a Filip Jani
45 3f8f3bd6 Filip Jani
    public function __construct(ITransliterationGridFactory $transliterationGridFactory,
46 2d22b618 hard456
                                ITransliterationEditFormFactory $transliterationEditFormFactory,
47 cdaf3e0a Filip Jani
                                TransliterationRepository $transliterationRepository,
48 c8d80ce7 hard456
                                ITransliterationDataEditFormFactory $transliterationDataEditFormFactory,
49
                                ITransliterationNewFormFactory $transliterationNewFormFactory,
50
                                IKeyboard $keyboard
51 cdaf3e0a Filip Jani
    )
52 3f8f3bd6 Filip Jani
    {
53
        parent::__construct();
54 2d22b618 hard456
        $this->transliterationEditFormFactory = $transliterationEditFormFactory;
55 3f8f3bd6 Filip Jani
        $this->transliterationGridFactory = $transliterationGridFactory;
56 2d22b618 hard456
        $this->transliterationRepository = $transliterationRepository;
57 cdaf3e0a Filip Jani
        $this->transliterationDataEditFormFactory = $transliterationDataEditFormFactory;
58 c8d80ce7 hard456
        $this->transliterationNewFormFactory = $transliterationNewFormFactory;
59
        $this->keyboard = $keyboard;
60 3f8f3bd6 Filip Jani
    }
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 a4653ce8 hard456
            $this->transliterationRepository->findRow($id)->delete();
72 3f8f3bd6 Filip Jani
            $this['transliterationGrid']->reload();
73
        }
74
    }
75
76 a4653ce8 hard456
    /**
77
     * Editace informací o transliteraci
78
     *
79
     * @param int $id
80
     */
81 2d22b618 hard456
    public function actionEdit(int $id)
82
    {
83
        $this['transliterationEditForm']->setTransliteration($id);
84 cdaf3e0a Filip Jani
        $this['transliterationDataEditForm']->setTransliteration($id);
85 a8141f46 Filip Jani
        $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 b8fae4af Filip Jani
    public function actionDeleteTransliteration(int $id){
95
        $result = $this->transliterationRepository->findRow($id)->delete();
96
97
        if ($result)
98 a8141f46 Filip Jani
        {
99 b8fae4af Filip Jani
            $this->flashMessage('Transliteration was successfully deleted.', EFlashMessage::SUCCESS);
100 a8141f46 Filip Jani
        } else
101
        {
102 b8fae4af Filip Jani
            $this->flashMessage('Transliteration wasn\'t deleted.', EFlashMessage::ERROR);
103 a8141f46 Filip Jani
        }
104
105 b8fae4af Filip Jani
        $this->redirect('Transliteration:default');
106 2d22b618 hard456
    }
107
108 b8fae4af Filip Jani
    /**
109
     * Komponenta gridu se seznamem transliterací
110
     *
111
     * @return \App\AdminModule\Components\TransliterationGrid
112
     */
113 3f8f3bd6 Filip Jani
    public function createComponentTransliterationGrid()
114
    {
115
        return $this->transliterationGridFactory->create();
116
    }
117 2d22b618 hard456
118 b8fae4af Filip Jani
    /**
119
     * Komponenta pro editaci informací o transliteraci
120
     *
121
     * @return \App\AdminModule\Components\TransliterationEditForm
122
     */
123 2d22b618 hard456
    public function createComponentTransliterationEditForm()
124
    {
125
        return $this->transliterationEditFormFactory->create();
126
    }
127
128 b8fae4af Filip Jani
    /**
129
     * Komponenta pro editaci dat transliterace
130
     *
131
     * @return \App\AdminModule\Components\TransliterationDataEditForm
132
     */
133 cdaf3e0a Filip Jani
    public function createComponentTransliterationDataEditForm()
134
    {
135
        return  $this->transliterationDataEditFormFactory->create();
136
    }
137
138 b8fae4af Filip Jani
    /**
139
     * Komponenta pro přidávání nové transliterace
140
     *
141
     * @return \App\AdminModule\Components\TransliterationNewForm
142
     */
143 c8d80ce7 hard456
    public function createComponentTransliterationNewForm()
144
    {
145
        return $this->transliterationNewFormFactory->create();
146
    }
147
148 b8fae4af Filip Jani
    /**
149
     * Komponenta s klávesnicí
150
     *
151
     * @return \App\FrontModule\Components\Keyboard
152
     */
153 c8d80ce7 hard456
    public function createComponentKeyboard()
154
    {
155
        return $this->keyboard->create();
156
    }
157
158 3f8f3bd6 Filip Jani
}