mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-20 17:15:51 +02:00
Adapter attachment upload forms to the new system
This commit is contained in:
parent
0c33059c4e
commit
3585b8a56a
7 changed files with 32 additions and 22 deletions
|
@ -59,7 +59,7 @@ final class HandleAttachmentsUploadsProcessor implements ProcessorInterface
|
|||
//Reset the upload data
|
||||
$data->setUpload(null);
|
||||
|
||||
$this->attachmentSubmitHandler->handleFormSubmit($data, $upload);
|
||||
$this->attachmentSubmitHandler->handleUpload($data, $upload);
|
||||
}
|
||||
|
||||
$result = $this->persistProcessor->process($data, $operation, $uriVariables, $context);
|
||||
|
|
|
@ -24,6 +24,7 @@ namespace App\Controller\AdminPages;
|
|||
|
||||
use App\DataTables\LogDataTable;
|
||||
use App\Entity\Attachments\Attachment;
|
||||
use App\Entity\Attachments\AttachmentUpload;
|
||||
use App\Entity\Base\AbstractDBElement;
|
||||
use App\Entity\Base\AbstractNamedDBElement;
|
||||
use App\Entity\Base\AbstractPartsContainingDBElement;
|
||||
|
@ -175,16 +176,10 @@ abstract class BaseAdminController extends AbstractController
|
|||
$attachments = $form['attachments'];
|
||||
foreach ($attachments as $attachment) {
|
||||
/** @var FormInterface $attachment */
|
||||
$options = [
|
||||
'secure_attachment' => $attachment['secureFile']->getData(),
|
||||
'download_url' => $attachment['downloadURL']->getData(),
|
||||
];
|
||||
|
||||
try {
|
||||
$this->attachmentSubmitHandler->handleFormSubmit(
|
||||
$this->attachmentSubmitHandler->handleUpload(
|
||||
$attachment->getData(),
|
||||
$attachment['file']->getData(),
|
||||
$options
|
||||
AttachmentUpload::fromAttachmentForm($attachment)
|
||||
);
|
||||
} catch (AttachmentDownloadException $attachmentDownloadException) {
|
||||
$this->addFlash(
|
||||
|
@ -270,10 +265,9 @@ abstract class BaseAdminController extends AbstractController
|
|||
];
|
||||
|
||||
try {
|
||||
$this->attachmentSubmitHandler->handleFormSubmit(
|
||||
$this->attachmentSubmitHandler->handleUpload(
|
||||
$attachment->getData(),
|
||||
$attachment['file']->getData(),
|
||||
$options
|
||||
AttachmentUpload::fromAttachmentForm($attachment)
|
||||
);
|
||||
} catch (AttachmentDownloadException $attachmentDownloadException) {
|
||||
$this->addFlash(
|
||||
|
|
|
@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||
namespace App\Controller;
|
||||
|
||||
use App\DataTables\LogDataTable;
|
||||
use App\Entity\Attachments\AttachmentUpload;
|
||||
use App\Entity\Parts\Category;
|
||||
use App\Entity\Parts\Footprint;
|
||||
use App\Entity\Parts\Manufacturer;
|
||||
|
@ -301,13 +302,9 @@ class PartController extends AbstractController
|
|||
$attachments = $form['attachments'];
|
||||
foreach ($attachments as $attachment) {
|
||||
/** @var FormInterface $attachment */
|
||||
$options = [
|
||||
'secure_attachment' => $attachment['secureFile']->getData(),
|
||||
'download_url' => $attachment['downloadURL']->getData(),
|
||||
];
|
||||
|
||||
try {
|
||||
$this->attachmentSubmitHandler->handleFormSubmit($attachment->getData(), $attachment['file']->getData(), $options);
|
||||
$this->attachmentSubmitHandler->handleUpload($attachment->getData(), AttachmentUpload::fromAttachmentForm($attachment));
|
||||
} catch (AttachmentDownloadException $attachmentDownloadException) {
|
||||
$this->addFlash(
|
||||
'error',
|
||||
|
|
|
@ -36,7 +36,6 @@ use App\ApiPlatform\DocumentedAPIProperty;
|
|||
use App\ApiPlatform\Filter\EntityFilter;
|
||||
use App\ApiPlatform\Filter\LikeFilter;
|
||||
use App\ApiPlatform\HandleAttachmentsUploadsProcessor;
|
||||
use App\EntityListeners\AttachmentUploadListener;
|
||||
use App\Repository\AttachmentRepository;
|
||||
use App\EntityListeners\AttachmentDeleteListener;
|
||||
use Doctrine\DBAL\Types\Types;
|
||||
|
|
|
@ -23,6 +23,7 @@ declare(strict_types=1);
|
|||
|
||||
namespace App\Entity\Attachments;
|
||||
|
||||
use Symfony\Component\Form\FormInterface;
|
||||
use Symfony\Component\HttpFoundation\File\UploadedFile;
|
||||
use Symfony\Component\Serializer\Attribute\Groups;
|
||||
|
||||
|
@ -54,4 +55,23 @@ class AttachmentUpload
|
|||
public readonly ?bool $becomePreviewIfEmpty = true,
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an AttachmentUpload object from an Attachment FormInterface
|
||||
* @param FormInterface $form
|
||||
* @return AttachmentUpload
|
||||
*/
|
||||
public static function fromAttachmentForm(FormInterface $form): AttachmentUpload
|
||||
{
|
||||
if (!$form->has('file')) {
|
||||
throw new \InvalidArgumentException('The form does not have a file field. Is it an attachment form?');
|
||||
}
|
||||
|
||||
return new self(
|
||||
file: $form->get('file')->getData(),
|
||||
downloadUrl: $form->get('downloadURL')->getData(),
|
||||
private: $form->get('secureFile')->getData()
|
||||
);
|
||||
|
||||
}
|
||||
}
|
|
@ -186,7 +186,7 @@ class AttachmentSubmitHandler
|
|||
*
|
||||
* @return Attachment The attachment with the new filename (same instance as passed $attachment)
|
||||
*/
|
||||
public function handleFormSubmit(Attachment $attachment, ?AttachmentUpload $upload): Attachment
|
||||
public function handleUpload(Attachment $attachment, ?AttachmentUpload $upload): Attachment
|
||||
{
|
||||
if ($upload === null) {
|
||||
$upload = $attachment->getUpload();
|
||||
|
@ -333,7 +333,7 @@ class AttachmentSubmitHandler
|
|||
*
|
||||
* @return Attachment The attachment with the new filepath
|
||||
*/
|
||||
protected function downloadURL(Attachment $attachment, array $secureAttachment): Attachment
|
||||
protected function downloadURL(Attachment $attachment, bool $secureAttachment): Attachment
|
||||
{
|
||||
//Check if we are allowed to download files
|
||||
if (!$this->allow_attachments_downloads) {
|
||||
|
|
|
@ -25,6 +25,7 @@ namespace App\Services\UserSystem;
|
|||
|
||||
use App\Entity\Attachments\Attachment;
|
||||
use App\Entity\Attachments\AttachmentType;
|
||||
use App\Entity\Attachments\AttachmentUpload;
|
||||
use App\Entity\Attachments\UserAttachment;
|
||||
use App\Entity\UserSystem\User;
|
||||
use App\Services\Attachments\AttachmentSubmitHandler;
|
||||
|
@ -156,11 +157,10 @@ class UserAvatarHelper
|
|||
}
|
||||
|
||||
$attachment->setAttachmentType($attachment_type);
|
||||
//$user->setMasterPictureAttachment($attachment);
|
||||
}
|
||||
|
||||
//Handle the upload
|
||||
$this->submitHandler->handleFormSubmit($attachment, $file);
|
||||
$this->submitHandler->handleUpload($attachment, new AttachmentUpload(file: $file));
|
||||
|
||||
//Set attachment as master picture
|
||||
$user->setMasterPictureAttachment($attachment);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue