1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-09-15 18:57:05 +00:00

Displays an error with an annotation with a too long quote

Fix #2762
This commit is contained in:
adev 2017-05-07 17:21:30 +02:00
parent a687c8d915
commit 2c3e148b00
23 changed files with 272 additions and 28 deletions

View file

@ -7,6 +7,8 @@ use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
use Wallabag\AnnotationBundle\Entity\Annotation;
use Wallabag\AnnotationBundle\Form\EditAnnotationType;
use Wallabag\AnnotationBundle\Form\NewAnnotationType;
use Wallabag\CoreBundle\Entity\Entry;
class WallabagAnnotationController extends FOSRestController
@ -49,25 +51,25 @@ class WallabagAnnotationController extends FOSRestController
$data = json_decode($request->getContent(), true);
$em = $this->getDoctrine()->getManager();
$annotation = new Annotation($this->getUser());
$annotation->setText($data['text']);
if (array_key_exists('quote', $data)) {
$annotation->setQuote($data['quote']);
}
if (array_key_exists('ranges', $data)) {
$annotation->setRanges($data['ranges']);
}
$annotation->setEntry($entry);
$em->persist($annotation);
$em->flush();
$form = $this->get('form.factory')->createNamed('', NewAnnotationType::class, $annotation, [
'csrf_protection' => false,
'allow_extra_fields' => true,
]);
$form->submit($data);
$json = $this->get('serializer')->serialize($annotation, 'json');
if ($form->isValid()) {
$em->persist($annotation);
$em->flush();
return (new JsonResponse())->setJson($json);
$json = $this->get('serializer')->serialize($annotation, 'json');
return JsonResponse::fromJsonString($json);
}
return $form;
}
/**
@ -86,16 +88,23 @@ class WallabagAnnotationController extends FOSRestController
{
$data = json_decode($request->getContent(), true);
if (!is_null($data['text'])) {
$annotation->setText($data['text']);
$form = $this->get('form.factory')->createNamed('', EditAnnotationType::class, $annotation, [
'csrf_protection' => false,
'allow_extra_fields' => true,
]);
$form->submit($data);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($annotation);
$em->flush();
$json = $this->get('serializer')->serialize($annotation, 'json');
return JsonResponse::fromJsonString($json);
}
$em = $this->getDoctrine()->getManager();
$em->flush();
$json = $this->get('serializer')->serialize($annotation, 'json');
return (new JsonResponse())->setJson($json);
return $form;
}
/**