filter tasks by type, allow to overload task edit page and section menu

This commit is contained in:
2018-08-27 10:49:32 +02:00
parent b3b1e0aff5
commit a69b2d7e40
11 changed files with 208 additions and 13 deletions

View File

@@ -24,6 +24,7 @@ use Chill\MainBundle\Entity\UserRepository;
use Chill\TaskBundle\Event\TaskEvent;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\Translation\TranslatorInterface;
use Chill\TaskBundle\Event\UI\UIEvent;
class SingleTaskController extends Controller
@@ -152,7 +153,8 @@ class SingleTaskController extends Controller
public function editAction(
Request $request,
$id,
TranslatorInterface $translator
TranslatorInterface $translator,
EventDispatcherInterface $dispatcher
) {
/* @var $taskRepository SingleTaskRepository */
$taskRepository = $this->get('chill_task.single_task_repository');
@@ -179,8 +181,14 @@ class SingleTaskController extends Controller
if (!$task) {
throw $this->createNotFoundException('Unable to find Task entity.');
}
$form = $this->setCreateForm($task, new Role(TaskVoter::UPDATE));
$event = (new UIEvent('single-task', $task))
->setForm($this->setCreateForm($task, new Role(TaskVoter::UPDATE)))
;
$dispatcher->dispatch(UIEvent::EDIT_FORM, $event);
$form = $event->getForm();
$form->handleRequest($request);
@@ -203,7 +211,13 @@ class SingleTaskController extends Controller
$this->addFlash('error', $translator->trans("This form contains errors"));
}
}
$dispatcher->dispatch(UIEvent::EDIT_PAGE, $event);
if ($event->hasResponse()) {
return $event->getResponse();
}
return $this->render('ChillTaskBundle:SingleTask:edit.html.twig', array(
'task' => $task,
'form' => $form->createView()
@@ -357,6 +371,7 @@ class SingleTaskController extends Controller
$params['user'] = null;
$viewParams['center'] = null;
$params['center'] = null;
$params['types'] = null;
// Get parameters from url
if (!empty($request->query->get('person_id', NULL))) {
@@ -372,6 +387,13 @@ class SingleTaskController extends Controller
$viewParams['person'] = $person;
$params['person'] = $person;
}
if(!empty($request->query->get('types', []))) {
$types = $request->query->get('types', []);
if (count($types) > 0) {
$params['types'] = $types;
}
}
if (!empty($request->query->get('user_id', null))) {
if ($request->query->get('user_id') === '_unassigned') {
@@ -467,11 +489,12 @@ class SingleTaskController extends Controller
$form = $formFactory->createNamed(null, SingleTaskListType::class, null, [
'person' => $viewParams['person'],
'method' => Request::METHOD_GET,
'csrf_protection' => false
'csrf_protection' => false,
'add_type' => true
]);
$form->handleRequest($request);
return $this->render('ChillTaskBundle:SingleTask:index.html.twig',
\array_merge($viewParams, [ 'form' => $form->createView() ]));
}