示例#1
0
 /**
  * Handle AJAX delete (modal)
  *
  * @param Request $request
  * @param ContentAdmin $admin
  * @param $entity
  * @return JsonResponse
  */
 public function modalDelete(Request $request, ContentAdmin $admin, $entity)
 {
     $status = 200;
     if (null === $entity) {
         $content = $this->renderView('LeaptAdminBundle:' . StringUtil::camelize($admin->getAlias()) . ':modalError.html.twig');
     } else {
         if ($request->isMethod('post')) {
             try {
                 $admin->deleteEntity($entity);
                 $this->buildEntityFlash('success', 'content.delete.flash.success', $admin, $entity);
                 $result = array('entity_id' => $entity->getId(), 'entity_name' => $admin->getEntityName($entity));
                 $redirectUrl = $request->headers->get('referer');
                 return new JsonResponse(array('result' => $result, 'redirect_url' => $redirectUrl), 301);
             } catch (\Exception $e) {
                 $status = 400;
                 $this->buildEntityFlash('error', 'content.delete.flash.error', $admin, $entity);
                 $this->get('logger')->addError($e->getMessage());
             }
         }
         $content = $this->renderView('LeaptAdminBundle:' . StringUtil::camelize($admin->getAlias()) . ':modalDelete.html.twig', array('admin' => $admin, 'entity' => $entity));
     }
     return new JsonResponse(array('content' => $content), $status);
 }