Skip to content
Snippets Groups Projects
Select Git revision
  • fb578212db5890e0cfbc50bfb9df924b8d807e8c
  • main default
  • 35-cgu
  • 34-peertube-support
  • 27-add-autoplay-to-iframe
  • 33-bug-on-youtube-embed-urls
  • RC-Rekall-v1.1-fix_lpo
  • tuleap-140-go-back-to-my-capsules-page-when-i-m-on-capsule-preview-page
  • RC-Rekall-v1.2-fix10
  • RC-Rekall-v1.2-fix9
  • RC-Rekall-v1.2-fix8
  • RC-Rekall-v1.2-fix7
  • RC-Rekall-v1.2-fix6
  • RC-Rekall-v1.2-fix5
  • RC-Rekall-v1.2-fix4
  • RC-Rekall-v1.2-fix3
  • RC-Rekall-v1.2-fix2
  • RC-Rekall-v1.2-fix1
  • RC-Rekall-v1.1-fix-3
  • RC-Rekall-v1.1-fix-2
  • RC-Rekall-v1.1-fix-1
  • RC-Rekall-v1.1-delivered
  • preprod20220209-1535
23 results

CapsuleGroupController.php

Blame
  • CapsuleGroupController.php 4.22 KiB
    <?php
    
    namespace App\Controller;
    
    use App\Entity\Capsule;
    use App\Entity\Group;
    use App\Entity\User;
    use App\Form\CreateCapsuleGroupsFormType;
    use App\Repository\CapsuleRepository;
    use Doctrine\ORM\EntityManagerInterface;
    use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\HttpFoundation\Response;
    use Symfony\Contracts\Translation\TranslatorInterface;
    use Symfony\Component\Routing\Annotation\Route;
    
    class CapsuleGroupController extends AbstractController
    {
        private TranslatorInterface $translator;
        private CapsuleRepository $capsule_repository;
        private EntityManagerInterface $entity_manager;
    
        public function __construct(
            TranslatorInterface $translator,
            CapsuleRepository $capsule_repository,
            EntityManagerInterface $entity_manager
        ) {
            $this->translator = $translator;
            $this->capsule_repository = $capsule_repository;
            $this->entity_manager = $entity_manager;
        }
    
        /**
         * @Route("/capsule/{capsule_id}/groups/edit", name="edit_capsule_groups")
         */
        public function edit(int $capsule_id, Request $request): Response
        {
            $current_user = $this->getUser();
    
            if (! $current_user instanceof User) {
                return $this->redirectToRoute('app_logout');
            }
    
            $form = $this->createForm(CreateCapsuleGroupsFormType::class);
            $form->handleRequest($request);
    
            $capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
    
            if (! $capsule instanceof Capsule) {
                throw new \Exception("Capsule does not exist");
            }
    
            $groups = $capsule->getGroups();
    
            if ($form->isSubmitted() && $form->isValid()) {
    //            $group_name = $form->get('name')->getData();
    //            $group = new Group();
    //            $group->setName($group_name);
    //            $this->entity_manager->persist($group);
    //            $capsule->addGroup($group);
    //            $this->entity_manager->persist($capsule);
    //            $this->entity_manager->flush();
    //
    //            $this->addFlash(
    //                'success',
    //                $this->translator->trans(
    //                    'groups.add.success',
    //                    [
    //                        'group_name' => $group->getName(),
    //                        'capsule_name' => $capsule->getName()
    //                    ]
    //                )
    //            );
    
                return $this->redirectToRoute('edit_capsule_groups', [
                    'capsule_id' => $capsule_id
                ]);
            }
    
            return $this->render('capsule/groups/edit.html.twig', [
                'editCapsuleGroupsForm' => $form->createView(),
                'capsule' => $capsule,
                'groups' => $groups
            ]);
        }
    
        /**
         * @Route("capsule/{capsule_id}/groups/create", name="create_group")
         */
        public function create(int $capsule_id, Request $request): Response
        {
            $current_user = $this->getUser();
    
            if (! $current_user instanceof User) {
                return $this->redirectToRoute('app_logout');
            }
    
            $form = $this->createForm(CreateCapsuleGroupsFormType::class);
            $form->handleRequest($request);
    
            $capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
    
            if (! $capsule instanceof Capsule) {
                throw new \Exception("Capsule does not exist");
            }
    
            if ($form->isSubmitted() && $form->isValid()) {
                $group_name = $form->get('name')->getData();
                $group = new Group();
                $group->setName($group_name);
                $this->entity_manager->persist($group);
                $this->entity_manager->flush();
    
                $this->addFlash(
                    'success',
                    $this->translator->trans(
                        'groups.create.success',
                        [
                            'group_name' => $group->getName()
                        ]
                    )
                );
    
                return $this->redirectToRoute('edit_capsule_groups', [
                    'capsule_id' => $capsule_id
                ]);
            }
    
            return $this->render('capsule/groups/create.html.twig', [
                'createCapsuleGroupsForm' => $form->createView(),
                'capsule' => $capsule
            ]);
        }
    }