]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/ImportBundle/Controller/BrowserController.php
Add a real configuration for CS-Fixer
[github/wallabag/wallabag.git] / src / Wallabag / ImportBundle / Controller / BrowserController.php
index 3b54a72e86d1a69e205e0dc400c4e6dfdefaaee7..0753e318b844175c8eb2b9f3de6490dbd8b56e07 100644 (file)
@@ -2,34 +2,14 @@
 
 namespace Wallabag\ImportBundle\Controller;
 
-use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Symfony\Bundle\FrameworkBundle\Controller\Controller;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpFoundation\Response;
 use Wallabag\ImportBundle\Form\Type\UploadImportType;
 
-class BrowserController extends Controller
+abstract class BrowserController extends Controller
 {
-    /**
-     * Return the service to handle the import.
-     *
-     * @return \Wallabag\ImportBundle\Import\ImportInterface
-     */
-    protected function getImportService()
-    {
-        return $this->get('wallabag_import.browser.import');
-    }
-
-     /**
-      * Return the template used for the form.
-      *
-      * @return string
-      */
-     protected function getImportTemplate()
-     {
-         return 'WallabagImportBundle:Browser:index.html.twig';
-     }
-
     /**
      * @Route("/browser", name="import_browser")
      *
@@ -43,16 +23,16 @@ class BrowserController extends Controller
         $form->handleRequest($request);
 
         $wallabag = $this->getImportService();
+        $wallabag->setUser($this->getUser());
 
-        if ($form->isValid()) {
+        if ($form->isSubmitted() && $form->isValid()) {
             $file = $form->get('file')->getData();
             $markAsRead = $form->get('mark_as_read')->getData();
-            $name = $this->getUser()->getId().'.json';
+            $name = $this->getUser()->getId() . '.json';
 
-            if (in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes')) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
+            if (null !== $file && in_array($file->getClientMimeType(), $this->getParameter('wallabag_import.allow_mimetypes'), true) && $file->move($this->getParameter('wallabag_import.resource_dir'), $name)) {
                 $res = $wallabag
-                    ->setUser($this->getUser())
-                    ->setFilepath($this->getParameter('wallabag_import.resource_dir').'/'.$name)
+                    ->setFilepath($this->getParameter('wallabag_import.resource_dir') . '/' . $name)
                     ->setMarkAsRead($markAsRead)
                     ->import();
 
@@ -60,13 +40,18 @@ class BrowserController extends Controller
 
                 if (true === $res) {
                     $summary = $wallabag->getSummary();
-                    // TODO : Pluralize these messages
                     $message = $this->get('translator')->trans('flashes.import.notice.summary', [
                         '%imported%' => $summary['imported'],
                         '%skipped%' => $summary['skipped'],
                     ]);
 
-                    unlink($this->getParameter('wallabag_import.resource_dir').'/'.$name);
+                    if (0 < $summary['queued']) {
+                        $message = $this->get('translator')->trans('flashes.import.notice.summary_with_queue', [
+                            '%queued%' => $summary['queued'],
+                        ]);
+                    }
+
+                    unlink($this->getParameter('wallabag_import.resource_dir') . '/' . $name);
                 }
 
                 $this->get('session')->getFlashBag()->add(
@@ -75,12 +60,11 @@ class BrowserController extends Controller
                 );
 
                 return $this->redirect($this->generateUrl('homepage'));
-            } else {
-                $this->get('session')->getFlashBag()->add(
+            }
+            $this->get('session')->getFlashBag()->add(
                     'notice',
                     'flashes.import.notice.failed_on_file'
                 );
-            }
         }
 
         return $this->render($this->getImportTemplate(), [
@@ -88,4 +72,18 @@ class BrowserController extends Controller
             'import' => $wallabag,
         ]);
     }
+
+    /**
+     * Return the service to handle the import.
+     *
+     * @return \Wallabag\ImportBundle\Import\ImportInterface
+     */
+    abstract protected function getImportService();
+
+     /**
+      * Return the template used for the form.
+      *
+      * @return string
+      */
+     abstract protected function getImportTemplate();
 }