diff --git a/src/Controller/EntrypointController.php b/src/Controller/EntrypointController.php new file mode 100644 index 0000000..78ca652 --- /dev/null +++ b/src/Controller/EntrypointController.php @@ -0,0 +1,18 @@ +redirectToRoute('app_home'); + } +} \ No newline at end of file diff --git a/src/Controller/HomeController.php b/src/Controller/HomeController.php index 447f38b..22efda8 100644 --- a/src/Controller/HomeController.php +++ b/src/Controller/HomeController.php @@ -3,7 +3,6 @@ namespace App\Controller; use App\Forms\UploadFileForm; -use App\Objects\UploadedFileData; use App\Service\FileSystemService; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; @@ -12,25 +11,12 @@ use Symfony\Component\Routing\Attribute\Route; class HomeController extends AbstractController { - #[Route(path: '/', name: 'app_home', methods: [Request::METHOD_GET, Request::METHOD_POST])] - public function __invoke( - FileSystemService $fileSystemService, - Request $request, - ): Response + #[Route(path: '/files', name: 'app_home', methods: [Request::METHOD_GET])] + public function __invoke(FileSystemService $fileSystemService): Response { - $fileData = new UploadedFileData(); - $form = $this->createForm(UploadFileForm::class, $fileData)->handleRequest($request); - - if ($form->isSubmitted() && $form->isValid()) { - dd($form->getData(), $form->getExtraData()); - $fileSystemService->uploadFile($fileData->file); - - return $this->redirectToRoute('app_home'); - } - return $this->render('home.html.twig', [ 'content' => $fileSystemService->getDirs(), - 'fileForm' => $form, + 'fileForm' => $this->createForm(UploadFileForm::class), ]); } } \ No newline at end of file diff --git a/src/Controller/UploadController.php b/src/Controller/UploadController.php new file mode 100644 index 0000000..d10aa9d --- /dev/null +++ b/src/Controller/UploadController.php @@ -0,0 +1,31 @@ +createForm(UploadFileForm::class, $fileData)->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $fileSystemService->uploadFile($fileData->file); + } + + return $this->redirectToRoute('app_home'); + } +} \ No newline at end of file diff --git a/src/Forms/UploadFileForm.php b/src/Forms/UploadFileForm.php index e52045a..698c549 100644 --- a/src/Forms/UploadFileForm.php +++ b/src/Forms/UploadFileForm.php @@ -5,12 +5,19 @@ namespace App\Forms; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\FileType; use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; class UploadFileForm extends AbstractType { + public function __construct(private readonly UrlGeneratorInterface $urlGenerator) + { + } + public function buildForm(FormBuilderInterface $builder, array $options) { - $builder->add('file', FileType::class, [ + $builder + ->setAction($this->urlGenerator->generate('app_upload')) + ->add('file', FileType::class, [ 'attr' => ['class' => 'hidden'], 'multiple' => true, ]); diff --git a/templates/_partials/_table.html.twig b/templates/_partials/_table.html.twig index d1d9fef..b159d15 100644 --- a/templates/_partials/_table.html.twig +++ b/templates/_partials/_table.html.twig @@ -2,8 +2,8 @@ -
- - + + name @@ -33,4 +33,4 @@ -{{ form_end(fileForm) }} \ No newline at end of file +{{ form_end(fileForm) }} diff --git a/templates/home.html.twig b/templates/home.html.twig index 82351e1..f450b25 100644 --- a/templates/home.html.twig +++ b/templates/home.html.twig @@ -4,8 +4,6 @@ {% block body %}
-

Welcome to the File Explorer

-

Use the navigation bar to explore the files and directories.

{% include '_partials/_table.html.twig' %}
{% endblock %} \ No newline at end of file