Added option to "save and clone" a part, which is especially useful, when creatiing multiple similar parts.

This should (partly) fix issue 45.
This commit is contained in:
Jan Böhmer 2020-05-30 23:50:50 +02:00
parent d4818d2fa1
commit 6602015a5a
4 changed files with 26 additions and 2 deletions

View file

@ -180,6 +180,12 @@ class PartController extends AbstractController
$em->persist($part); $em->persist($part);
$em->flush(); $em->flush();
$this->addFlash('info', 'part.edited_flash'); $this->addFlash('info', 'part.edited_flash');
//Redirect to clone page if user wished that...
if ("save_and_clone" === $form->getClickedButton()->getName()) {
return $this->redirectToRoute('part_clone', ['id' => $part->getID()]);
}
//Reload form, so the SIUnitType entries use the new part unit //Reload form, so the SIUnitType entries use the new part unit
$form = $this->createForm(PartBaseType::class, $part); $form = $this->createForm(PartBaseType::class, $part);
} elseif ($form->isSubmitted() && ! $form->isValid()) { } elseif ($form->isSubmitted() && ! $form->isValid()) {
@ -301,6 +307,11 @@ class PartController extends AbstractController
$em->flush(); $em->flush();
$this->addFlash('success', 'part.created_flash'); $this->addFlash('success', 'part.created_flash');
//Redirect to clone page if user wished that...
if ("save_and_clone" === $form->getClickedButton()->getName()) {
return $this->redirectToRoute('part_clone', ['id' => $new_part->getID()]);
}
return $this->redirectToRoute('part_edit', ['id' => $new_part->getID()]); return $this->redirectToRoute('part_edit', ['id' => $new_part->getID()]);
} }

View file

@ -296,6 +296,9 @@ class PartBaseType extends AbstractType
$builder $builder
//Buttons //Buttons
->add('save', SubmitType::class, ['label' => 'part.edit.save']) ->add('save', SubmitType::class, ['label' => 'part.edit.save'])
->add('save_and_clone', SubmitType::class, [
'label' => 'part.edit.save_and_clone'
])
->add('reset', ResetType::class, ['label' => 'part.edit.reset']); ->add('reset', ResetType::class, ['label' => 'part.edit.reset']);
} }

View file

@ -102,8 +102,12 @@
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="sr-only">Toggle Dropdown</span> <span class="sr-only">Toggle Dropdown</span>
</button> </button>
<div class="dropdown-menu p-2"> <div class="dropdown-menu">
{{ form_row(form.log_comment)}} {{ form_widget(form.save_and_clone, {'attr': {'class': 'dropdown-item'}}) }}
<div class="dropdown-divider"></div>
<div class="p-2">
{{ form_row(form.log_comment)}}
</div>
</div> </div>
</div> </div>

View file

@ -9213,5 +9213,11 @@ Element 3</target>
<target>e.g. +49 1234 567890</target> <target>e.g. +49 1234 567890</target>
</segment> </segment>
</unit> </unit>
<unit id="tB_XJLr" name="part.edit.save_and_clone">
<segment>
<source>part.edit.save_and_clone</source>
<target>Save and clone</target>
</segment>
</unit>
</file> </file>
</xliff> </xliff>