Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 8b71ca4d

Přidáno uživatelem Jan Šedivý před téměř 6 roky(ů)

Re #7336 Formuláře pro úpravu typů povrchu

Zobrazit rozdíly:

app/AdminModule/component/Surface/SurfaceGrid.php
42 42
        $this->addColumnText(SurfaceTypeRepository::COLUMN_SURFACE_TYPE, 'Surface Type');
43 43
        $this->addColumnText(SurfaceTypeRepository::COLUMN_SORTER, 'Sort Position');
44 44

  
45
        $this->addAction('edit', 'upravit', 'Surface:editType', ['id' => SurfaceTypeRepository::COLUMN_ID])
45
        $this->addAction('edit', 'edit', 'Surface:editType', ['id' => SurfaceTypeRepository::COLUMN_ID])
46 46
            ->setTitle('Edit');
47 47

  
48
        $this->addAction('delete', 'smazat', 'Surface:deleteType', ['id' => SurfaceTypeRepository::COLUMN_ID])
49
            ->setConfirm('Do you really want to delete surface type "%s"?', SurfaceTypeRepository::COLUMN_SURFACE_TYPE)
50
            ->setTitle('Delete')
51
            ->setClass('btn btn-xs btn-danger ajax');
52

  
48 53
        $this->setDefaultPerPage(20);
49 54
    }
50 55
}
app/AdminModule/component/Surface/SurfaceTypeEditForm.latte
1
<div class="row">
2
    <div class="col-4">
3
        {control form}
4
    </div>
5
</div>
app/AdminModule/component/Surface/SurfaceTypeEditFormFactory.php
1
<?php
2

  
3
namespace App\AdminModule\Components;
4

  
5

  
6
use App\Enum\EFlashMessage;
7
use App\Model\Repository\SurfaceTypeRepository;
8
use App\Utils\Form;
9
use Nette\Application\UI\Control;
10

  
11
class SurfaceTypeEditForm extends Control
12
{
13
    /** @var SurfaceTypeRepository */
14
    private $surfaceTypeRepository;
15

  
16
    private $typeId;
17

  
18
    /**
19
     * SurfaceTypeEditForm constructor.
20
     * @param SurfaceTypeRepository $surfaceTypeRepository
21
     * @param $typeId
22
     */
23
    public function __construct($typeId, SurfaceTypeRepository $surfaceTypeRepository)
24
    {
25
        $this->surfaceTypeRepository = $surfaceTypeRepository;
26
        $this->typeId = $typeId;
27

  
28
        parent::__construct();
29
    }
30

  
31
    public function render()
32
    {
33
        $this->template->setFile(__DIR__ . '/SurfaceTypeEditForm.latte');
34
        $this->template->render();
35
    }
36

  
37
    public function createComponentForm()
38
    {
39
        $form = new Form();
40

  
41
        $form->addText(SurfaceTypeRepository::COLUMN_SURFACE_TYPE, 'Surface Type');
42
        $form->addText(SurfaceTypeRepository::COLUMN_SORTER, 'Sorter');
43

  
44
        $form->addSubmit('submit', 'Save');
45

  
46
        $form->onSuccess[] = [$this, 'formSuccess'];
47

  
48
        if($this->typeId)
49
        {
50
            $form->setDefaults($this->surfaceTypeRepository->findRow($this->typeId));
51
        }
52

  
53
        return $form;
54
    }
55

  
56
    public function formSuccess(Form $form)
57
    {
58
        $result = $this->surfaceTypeRepository->save($form->getValues(true), $this->typeId);
59

  
60
        if ($result)
61
        {
62
            $this->presenter->flashMessage('Surface type was successfully saved.', EFlashMessage::SUCCESS);
63
            $this->presenter->redirect('Surface:');
64
        } else
65
        {
66
            $this->presenter->flashMessage('Uživatele se nepodařilo upravit.', EFlashMessage::ERROR);
67
        }
68
    }
69
}
70

  
71
interface ISurfaceTypeEditFormFactory
72
{
73
    /**
74
     * @param $typeId
75
     * @return SurfaceTypeEditForm
76
     */
77
    public function create($typeId);
78
}
app/AdminModule/presenters/SurfacePresenter.php
3 3
namespace App\AdminModule\Presenters;
4 4

  
5 5

  
6
use App\AdminModule\Components\ISurfaceTypeEditFormFactory;
6 7
use App\AdminModule\Components\ISurfaceTypeGridFactory;
7 8

  
8 9
class SurfacePresenter extends BaseAdminPresenter
......
10 11
    /** @var ISurfaceTypeGridFactory */
11 12
    private $surfaceTypeGridFactory;
12 13

  
14
    /** @var ISurfaceTypeEditFormFactory */
15
    private $surfaceTypeEditFormFactory;
16

  
13 17
    private $typeId;
14 18

  
15 19
    /**
16 20
     * SurfacePresenter constructor.
17 21
     * @param ISurfaceTypeGridFactory $surfaceTypeGridFactory
22
     * @param ISurfaceTypeEditFormFactory $surfaceTypeEditFormFactory
18 23
     */
19
    public function __construct(ISurfaceTypeGridFactory $surfaceTypeGridFactory)
24
    public function __construct(
25
        ISurfaceTypeGridFactory $surfaceTypeGridFactory,
26
        ISurfaceTypeEditFormFactory $surfaceTypeEditFormFactory
27
    )
20 28
    {
21 29
        parent::__construct();
22 30

  
23 31
        $this->surfaceTypeGridFactory = $surfaceTypeGridFactory;
32
        $this->surfaceTypeEditFormFactory = $surfaceTypeEditFormFactory;
24 33
    }
25 34

  
26 35
    public function actionAddType()
......
28 37

  
29 38
    }
30 39

  
31
    public function actionEditType($id)
40
    public function actionEditType(int $id)
32 41
    {
33

  
42
        $this->typeId = $id;
34 43
    }
35 44

  
36
    public function actionDeleteType($id)
45
    public function actionDeleteType(int $id)
37 46
    {
38 47

  
39 48
    }
......
42 51
    {
43 52
        return $this->surfaceTypeGridFactory->create();
44 53
    }
54

  
55
    public function createComponentSurfaceTypeEditForm()
56
    {
57
        return $this->surfaceTypeEditFormFactory->create($this->typeId);
58
    }
45 59
}
app/AdminModule/templates/Surface/addType.latte
1
{block content}
2
    <div class="row">
3
        <div class="col-10">
4
            <div class="display-5">New Surface Type</div>
5
        </div>
6
        <div class="col-2 text-right">
7
            <a n:href="Surface:default" class="btn btn-sm btn-success"><span class="fa fa-fw fa-list"></span> Surface Types</a>
8
        </div>
9
    </div>
10
    {control surfaceTypeEditForm}
11
{/block}
app/AdminModule/templates/Surface/default.latte
1 1
{block content}
2
    {control surfaceTypeGrid}
2
    <div class="row">
3
        <div class="col-10">
4
            <div class="display-5">Surface Types</div>
5
        </div>
6
        <div class="col-2 text-right">
7
            <a n:href="Surface:addType" class="btn btn-sm btn-success"><span class="fa fa-fw fa-plus"></span> New Surface Type</a>
8
        </div>
9
    </div>
10
    <div class="row">
11
        <div class="col-10 offset-1">
12
            {control surfaceTypeGrid}
13
        </div>
14
    </div>
15

  
3 16
{/block}
app/AdminModule/templates/Surface/editType.latte
1
{block content}
2
    <div class="row">
3
        <div class="col-10">
4
            <div class="display-5">Edit Surface Type</div>
5
        </div>
6
        <div class="col-2 text-right">
7
            <a n:href="Surface:default" class="btn btn-sm btn-success"><span class="fa fa-fw fa-list"></span> Surface Types</a>
8
        </div>
9
    </div>
10
    {control surfaceTypeEditForm}
11
{/block}
app/AdminModule/templates/User/add.latte
1 1
{block content}
2 2
<div class="row">
3
    <div class="col-11">
4
        <h4>Administrace - Nový uživatel</h4>
3
    <div class="col-10">
4
        <div class="display-5">Administrace - Nový uživatel</div>
5 5
    </div>
6
    <div class="col-1">
6
    <div class="col-2 text-right">
7 7
        <a n:href="User:default" class="btn btn-sm btn-success"><span class="fa fa-fw fa-list"></span> Seznam uživatelů</a>
8 8
    </div>
9 9
</div>
app/AdminModule/templates/User/default.latte
1 1
{block content}
2 2
<div class="row">
3
    <div class="col-11">
4
        <h4>Administrace - Seznam uživatelů</h4>
3
    <div class="col-10">
4
        <div class="display-5">Administrace - Seznam uživatelů</div>
5 5
    </div>
6
    <div class="col-1">
6
    <div class="col-2 text-right">
7 7
        <a n:href="User:add" class="btn btn-sm btn-success"><span class="fa fa-fw fa-plus"></span> Přidat uživatele</a>
8 8
    </div>
9 9
</div>
app/AdminModule/templates/User/edit.latte
1 1
{block content}
2 2
<div class="row">
3
    <div class="col-11">
4
        <h4>Administrace - Editace uživatele</h4>
3
    <div class="col-10">
4
        <div class="display-5">Administrace - Editace uživatele</div>
5 5
    </div>
6
    <div class="col-1">
6
    <div class="col-2 text-right">
7 7
        <a n:href="User:default" class="btn btn-sm btn-success"><span class="fa fa-fw fa-list"></span> Seznam uživatelů</a>
8 8
    </div>
9 9
</div>
app/config/components.neon
9 9
    - App\FrontModule\Components\ILoginFormFactory
10 10
    - App\AdminModule\Components\IUserEditFormFactory
11 11
    - App\FrontModule\Components\ITransliterationSearchFormFactory
12
    - App\AdminModule\Components\ISurfaceTypeEditFormFactory
12 13
    - App\AdminModule\Components\IMuseumEditFormFactory

Také k dispozici: Unified diff