- WIP on save and delete forms
This commit is contained in:
parent
ad310ffee5
commit
3ce356e1f2
@ -36,5 +36,5 @@ return [
|
|||||||
],*/
|
],*/
|
||||||
],
|
],
|
||||||
|
|
||||||
\Lean\Api\Factory\MessageFactoryInterface::class => DI\autowire(\Lean\Lib\Message::class),
|
\Lean\Api\Factory\MessageFactoryInterface::class => DI\autowire(\Lean\Api\Lib\Message::class),
|
||||||
];
|
];
|
@ -11,9 +11,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"form": {
|
"form": {
|
||||||
|
"error": {
|
||||||
|
"entity": "Une propriété $entity est nécessaire dans ce form"
|
||||||
|
},
|
||||||
"save": {
|
"save": {
|
||||||
"error": {
|
"error": {
|
||||||
"entity": "Une propriété $entity est nécessaire dans ce form",
|
|
||||||
"save": "Une erreur est survenue en tenant de sauvegarder les données",
|
"save": "Une erreur est survenue en tenant de sauvegarder les données",
|
||||||
"pdo": "Une erreur est survenue : '{$error}'"
|
"pdo": "Une erreur est survenue : '{$error}'"
|
||||||
},
|
},
|
||||||
|
@ -15,6 +15,9 @@ trait DescriptorTrait
|
|||||||
elseif ($value instanceof \UnitEnum) {
|
elseif ($value instanceof \UnitEnum) {
|
||||||
return $value::class . "::" . $value->name;
|
return $value::class . "::" . $value->name;
|
||||||
}
|
}
|
||||||
|
elseif (is_array($value)) {
|
||||||
|
return sprintf('[ %s ]', implode(', ', array_map([ self::class, 'displayValue' ], $value)));
|
||||||
|
}
|
||||||
|
|
||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
@ -9,13 +9,6 @@ use Ulmus\Entity\EntityInterface;
|
|||||||
abstract class Delete implements \Picea\Ui\Method\FormInterface {
|
abstract class Delete implements \Picea\Ui\Method\FormInterface {
|
||||||
use FormTrait;
|
use FormTrait;
|
||||||
|
|
||||||
public function getEntity() : EntityInterface
|
|
||||||
{
|
|
||||||
return $this->entity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function initialize(FormContextInterface $context) : void {}
|
|
||||||
|
|
||||||
public function validate(FormContextInterface $context) : bool
|
public function validate(FormContextInterface $context) : bool
|
||||||
{
|
{
|
||||||
if ( ! $this->entity->isLoaded() ) {
|
if ( ! $this->entity->isLoaded() ) {
|
||||||
@ -24,7 +17,7 @@ abstract class Delete implements \Picea\Ui\Method\FormInterface {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
return $context->valid();
|
return $context->valid($this->getEntity()->isLoaded() ? $this->getEntity() : null);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function execute(FormContextInterface $context) : void
|
public function execute(FormContextInterface $context) : void
|
||||||
|
@ -4,6 +4,8 @@ namespace Lean\Api\Form;
|
|||||||
|
|
||||||
use Lean\Api\Factory\MessageFactoryInterface;
|
use Lean\Api\Factory\MessageFactoryInterface;
|
||||||
use Lean\LanguageHandler;
|
use Lean\LanguageHandler;
|
||||||
|
use Picea\Ui\Method\FormContextInterface;
|
||||||
|
use Ulmus\Entity\EntityInterface;
|
||||||
|
|
||||||
trait FormTrait
|
trait FormTrait
|
||||||
{
|
{
|
||||||
@ -13,8 +15,27 @@ trait FormTrait
|
|||||||
# public EntityInterface $entity,
|
# public EntityInterface $entity,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
public function initialize(FormContextInterface $context) : void
|
||||||
|
{
|
||||||
|
if(isset($this->contextClass) && ! $context instanceof $this->contextClass ) {
|
||||||
|
throw new \LogicException(
|
||||||
|
sprintf("Your context type should be a %s", $this->contextClass)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected function lang(string $key, array $variables = [])
|
protected function lang(string $key, array $variables = [])
|
||||||
{
|
{
|
||||||
return $this->languageHandler->languageFromKey($key, $variables);
|
return $this->languageHandler->languageFromKey($key, $variables);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getEntity() : EntityInterface
|
||||||
|
{
|
||||||
|
if (! isset($this->entity)) {
|
||||||
|
throw new \InvalidArgumentException($this->lang("lean.api.form.error.entity"));
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->entity;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace Lean\Api\Form;
|
namespace Lean\Api\Form;
|
||||||
|
|
||||||
|
use CSLSJ\Lean\Form\Session\EmailContext;
|
||||||
use Picea\Ui\Method\{ FormContextInterface, };
|
use Picea\Ui\Method\{ FormContextInterface, };
|
||||||
|
|
||||||
use Ulmus\Attribute\Property\Field;
|
use Ulmus\Attribute\Property\Field;
|
||||||
@ -13,14 +14,7 @@ use Ulmus\Entity\Field\Datetime;
|
|||||||
abstract class Save implements \Picea\Ui\Method\FormInterface {
|
abstract class Save implements \Picea\Ui\Method\FormInterface {
|
||||||
use FormTrait;
|
use FormTrait;
|
||||||
|
|
||||||
public function getEntity() : EntityInterface
|
protected string $contextClass;
|
||||||
{
|
|
||||||
if (! isset($this->entity)) {
|
|
||||||
throw new \InvalidArgumentException($this->lang("lean.api.form.save.error.entity"));
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->entity;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function validate(FormContextInterface $context) : bool
|
public function validate(FormContextInterface $context) : bool
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?php declare(strict_types=1);
|
<?php declare(strict_types=1);
|
||||||
|
|
||||||
namespace Lean\Lib;
|
namespace Lean\Api\Lib;
|
||||||
|
|
||||||
use Lean\Api\Factory\MessageFactoryInterface;
|
use Lean\Api\Factory\MessageFactoryInterface;
|
||||||
use Picea\Ui\Method\FormMessage;
|
use Picea\Ui\Method\FormMessage;
|
||||||
@ -53,7 +53,7 @@ class Message implements FormMessage, MessageFactoryInterface {
|
|||||||
|
|
||||||
public ? string $header = null;
|
public ? string $header = null;
|
||||||
|
|
||||||
public function __construct(string $message, string $type = "error", ? string $header = null, ? string $class = null)
|
public function __construct(string $message = "", string $type = "error", ? string $header = null, ? string $class = null)
|
||||||
{
|
{
|
||||||
$this->message = $message;
|
$this->message = $message;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user