mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-20 17:15:51 +02:00
Allow users to save a new label profiles directly from the label generator dialog
This fixes issue #806
This commit is contained in:
parent
9d09543eb9
commit
f75704f77c
4 changed files with 76 additions and 1 deletions
|
@ -108,8 +108,31 @@ class LabelController extends AbstractController
|
|||
$pdf_data = null;
|
||||
$filename = 'invalid.pdf';
|
||||
|
||||
//Generate PDF either when the form is submitted and valid, or the form was not submit yet, and generate is set
|
||||
if (($form->isSubmitted() && $form->isValid()) || ($generate && !$form->isSubmitted() && $profile instanceof LabelProfile)) {
|
||||
|
||||
//Check if the label should be saved as profile
|
||||
if ($form->get('save_profile')->isClicked() && $this->isGranted('@labels.create_profiles')) {
|
||||
//Retrieve the profile name from the form
|
||||
$new_name = $form->get('save_profile_name')->getData();
|
||||
//ensure that the name is not empty
|
||||
if ($new_name === '' || $new_name === null) {
|
||||
$form->get('save_profile_name')->addError(new FormError($this->translator->trans('label_generator.profile_name_empty')));
|
||||
goto render;
|
||||
}
|
||||
|
||||
$profile = new LabelProfile();
|
||||
$profile->setName($form->get('save_profile_name')->getData());
|
||||
$profile->setOptions($form_options);
|
||||
$this->em->persist($profile);
|
||||
$this->em->flush();
|
||||
$this->addFlash('success', 'label_generator.profile_saved');
|
||||
|
||||
return $this->redirectToRoute('label_dialog_profile', [
|
||||
'profile' => $profile->getID(),
|
||||
'target_id' => (string) $form->get('target_id')->getData()
|
||||
]);
|
||||
}
|
||||
|
||||
$target_id = (string) $form->get('target_id')->getData();
|
||||
$targets = $this->findObjects($form_options->getSupportedElement(), $target_id);
|
||||
if ($targets !== []) {
|
||||
|
@ -132,6 +155,7 @@ class LabelController extends AbstractController
|
|||
}
|
||||
}
|
||||
|
||||
render:
|
||||
return $this->render('label_system/dialog.html.twig', [
|
||||
'form' => $form,
|
||||
'pdf_data' => $pdf_data,
|
||||
|
|
|
@ -71,6 +71,22 @@ class LabelDialogType extends AbstractType
|
|||
'label' => false,
|
||||
'disabled' => !$this->security->isGranted('@labels.edit_options') || $options['disable_options'],
|
||||
]);
|
||||
|
||||
$builder->add('save_profile_name', TextType::class, [
|
||||
'required' => false,
|
||||
'attr' =>[
|
||||
'placeholder' => 'label_generator.save_profile_name',
|
||||
]
|
||||
]);
|
||||
|
||||
$builder->add('save_profile', SubmitType::class, [
|
||||
'label' => 'label_generator.save_profile',
|
||||
'disabled' => !$this->security->isGranted('@labels.create_profiles'),
|
||||
'attr' => [
|
||||
'class' => 'btn btn-outline-success'
|
||||
]
|
||||
]);
|
||||
|
||||
$builder->add('update', SubmitType::class, [
|
||||
'label' => 'label_generator.update',
|
||||
]);
|
||||
|
|
|
@ -99,6 +99,17 @@
|
|||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="form-group row">
|
||||
<div class="offset-sm-3 col-sm-9">
|
||||
<div class="input-group">
|
||||
{{ form_widget(form.save_profile_name) }}
|
||||
{{ form_widget(form.save_profile) }}
|
||||
</div>
|
||||
{{ form_errors(form.save_profile_name) }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -12299,5 +12299,29 @@ Please note, that you can not impersonate a disabled user. If you try you will g
|
|||
<target>Edit profiles</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="JzfeFN6" name="label_generator.profile_name_empty">
|
||||
<segment>
|
||||
<source>label_generator.profile_name_empty</source>
|
||||
<target>Profile name must not be empty!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="0TP6The" name="label_generator.save_profile_name">
|
||||
<segment>
|
||||
<source>label_generator.save_profile_name</source>
|
||||
<target>Profile name</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="OhUW6es" name="label_generator.save_profile">
|
||||
<segment>
|
||||
<source>label_generator.save_profile</source>
|
||||
<target>Save as new profile</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="sqc4h7S" name="label_generator.profile_saved">
|
||||
<segment>
|
||||
<source>label_generator.profile_saved</source>
|
||||
<target>Profile saved!</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</file>
|
||||
</xliff>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue