EditController.php 2.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace Muzich\PlaylistBundle\Controller;
  3. use Muzich\CoreBundle\lib\Controller;
  4. use Muzich\CoreBundle\Entity\Playlist;
  5. use Symfony\Component\HttpFoundation\Request;
  6. class EditController extends Controller
  7. {
  8. // TODO: Cette méthode ET les autres: Mettre à jour avec le gestionnaire d'accès (Security)
  9. public function updateOrderAction(Request $request, $playlist_id)
  10. {
  11. $playlist_manager = $this->getPlaylistManager();
  12. if (!($playlist = $playlist_manager->findOwnedPlaylistWithId($playlist_id, $this->getUser())) || !$request->get('elements'))
  13. return $this->jsonNotFoundResponse();
  14. $playlist_manager->updatePlaylistElementsOrder($playlist, $request->get('elements'));
  15. $this->flush();
  16. return $this->jsonSuccessResponse();
  17. }
  18. public function removeElementAction($playlist_id, $element_id)
  19. {
  20. $playlist_manager = $this->getPlaylistManager();
  21. if (!($playlist = $playlist_manager->findOwnedPlaylistWithId($playlist_id, $this->getUser())))
  22. return $this->jsonNotFoundResponse();
  23. $playlist_manager->removePlaylistElementWithId($playlist, $element_id);
  24. $this->flush();
  25. return $this->jsonSuccessResponse();
  26. }
  27. public function addElementAction($playlist_id, $element_id)
  28. {
  29. $playlist_manager = $this->getPlaylistManager();
  30. if (!($playlist = $playlist_manager->findOwnedPlaylistWithId($playlist_id, $this->getUser()))
  31. || !($element = $this->getElementWithId($element_id)))
  32. return $this->jsonNotFoundResponse();
  33. $playlist_manager->addElementToPlaylist($element, $playlist);
  34. $this->flush();
  35. return $this->jsonSuccessResponse();
  36. }
  37. public function addElementAndCreateAction(Request $request, $element_id)
  38. {
  39. if (!($element = $this->getElementWithId($element_id)))
  40. return $this->jsonNotFoundResponse();
  41. $form = $this->getPlaylistForm();
  42. $form->bind($request);
  43. if ($form->isValid())
  44. {
  45. $this->getPlaylistManager()->addElementToPlaylist($element, $form->getData());
  46. $this->flush();
  47. return $this->jsonSuccessResponse();
  48. }
  49. return $this->jsonResponseError('form_error',
  50. $this->render('MuzichPlaylistBundle:Show:form.html.twig', array(
  51. 'form' => $form->createView(),
  52. 'element_id' => $element_id
  53. ))->getContent()
  54. );
  55. }
  56. }