go back to calendar after editing and creation of time-records (#519)

This commit is contained in:
Kevin Papst
2019-01-23 17:30:45 +01:00
committed by GitHub
parent ee32d6f926
commit 572f01ed74
9 changed files with 38 additions and 27 deletions

View File

@@ -164,9 +164,10 @@ class TimesheetController extends AbstractController
/**
* @param Timesheet $entry
* @param string $redirectRoute
* @return \Symfony\Component\Form\FormInterface
*/
protected function getCreateForm(Timesheet $entry)
protected function getCreateForm(Timesheet $entry, string $redirectRoute)
{
return $this->createForm(TimesheetEditForm::class, $entry, [
'action' => $this->generateUrl('admin_timesheet_create'),
@@ -178,14 +179,15 @@ class TimesheetController extends AbstractController
/**
* @param Timesheet $entry
* @param int $page
* @param string $redirectRoute
* @return \Symfony\Component\Form\FormInterface
*/
protected function getEditForm(Timesheet $entry, $page)
protected function getEditForm(Timesheet $entry, $page, string $redirectRoute)
{
return $this->createForm(TimesheetEditForm::class, $entry, [
'action' => $this->generateUrl('admin_timesheet_edit', [
'id' => $entry->getId(),
'page' => $page
'page' => $page,
]),
'include_rate' => $this->isGranted('edit_rate', $entry),
'include_user' => true,

View File

@@ -79,14 +79,9 @@ class CalendarController extends AbstractController
->setUser($this->getUser())
->setState(TimesheetQuery::STATE_ALL)
->setResultType(TimesheetQuery::RESULT_TYPE_QUERYBUILDER)
->setEnd($end)
;
// running entries should only occur for the current month, but they won't
// be found if we add the end to the query
if ((new \DateTime())->getTimestamp() > $end->getTimestamp()) {
$query->setEnd($end);
}
$repository = $this->getDoctrine()->getRepository(Timesheet::class);
/* @var $entries Timesheet[] */

View File

@@ -190,11 +190,15 @@ class TimesheetController extends AbstractController
*/
public function editAction(Timesheet $entry, Request $request)
{
$route = 'timesheet';
if (null !== $request->get('page')) {
return $this->edit($entry, $request, 'timesheet_paginated', 'timesheet/edit.html.twig');
$route = 'timesheet_paginated';
} elseif ('calendar' === $request->get('origin')) {
$route = 'calendar';
}
return $this->edit($entry, $request, 'timesheet', 'timesheet/edit.html.twig');
return $this->edit($entry, $request, $route, 'timesheet/edit.html.twig');
}
/**
@@ -206,7 +210,12 @@ class TimesheetController extends AbstractController
*/
public function createAction(Request $request)
{
return $this->create($request, 'timesheet', 'timesheet/edit.html.twig');
$route = 'timesheet';
if ('calendar' === $request->get('origin')) {
$route = 'calendar';
}
return $this->create($request, $route, 'timesheet/edit.html.twig');
}
/**
@@ -234,12 +243,13 @@ class TimesheetController extends AbstractController
/**
* @param Timesheet $entry
* @param string $redirectRoute
* @return \Symfony\Component\Form\FormInterface
*/
protected function getCreateForm(Timesheet $entry)
protected function getCreateForm(Timesheet $entry, string $redirectRoute)
{
return $this->createForm(TimesheetEditForm::class, $entry, [
'action' => $this->generateUrl('timesheet_create'),
'action' => $this->generateUrl('timesheet_create', ['origin' => $redirectRoute]),
'include_rate' => $this->isGranted('edit_rate', $entry),
]);
}
@@ -247,14 +257,16 @@ class TimesheetController extends AbstractController
/**
* @param Timesheet $entry
* @param int $page
* @param string $redirectRoute
* @return \Symfony\Component\Form\FormInterface
*/
protected function getEditForm(Timesheet $entry, $page)
protected function getEditForm(Timesheet $entry, $page, string $redirectRoute)
{
return $this->createForm(TimesheetEditForm::class, $entry, [
'action' => $this->generateUrl('timesheet_edit', [
'id' => $entry->getId(),
'page' => $page
'page' => $page,
'origin' => $redirectRoute,
]),
'include_rate' => $this->isGranted('edit_rate', $entry),
]);

View File

@@ -77,7 +77,7 @@ trait TimesheetControllerTrait
*/
protected function edit(Timesheet $entry, Request $request, $redirectRoute, $renderTemplate)
{
$editForm = $this->getEditForm($entry, $request->get('page'));
$editForm = $this->getEditForm($entry, $request->get('page'), $request->get('origin', 'timesheet'));
$editForm->handleRequest($request);
if ($editForm->isSubmitted() && $editForm->isValid()) {
@@ -154,7 +154,7 @@ trait TimesheetControllerTrait
}
}
$createForm = $this->getCreateForm($entry);
$createForm = $this->getCreateForm($entry, $redirectRoute);
$createForm->handleRequest($request);
if ($createForm->isSubmitted() && $createForm->isValid()) {
@@ -203,16 +203,18 @@ trait TimesheetControllerTrait
/**
* @param Timesheet $entry
* @param string $redirectRoute
* @return \Symfony\Component\Form\FormInterface
*/
abstract protected function getCreateForm(Timesheet $entry);
abstract protected function getCreateForm(Timesheet $entry, string $redirectRoute);
/**
* @param Timesheet $entry
* @param int $page
* @param string $redirectRoute
* @return \Symfony\Component\Form\FormInterface
*/
abstract protected function getEditForm(Timesheet $entry, $page);
abstract protected function getEditForm(Timesheet $entry, $page, string $redirectRoute);
/**
* Adds a "successful" flash message to the stack.