upload and retrieve document

This commit is contained in:
2018-06-06 22:19:54 +02:00
parent eda8f2c033
commit b5bf8b8884
17 changed files with 688 additions and 5 deletions

View File

@@ -65,7 +65,7 @@ class PersonDocumentType extends AbstractType
->add('description', TextareaType::class, [
'required' => false
])
->add('content')
->add('object', StoredObjectType::class)
->add('scope', ScopePickerType::class, [
'center' => $options['center'],
'role' => $options['role']

72
Form/StoredObjectType.php Normal file
View File

@@ -0,0 +1,72 @@
<?php
/*
*/
namespace Chill\DocStoreBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use ChampsLibres\AsyncUploaderBundle\Form\Type\AsyncUploaderType;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Chill\DocStoreBundle\Entity\StoredObject;
use Symfony\Component\Form\CallbackTransformer;
/**
*
*
* @author Julien Fastré <julien.fastre@champs-libres.coop>
*/
class StoredObjectType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('filename', AsyncUploaderType::class)
->add('keyInfos', HiddenType::class)
->add('iv', HiddenType::class)
;
$builder
->get('keyInfos')
->addModelTransformer(new CallbackTransformer(
[$this, 'transform'], [$this, 'reverseTransform']
))
;
$builder
->get('iv')
->addModelTransformer(new CallbackTransformer(
[$this, 'transform'], [$this, 'reverseTransform']
))
;
}
public function getBlockPrefix()
{
return 'stored_object';
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver
->setDefault('data_class', StoredObject::class)
;
}
public function reverseTransform($value)
{
if ($value === null) {
return null;
}
return \json_decode($value, true);
}
public function transform($object)
{
if ($object === null) {
return null;
}
return \json_encode($object);
}
}