FolderController::deleteAction()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 21
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.3142
c 0
b 0
f 0
cc 2
eloc 14
nc 2
nop 2
1
<?php
2
3
namespace Victoire\Bundle\MediaBundle\Controller;
4
5
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
6
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
7
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
8
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
9
use Symfony\Component\HttpFoundation\RedirectResponse;
10
use Symfony\Component\HttpFoundation\Request;
11
use Symfony\Component\HttpFoundation\Response;
12
use Victoire\Bundle\CoreBundle\Controller\VictoireAlertifyControllerTrait;
13
use Victoire\Bundle\MediaBundle\Entity\Folder;
14
use Victoire\Bundle\MediaBundle\Form\FolderType;
15
16
/**
17
 * folder controller.
18
 *
19
 * @Route("/victoire-media/folder")
20
 */
21
class FolderController extends Controller
22
{
23
    use VictoireAlertifyControllerTrait;
24
25
    /**
26
     * @param int $folderId The folder id
27
     *
28
     * @Route("/{folderId}", requirements={"folderId" = "\d+"}, name="VictoireMediaBundle_folder_show")
29
     * @Template()
30
     *
31
     * @return array
32
     */
33
    public function showAction($folderId)
34
    {
35
        $em = $this->getDoctrine()->getManager();
36
37
        /* @var Folder $folder */
38
        $folder = $em->getRepository('VictoireMediaBundle:Folder')->getFolder($folderId);
39
        $folders = $em->getRepository('VictoireMediaBundle:Folder')->getAllFolders();
40
41
        $sub = new Folder();
42
        $sub->setParent($folder);
43
        $subForm = $this->createForm(FolderType::class, $sub, ['folder' => $sub]);
44
        $editForm = $this->createForm(FolderType::class, $folder, ['folder' => $folder]);
45
46
        return [
47
            'mediamanager'  => $this->get('victoire_media.media_manager'),
48
            'subform'       => $subForm->createView(),
49
            'editform'      => $editForm->createView(),
50
            'folder'        => $folder,
51
            'folders'       => $folders,
52
        ];
53
    }
54
55
    /**
56
     * @param Request $request
57
     * @param int     $folderId
58
     *
59
     * @throws \Doctrine\ORM\EntityNotFoundException
60
     *
61
     * @return RedirectResponse
62
     * @Route("/delete/{folderId}", requirements={"folderId" = "\d+"}, name="VictoireMediaBundle_folder_delete")
63
     */
64
    public function deleteAction(Request $request, $folderId)
0 ignored issues
show
Unused Code introduced by
The parameter $request is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
65
    {
66
        $em = $this->getDoctrine()->getManager();
67
68
        /* @var Folder $folder */
69
        $folder = $em->getRepository('VictoireMediaBundle:Folder')->getFolder($folderId);
70
        $folderName = $folder->getName();
71
        $parentFolder = $folder->getParent();
72
73
        if (empty($parentFolder)) {
74
            $this->scold('You can\'t delete the \''.$folderName.'\' Folder!');
75
        } else {
76
            $folder->setDeleted(true);
77
            $em->persist($folder);
78
            $em->flush();
79
            $this->congrat('Folder \''.$folderName.'\' has been deleted!');
80
            $folderId = $parentFolder->getId();
81
        }
82
83
        return new RedirectResponse($this->generateUrl('VictoireMediaBundle_folder_show', ['folderId'  => $folderId]));
84
    }
85
86
    /**
87
     * @param Request $request
88
     * @param int     $folderId
89
     *
90
     * @throws \Doctrine\ORM\EntityNotFoundException
91
     *
92
     * @return Response
93
     * @Route("/subcreate/{folderId}", requirements={"folderId" = "\d+"}, name="VictoireMediaBundle_folder_sub_create")
94
     * @Method({"GET", "POST"})
95
     * @Template()
96
     */
97
    public function subCreateAction(Request $request, $folderId)
98
    {
99
        $em = $this->getDoctrine()->getManager();
100
101
        /* @var Folder $parent */
102
        $parent = $em->getRepository('VictoireMediaBundle:Folder')->getFolder($folderId);
103
        $folder = new Folder();
104
        $folder->setParent($parent);
105
        $form = $this->createForm(FolderType::class, $folder, ['folder' => $folder]);
106
        if ('POST' == $request->getMethod()) {
107
            $form->handleRequest($request);
108
            if ($form->isValid()) {
109
                $em->getRepository('VictoireMediaBundle:Folder')->save($folder);
110
111
                $this->congrat('Folder \''.$folder->getName().'\' has been created!');
112
113
                return new Response('<script>window.location="'.$this->generateUrl('VictoireMediaBundle_folder_show', ['folderId' => $folder->getId()]).'"</script>');
114
            }
115
        }
116
117
        $galleries = $em->getRepository('VictoireMediaBundle:Folder')->getAllFolders();
118
119
        return $this->render('VictoireMediaBundle:Folder:addsub-modal.html.twig', [
120
            'subform'   => $form->createView(),
121
            'galleries' => $galleries,
122
            'folder'    => $folder,
123
            'parent'    => $parent,
124
        ]);
125
    }
126
}
127