mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +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;
|
$pdf_data = null;
|
||||||
$filename = 'invalid.pdf';
|
$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)) {
|
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();
|
$target_id = (string) $form->get('target_id')->getData();
|
||||||
$targets = $this->findObjects($form_options->getSupportedElement(), $target_id);
|
$targets = $this->findObjects($form_options->getSupportedElement(), $target_id);
|
||||||
if ($targets !== []) {
|
if ($targets !== []) {
|
||||||
|
@ -132,6 +155,7 @@ class LabelController extends AbstractController
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
render:
|
||||||
return $this->render('label_system/dialog.html.twig', [
|
return $this->render('label_system/dialog.html.twig', [
|
||||||
'form' => $form,
|
'form' => $form,
|
||||||
'pdf_data' => $pdf_data,
|
'pdf_data' => $pdf_data,
|
||||||
|
|
|
@ -71,6 +71,22 @@ class LabelDialogType extends AbstractType
|
||||||
'label' => false,
|
'label' => false,
|
||||||
'disabled' => !$this->security->isGranted('@labels.edit_options') || $options['disable_options'],
|
'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, [
|
$builder->add('update', SubmitType::class, [
|
||||||
'label' => 'label_generator.update',
|
'label' => 'label_generator.update',
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -99,6 +99,17 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% 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>
|
||||||
</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>
|
<target>Edit profiles</target>
|
||||||
</segment>
|
</segment>
|
||||||
</unit>
|
</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>
|
</file>
|
||||||
</xliff>
|
</xliff>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue