From 3270ce7560d5b7c8b72e17830d84481abb690a33 Mon Sep 17 00:00:00 2001 From: Kevin Papst Date: Sat, 6 Jan 2018 11:53:15 +0100 Subject: [PATCH] Added "create activity" form (#35) * added create activity form #24 * fixed form type for Projects * UI improvement toolbar (same height as ll form elements and action buttons) --- .../Controller/Admin/ActivityController.php | 27 ++++++++++++++++++- .../Form/TimesheetToolbarForm.php | 1 - src/TimesheetBundle/Form/Type/ProjectType.php | 4 +-- .../Resources/views/admin/activity.html.twig | 2 +- .../views/admin/activity_edit.html.twig | 2 +- web/css/kimai.css | 4 --- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/src/TimesheetBundle/Controller/Admin/ActivityController.php b/src/TimesheetBundle/Controller/Admin/ActivityController.php index 36f6af10..154be6a6 100644 --- a/src/TimesheetBundle/Controller/Admin/ActivityController.php +++ b/src/TimesheetBundle/Controller/Admin/ActivityController.php @@ -47,11 +47,30 @@ class ActivityController extends AbstractController return $this->render('TimesheetBundle:admin:activity.html.twig', ['entries' => $entries]); } + /** + * @Route("/create", name="admin_activity_create") + * @Method({"GET", "POST"}) + */ + public function createAction(Request $request) + { + return $this->renderActivityForm(new Activity(), $request); + } + /** * @Route("/{id}/edit", name="admin_activity_edit") * @Method({"GET", "POST"}) */ public function editAction(Activity $activity, Request $request) + { + return $this->renderActivityForm($activity, $request); + } + + /** + * @param Activity $activity + * @param Request $request + * @return \Symfony\Component\HttpFoundation\RedirectResponse|\Symfony\Component\HttpFoundation\Response + */ + protected function renderActivityForm(Activity $activity, Request $request) { $editForm = $this->createEditForm($activity); @@ -84,11 +103,17 @@ class ActivityController extends AbstractController */ private function createEditForm(Activity $activity) { + if ($activity->getId() === null) { + $url = $this->generateUrl('admin_activity_create'); + } else { + $url = $this->generateUrl('admin_activity_edit', ['id' => $activity->getId()]); + } + return $this->createForm( ActivityEditForm::class, $activity, [ - 'action' => $this->generateUrl('admin_activity_edit', ['id' => $activity->getId()]), + 'action' => $url, 'method' => 'POST' ] ); diff --git a/src/TimesheetBundle/Form/TimesheetToolbarForm.php b/src/TimesheetBundle/Form/TimesheetToolbarForm.php index 4ba3383c..c1620304 100644 --- a/src/TimesheetBundle/Form/TimesheetToolbarForm.php +++ b/src/TimesheetBundle/Form/TimesheetToolbarForm.php @@ -83,7 +83,6 @@ class TimesheetToolbarForm extends AbstractType $choices = []; foreach ($query->getCustomer()->getProjects() as $project) { $choices[] = $project; - //$choices[$project->getName()] = $project->getId(); } $builder diff --git a/src/TimesheetBundle/Form/Type/ProjectType.php b/src/TimesheetBundle/Form/Type/ProjectType.php index 67a1eabb..f0ad55c4 100644 --- a/src/TimesheetBundle/Form/Type/ProjectType.php +++ b/src/TimesheetBundle/Form/Type/ProjectType.php @@ -11,8 +11,8 @@ namespace TimesheetBundle\Form\Type; +use Symfony\Bridge\Doctrine\Form\Type\EntityType; use Symfony\Component\Form\AbstractType; -use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\OptionsResolver\OptionsResolver; use TimesheetBundle\Entity\Project; @@ -44,6 +44,6 @@ class ProjectType extends AbstractType */ public function getParent() { - return ChoiceType::class; + return EntityType::class; } } diff --git a/src/TimesheetBundle/Resources/views/admin/activity.html.twig b/src/TimesheetBundle/Resources/views/admin/activity.html.twig index 51fe39e8..97833a5b 100644 --- a/src/TimesheetBundle/Resources/views/admin/activity.html.twig +++ b/src/TimesheetBundle/Resources/views/admin/activity.html.twig @@ -18,7 +18,7 @@ 'label.comment': 'hidden-xs', 'label.visible': '', 'label.actions': '', - }) }} + }, null, {'plus-square': path('admin_activity_create')}) }} {% for entry in entries %} diff --git a/src/TimesheetBundle/Resources/views/admin/activity_edit.html.twig b/src/TimesheetBundle/Resources/views/admin/activity_edit.html.twig index 6379878f..f4bb1582 100644 --- a/src/TimesheetBundle/Resources/views/admin/activity_edit.html.twig +++ b/src/TimesheetBundle/Resources/views/admin/activity_edit.html.twig @@ -7,7 +7,7 @@ {% block main %} {{ include('default/_form.html.twig', { - 'title': activity.name, + 'title': activity.name|default('create'|trans), 'form': form, 'back': path('admin_activity') }) }} diff --git a/web/css/kimai.css b/web/css/kimai.css index c1a69336..a4d7b747 100644 --- a/web/css/kimai.css +++ b/web/css/kimai.css @@ -50,10 +50,6 @@ li.open .ticktac i.running{ display: inline; } -.box-header .toolbar form .form-control { - height: 25px; -} - .box-header .tools-left { margin-right: 10px; }