Fix recent update

- some missing url parameters from WallabagRestController & EntryController
- use a service for `EntryFilterType` to use fully qualified name instead (so changing class signature)
- update ImportBundle (url & form)
This commit is contained in:
Jeremy Benoist 2016-01-09 18:38:40 +01:00
parent 8ba854c068
commit 1d76102a24
8 changed files with 31 additions and 19 deletions

View file

@ -8,6 +8,7 @@ use Hateoas\Representation\Factory\PagerfantaFactory;
use Nelmio\ApiDocBundle\Annotation\ApiDoc; use Nelmio\ApiDocBundle\Annotation\ApiDoc;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Wallabag\CoreBundle\Entity\Entry; use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag; use Wallabag\CoreBundle\Entity\Tag;
@ -84,7 +85,7 @@ class WallabagRestController extends FOSRestController
$pagerfantaFactory = new PagerfantaFactory('page', 'perPage'); $pagerfantaFactory = new PagerfantaFactory('page', 'perPage');
$paginatedCollection = $pagerfantaFactory->createRepresentation( $paginatedCollection = $pagerfantaFactory->createRepresentation(
$pager, $pager,
new Route('api_get_entries', [], $absolute = true) new Route('api_get_entries', [], UrlGeneratorInterface::ABSOLUTE_URL)
); );
$json = $this->get('serializer')->serialize($paginatedCollection, 'json'); $json = $this->get('serializer')->serialize($paginatedCollection, 'json');

View file

@ -234,7 +234,7 @@ class EntryController extends Controller
throw new \InvalidArgumentException(sprintf('Type "%s" is not implemented.', $type)); throw new \InvalidArgumentException(sprintf('Type "%s" is not implemented.', $type));
} }
$form = $this->createForm(new EntryFilterType($repository, $this->getUser())); $form = $this->createForm(EntryFilterType::class);
if ($request->query->has($form->getName())) { if ($request->query->has($form->getName())) {
// manually bind values from the request // manually bind values from the request

View file

@ -12,7 +12,7 @@ use Lexik\Bundle\FormFilterBundle\Filter\Form\Type\ChoiceFilterType;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolver;
use Wallabag\UserBundle\Entity\User; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
class EntryFilterType extends AbstractType class EntryFilterType extends AbstractType
{ {
@ -23,12 +23,12 @@ class EntryFilterType extends AbstractType
* Repository & user are used to get a list of language entries for this user. * Repository & user are used to get a list of language entries for this user.
* *
* @param EntityRepository $entryRepository * @param EntityRepository $entryRepository
* @param User $user * @param TokenStorage $token
*/ */
public function __construct(EntityRepository $entryRepository, User $user) public function __construct(EntityRepository $entryRepository, TokenStorage $token)
{ {
$this->repository = $entryRepository; $this->repository = $entryRepository;
$this->user = $user; $this->user = $token->getToken()->getUser();
} }
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
@ -54,13 +54,13 @@ class EntryFilterType extends AbstractType
) )
->add('domainName', TextFilterType::class, array( ->add('domainName', TextFilterType::class, array(
'apply_filter' => function (QueryInterface $filterQuery, $field, $values) { 'apply_filter' => function (QueryInterface $filterQuery, $field, $values) {
$value = $values['value']; $value = $values['value'];
if (strlen($value) <= 2 || empty($value)) { if (strlen($value) <= 2 || empty($value)) {
return; return;
} }
$expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%')); $expression = $filterQuery->getExpr()->like($field, $filterQuery->getExpr()->literal('%'.$value.'%'));
return $filterQuery->createCondition($expression); return $filterQuery->createCondition($expression);
}, },
)) ))
->add('isArchived', CheckboxFilterType::class) ->add('isArchived', CheckboxFilterType::class)

View file

@ -26,7 +26,7 @@ class UserInformationType extends AbstractType
public function getParent() public function getParent()
{ {
return 'fos_user_registration'; return 'FOS\UserBundle\Form\Type\RegistrationFormType';
} }
public function configureOptions(OptionsResolver $resolver) public function configureOptions(OptionsResolver $resolver)

View file

@ -14,6 +14,14 @@ services:
tags: tags:
- { name: form.type } - { name: form.type }
wallabag_core.filter.type.entry:
class: Wallabag\CoreBundle\Filter\EntryFilterType
arguments:
- "@wallabag_core.entry_repository"
- "@security.token_storage"
tags:
- { name: form.type }
wallabag_core.param_converter.username_rsstoken_converter: wallabag_core.param_converter.username_rsstoken_converter:
class: Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter class: Wallabag\CoreBundle\ParamConverter\UsernameRssTokenConverter
tags: tags:

View file

@ -3,6 +3,7 @@
namespace Wallabag\ImportBundle\Controller; namespace Wallabag\ImportBundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class PocketController extends Controller class PocketController extends Controller
@ -23,12 +24,12 @@ class PocketController extends Controller
public function authAction() public function authAction()
{ {
$requestToken = $this->get('wallabag_import.pocket.import') $requestToken = $this->get('wallabag_import.pocket.import')
->getRequestToken($this->generateUrl('import', [], true)); ->getRequestToken($this->generateUrl('import', UrlGeneratorInterface::ABSOLUTE_URL));
$this->get('session')->set('import.pocket.code', $requestToken); $this->get('session')->set('import.pocket.code', $requestToken);
return $this->redirect( return $this->redirect(
'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', [], true), 'https://getpocket.com/auth/authorize?request_token='.$requestToken.'&redirect_uri='.$this->generateUrl('import_pocket_callback', UrlGeneratorInterface::ABSOLUTE_URL),
301 301
); );
} }

View file

@ -14,7 +14,7 @@ class WallabagV1Controller extends Controller
*/ */
public function indexAction(Request $request) public function indexAction(Request $request)
{ {
$form = $this->createForm(new UploadImportType()); $form = $this->createForm(UploadImportType::class);
$form->handleRequest($request); $form->handleRequest($request);
$wallabag = $this->get('wallabag_import.wallabag_v1.import'); $wallabag = $this->get('wallabag_import.wallabag_v1.import');

View file

@ -4,18 +4,20 @@ namespace Wallabag\ImportBundle\Form\Type;
use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\FileType;
class UploadImportType extends AbstractType class UploadImportType extends AbstractType
{ {
public function buildForm(FormBuilderInterface $builder, array $options) public function buildForm(FormBuilderInterface $builder, array $options)
{ {
$builder $builder
->add('file', 'file') ->add('file', FileType::class)
->add('save', 'submit') ->add('save', SubmitType::class)
; ;
} }
public function getName() public function getBlockPrefix()
{ {
return 'upload_import_file'; return 'upload_import_file';
} }