Completed
Pull Request — master (#2)
by Andrew
02:53
created

AdminMenuItemController::showItemAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 5
ccs 0
cts 4
cp 0
rs 9.4285
cc 1
eloc 2
nc 1
nop 2
crap 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: kate
5
 * Date: 18.03.16
6
 * Time: 11:34
7
 */
8
9
namespace AppBundle\Controller\Admin;
10
11
use AppBundle\Entity\MenuItem;
12
use AppBundle\Form\MenuItemType;
13
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
14
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
15
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
16
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
17
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
18
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
19
use Symfony\Component\HttpFoundation\Request;
20
21
/**
22
 * @Security("has_role('ROLE_MANAGER')")
23
 * @Route("/admin")
24
 */
25
class AdminMenuItemController extends Controller
26
{
27
    /**
28
     * @Route("/menu_items", name="admin_items")
29
     */
30
    public function showItemsAction(Request $request)
31
    {
32
        $em = $this->getDoctrine()->getManager();
33
        $items = $em->getRepository('AppBundle:MenuItem')->findAll();
34
       return $this->render('@App/admin/menu_item/items.html.twig', array('items' => $items));
35
    }
36
37
    /**
38
     * @Route("/menu_item/new", name="admin_add_menu_item")
39
     */
40
    public function addItemAction(Request $request)
41
    {
42
        $em = $this->getDoctrine()->getManager();
43
        $menu_item = new MenuItem();
44
        $form = $this->createForm(MenuItemType::class, $menu_item);
45
        $form->handleRequest($request);
46
        if ($form->isSubmitted() && $form->isValid()) {
47
            $em->persist($menu_item);
48
            $em->flush();
49
            return $this->redirectToRoute('admin_items');
50
        }
51
        return $this->render('@App/admin/menu_item/new_item.html.twig', array(
52
            'item' => $menu_item,
53
            'form' => $form->createView(),
54
        ));
55
56
    }
57
58
    /**
59
     * @Route("/menu_item/show/{id}", name="admin_item_show")
60
     * @ParamConverter("MenuItem", options={"mapping": {"id": "id"}})
61
     */
62
    public function showItemAction(Request $request, MenuItem $menuItem)
63
    {
64
        return $this->render('@App/admin/menu_item/show_item.html.twig', array('item' => $menuItem));
65
66
    }
67
68
    /**
69
     * @Route("/menu_item/edit/{id}", name="admin_item_edit")
70
     * @Method({"GET", "PUT"})
71
     * @Security("has_role('ROLE_ADMIN')")
72
     * @ParamConverter("MenuItem", options={"mapping": {"id": "id"}})
73
     */
74
    public function editItemAction(Request $request, MenuItem $menuItem)
75
    {
76
77
        $em = $this->getDoctrine()->getManager();
78
        $form = $this->createForm(MenuItemType::class, $menuItem, [
79
            'method' => 'PUT',
80
            'attr' => [ 'class' => 'horizontal']
81
        ])
82
            ->add('submit', SubmitType::class, ['label' => 'Edit',
83
                'attr' => [ 'class' => 'btn btn-raised btn-default' ]
84
            ]);
85
        if ($request->getMethod() == 'PUT') {
86
            $form->handleRequest($request);
87
            if ($form->isValid() && $form->isSubmitted()) {
88
                $em->persist($menuItem);
89
                $em->flush();
90
                return $this->redirectToRoute('admin_items');
91
            }
92
        }
93
        return $this->render('@App/admin/menu_item/edit_menu_item.html.twig', array(
94
            'form' => $form->createView(),
95
        ));
96
97
98
    }
99
}