Added a duplicate button in data structures (categories, footprints, etc.) Admin pages.

This commit is contained in:
Jan Böhmer 2020-04-06 13:14:47 +02:00
parent 315cc30a1a
commit e654c46e11
16 changed files with 92 additions and 65 deletions

View file

@ -90,13 +90,14 @@ class AttachmentTypeController extends BaseAdminController
/**
* @Route("/new", name="attachment_type_new")
* @Route("/{id}/clone", name="attachment_type_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?AttachmentType $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -219,10 +219,16 @@ abstract class BaseAdminController extends AbstractController
]);
}
protected function _new(Request $request, EntityManagerInterface $em, EntityImporter $importer)
protected function _new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?AbstractNamedDBElement $entity = null)
{
/** @var AbstractStructuralDBElement|User $new_entity */
$new_entity = new $this->entity_class();
$master_picture_backup = null;
if ($entity === null) {
/** @var AbstractStructuralDBElement|User $new_entity */
$new_entity = new $this->entity_class();
} else {
/** @var AbstractStructuralDBElement|User $new_entity */
$new_entity = clone $entity;
}
$this->denyAccessUnlessGranted('read', $new_entity);
@ -263,6 +269,7 @@ abstract class BaseAdminController extends AbstractController
$this->commentHelper->setMessage($form['log_comment']->getData());
dump($new_entity);
$em->persist($new_entity);
$em->flush();
$this->addFlash('success', 'entity.created_flash');

View file

@ -90,13 +90,14 @@ class CategoryController extends BaseAdminController
/**
* @Route("/new", name="category_new")
* @Route("/{id}/clone", name="category_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Category $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -92,13 +92,14 @@ class CurrencyController extends BaseAdminController
/**
* @Route("/new", name="currency_new")
* @Route("/{id}/clone", name="currency_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Currency $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -90,13 +90,14 @@ class DeviceController extends BaseAdminController
/**
* @Route("/new", name="device_new")
* @Route("/{id}/clone", name="device_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Device $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -90,13 +90,14 @@ class FootprintController extends BaseAdminController
/**
* @Route("/new", name="footprint_new")
* @Route("/{id}/clone", name="footprint_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Footprint $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -89,13 +89,14 @@ class ManufacturerController extends BaseAdminController
/**
* @Route("/new", name="manufacturer_new")
* @Route("/{id}/clone", name="manufacturer_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Manufacturer $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -90,13 +90,14 @@ class MeasurementUnitController extends BaseAdminController
/**
* @Route("/new", name="measurement_unit_new")
* @Route("/{id}/clone", name="measurement_unit_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?MeasurementUnit $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -88,13 +88,14 @@ class StorelocationController extends BaseAdminController
/**
* @Route("/new", name="store_location_new")
* @Route("/{id}/clone", name="store_location_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Storelocation $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -89,13 +89,14 @@ class SupplierController extends BaseAdminController
/**
* @Route("/new", name="supplier_new")
* @Route("/{id}/clone", name="supplier_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Supplier $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -81,13 +81,14 @@ class GroupController extends BaseAdminController
/**
* @Route("/new", name="group_new")
* @Route("/{id}/clone", name="group_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?Group $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**

View file

@ -116,13 +116,14 @@ class UserController extends AdminPages\BaseAdminController
/**
* @Route("/new", name="user_new")
* @Route("/{id}/clone", name="user_clone")
* @Route("/")
*
* @return Response
*/
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer): Response
public function new(Request $request, EntityManagerInterface $em, EntityImporter $importer, ?User $entity = null): Response
{
return $this->_new($request, $em, $importer);
return $this->_new($request, $em, $importer, $entity);
}
/**