Exemple #1
0
 public function handleRequest(CantigaController $ctrl, Request $request)
 {
     $answer = $request->query->get('answer', null);
     if ($answer == 'yes') {
         $callback = $this->successCallback;
         $callback();
         return $ctrl->redirect($ctrl->generateUrl($this->routeName, $this->routeArgs));
     } elseif ($answer == 'no') {
         return $ctrl->redirect($ctrl->generateUrl($this->routeName, $this->routeArgs));
     } else {
         $successArgs = $this->respondArgs;
         $cancelArgs = $this->respondArgs;
         $successArgs['answer'] = 'yes';
         $cancelArgs['answer'] = 'no';
         return $ctrl->render('CantigaCoreBundle:layout:question.html.twig', array('pageTitle' => $this->title, 'pageSubtitle' => $this->subtitle, 'questionTitle' => $ctrl->trans('Question', [], 'general'), 'question' => $this->question, 'successPath' => $ctrl->generateUrl($this->respondName, $successArgs), 'failurePath' => $ctrl->generateUrl($this->respondName, $cancelArgs), 'successBtn' => $ctrl->trans('Indeed', [], 'general'), 'failureBtn' => $ctrl->trans('Cancel', [], 'general')));
     }
 }
Exemple #2
0
 public function run(CantigaController $controller, $id, Request $request)
 {
     try {
         $repository = $this->info->getRepository();
         $item = $repository->getItem($id);
         $nameProperty = 'get' . ucfirst($this->info->getItemNameProperty());
         $name = $item->{$nameProperty}();
         if (!$item instanceof RemovableEntityInterface) {
             throw new LogicException('This entity does not support removing.');
         }
         if (!$item->canRemove()) {
             throw new ModelException($controller->trans($this->info->getCannotRemoveMessage(), [$name]));
         }
         $answer = $request->query->get('answer', null);
         if ($answer == 'yes') {
             $repository->remove($item);
             return $this->onSuccess($controller, $controller->trans($this->info->getItemRemovedMessage(), [$item->{$nameProperty}()]));
         } elseif ($answer == 'no') {
             return $this->toIndexPage($controller);
         } else {
             $controller->breadcrumbs()->link($name, $this->info->getInfoPage(), $this->slugify(['id' => $id]));
             $controller->breadcrumbs()->link($controller->trans('Remove', [], 'general'), $this->info->getRemovePage(), $this->slugify(['id' => $id]));
             $vars = $this->getVars();
             $vars['pageTitle'] = $this->info->getPageTitle();
             $vars['pageSubtitle'] = $this->info->getPageSubtitle();
             $vars['questionTitle'] = $controller->trans($this->info->getRemoveQuestionTitle());
             $vars['question'] = $controller->trans($this->info->getRemoveQuestion(), [$item->{$nameProperty}()]);
             $vars['successPath'] = $controller->generateUrl($this->info->getRemovePage(), $this->slugify(['id' => $id, 'answer' => 'yes']));
             $vars['failurePath'] = $controller->generateUrl($this->info->getRemovePage(), $this->slugify(['id' => $id, 'answer' => 'no']));
             $vars['successBtn'] = $controller->trans('Indeed, remove it', [], 'general');
             $vars['failureBtn'] = $controller->trans('Cancel', [], 'general');
             $vars['indexPage'] = $this->info->getIndexPage();
             $vars['infoPage'] = $this->info->getInfoPage();
             $vars['insertPage'] = $this->info->getInsertPage();
             $vars['editPage'] = $this->info->getEditPage();
             $vars['removePage'] = $this->info->getRemovePage();
             return $controller->render('CantigaCoreBundle:layout:question.html.twig', $vars);
         }
     } catch (ItemNotFoundException $exception) {
         return $this->onError($controller, $controller->trans($this->info->getItemNotFoundErrorMessage()));
     } catch (ModelException $exception) {
         return $this->onError($controller, $controller->trans($exception->getMessage()));
     }
 }