Projekt

Obecné

Profil

Stáhnout (3.11 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 3f8f3bd6 Filip Jani
use App\Model\Repository\TransliterationRepository;
12
13
class TransliterationPresenter extends BaseUserPresenter
14
{
15
    /**
16
     * @var ITransliterationGridFactory
17
     */
18
    private $transliterationGridFactory;
19
20 2d22b618 hard456
    /**
21
     * @var ITransliterationEditFormFactory
22
     */
23
    private $transliterationEditFormFactory;
24
25
    /**
26
     * @var TransliterationRepository
27
     */
28
    private $transliterationRepository;
29
30 cdaf3e0a Filip Jani
    /**
31
     * @var ITransliterationDataEditFormFactory
32
     */
33
    private $transliterationDataEditFormFactory;
34
35 3f8f3bd6 Filip Jani
    public function __construct(ITransliterationGridFactory $transliterationGridFactory,
36 2d22b618 hard456
                                ITransliterationEditFormFactory $transliterationEditFormFactory,
37 cdaf3e0a Filip Jani
                                TransliterationRepository $transliterationRepository,
38
                                ITransliterationDataEditFormFactory $transliterationDataEditFormFactory
39
    )
40 3f8f3bd6 Filip Jani
    {
41
        parent::__construct();
42 2d22b618 hard456
        $this->transliterationEditFormFactory = $transliterationEditFormFactory;
43 3f8f3bd6 Filip Jani
        $this->transliterationGridFactory = $transliterationGridFactory;
44 2d22b618 hard456
        $this->transliterationRepository = $transliterationRepository;
45 cdaf3e0a Filip Jani
        $this->transliterationDataEditFormFactory = $transliterationDataEditFormFactory;
46 3f8f3bd6 Filip Jani
    }
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 a4653ce8 hard456
            $this->transliterationRepository->findRow($id)->delete();
58 3f8f3bd6 Filip Jani
            $this['transliterationGrid']->reload();
59
        }
60
    }
61
62 a4653ce8 hard456
    /**
63
     * Editace informací o transliteraci
64
     *
65
     * @param int $id
66
     */
67 2d22b618 hard456
    public function actionEdit(int $id)
68
    {
69
        $this['transliterationEditForm']->setTransliteration($id);
70 cdaf3e0a Filip Jani
        $this['transliterationDataEditForm']->setTransliteration($id);
71 a8141f46 Filip Jani
        $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 2d22b618 hard456
    }
92
93 3f8f3bd6 Filip Jani
    public function createComponentTransliterationGrid()
94
    {
95
        return $this->transliterationGridFactory->create();
96
    }
97 2d22b618 hard456
98
    public function createComponentTransliterationEditForm()
99
    {
100
        return $this->transliterationEditFormFactory->create();
101
    }
102
103 cdaf3e0a Filip Jani
    public function createComponentTransliterationDataEditForm()
104
    {
105
        return  $this->transliterationDataEditFormFactory->create();
106
    }
107
108 3f8f3bd6 Filip Jani
}