mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-28 02:23:51 +00:00
filter tasks by type, allow to overload task edit page and section menu
This commit is contained in:
@@ -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() ]));
|
||||
}
|
||||
|
Reference in New Issue
Block a user