X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FImportBundle%2FController%2FWallabagController.php;h=5180006d3e784d17cef11897eadef81f6eb227a7;hb=48b0163d247554d7e2f1ec63b717c8216ea9ec59;hp=01883d4a67799a79c3092cdf05a9e853e6d18d7f;hpb=e2dda631529b1299b544d35bc3df1b59963a9d9b;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/ImportBundle/Controller/WallabagController.php b/src/Wallabag/ImportBundle/Controller/WallabagController.php index 01883d4a..5180006d 100644 --- a/src/Wallabag/ImportBundle/Controller/WallabagController.php +++ b/src/Wallabag/ImportBundle/Controller/WallabagController.php @@ -3,7 +3,9 @@ namespace Wallabag\ImportBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; +use Symfony\Component\HttpFoundation\RedirectResponse; use Symfony\Component\HttpFoundation\Request; +use Symfony\Component\HttpFoundation\Response; use Wallabag\ImportBundle\Form\Type\UploadImportType; /** @@ -11,25 +13,9 @@ use Wallabag\ImportBundle\Form\Type\UploadImportType; */ abstract class WallabagController extends Controller { - /** - * 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(); - /** * Handle import request. * - * @param Request $request - * * @return Response|RedirectResponse */ public function indexAction(Request $request) @@ -38,16 +24,16 @@ abstract class WallabagController 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(); @@ -55,12 +41,18 @@ abstract class WallabagController extends Controller if (true === $res) { $summary = $wallabag->getSummary(); - $message = $this->get('translator')->trans('flashes.import.notice.summary', array( + $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( @@ -69,12 +61,12 @@ abstract class WallabagController extends Controller ); return $this->redirect($this->generateUrl('homepage')); - } else { - $this->get('session')->getFlashBag()->add( - 'notice', - 'flashes.import.notice.failed_on_file' - ); } + + $this->get('session')->getFlashBag()->add( + 'notice', + 'flashes.import.notice.failed_on_file' + ); } return $this->render($this->getImportTemplate(), [ @@ -82,4 +74,18 @@ abstract class WallabagController 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(); }