diff --git a/src/Controller/CategoryController.php b/src/Controller/CategoryController.php index 3e6b8b89..c41ca4a5 100644 --- a/src/Controller/CategoryController.php +++ b/src/Controller/CategoryController.php @@ -35,6 +35,7 @@ namespace App\Controller; use App\Entity\AttachmentType; use App\Entity\Category; use App\Form\BaseEntityAdminForm; +use App\Form\CategoryAdminForm; use App\Services\EntityExporter; use App\Services\EntityImporter; use App\Services\StructuralElementRecursionHelper; @@ -53,7 +54,7 @@ class CategoryController extends BaseAdminController protected $entity_class = Category::class; protected $twig_template = 'AdminPages/CategoryAdmin.html.twig'; - protected $form_class = BaseEntityAdminForm::class; + protected $form_class = CategoryAdminForm::class; protected $route_base = "category"; /** diff --git a/src/Entity/Category.php b/src/Entity/Category.php index c4d97a36..7f43e261 100644 --- a/src/Entity/Category.php +++ b/src/Entity/Category.php @@ -53,49 +53,49 @@ class Category extends PartsContainingDBElement * @var string * @ORM\Column(type="string") */ - protected $partname_hint; + protected $partname_hint = ""; /** * @var string * @ORM\Column(type="string") */ - protected $partname_regex; + protected $partname_regex = ""; /** * @var bool * @ORM\Column(type="boolean") */ - protected $disable_footprints; + protected $disable_footprints = false; /** * @var bool * @ORM\Column(type="boolean") */ - protected $disable_manufacturers; + protected $disable_manufacturers = false; /** * @var bool * @ORM\Column(type="boolean") */ - protected $disable_autodatasheets; + protected $disable_autodatasheets = false; /** * @var bool * @ORM\Column(type="boolean") */ - protected $disable_properties; + protected $disable_properties = false; /** * @var string * @ORM\Column(type="string") */ - protected $default_description; + protected $default_description = ""; /** * @var string * @ORM\Column(type="string") */ - protected $default_comment; + protected $default_comment = ""; /** * Returns the ID as an string, defined by the element class. @@ -107,4 +107,150 @@ class Category extends PartsContainingDBElement { return 'C'.sprintf('%09d', $this->getID()); } + + /** + * @return string + */ + public function getPartnameHint(): string + { + return $this->partname_hint; + } + + /** + * @param string $partname_hint + * @return Category + */ + public function setPartnameHint(string $partname_hint): Category + { + $this->partname_hint = $partname_hint; + return $this; + } + + /** + * @return string + */ + public function getPartnameRegex(): string + { + return $this->partname_regex; + } + + /** + * @param string $partname_regex + * @return Category + */ + public function setPartnameRegex(string $partname_regex): Category + { + $this->partname_regex = $partname_regex; + return $this; + } + + /** + * @return bool + */ + public function isDisableFootprints(): bool + { + return $this->disable_footprints; + } + + /** + * @param bool $disable_footprints + * @return Category + */ + public function setDisableFootprints(bool $disable_footprints): Category + { + $this->disable_footprints = $disable_footprints; + return $this; + } + + /** + * @return bool + */ + public function isDisableManufacturers(): bool + { + return $this->disable_manufacturers; + } + + /** + * @param bool $disable_manufacturers + * @return Category + */ + public function setDisableManufacturers(bool $disable_manufacturers): Category + { + $this->disable_manufacturers = $disable_manufacturers; + return $this; + } + + /** + * @return bool + */ + public function isDisableAutodatasheets(): bool + { + return $this->disable_autodatasheets; + } + + /** + * @param bool $disable_autodatasheets + * @return Category + */ + public function setDisableAutodatasheets(bool $disable_autodatasheets): Category + { + $this->disable_autodatasheets = $disable_autodatasheets; + return $this; + } + + /** + * @return bool + */ + public function isDisableProperties(): bool + { + return $this->disable_properties; + } + + /** + * @param bool $disable_properties + * @return Category + */ + public function setDisableProperties(bool $disable_properties): Category + { + $this->disable_properties = $disable_properties; + return $this; + } + + /** + * @return string + */ + public function getDefaultDescription(): string + { + return $this->default_description; + } + + /** + * @param string $default_description + * @return Category + */ + public function setDefaultDescription(string $default_description): Category + { + $this->default_description = $default_description; + return $this; + } + + /** + * @return string + */ + public function getDefaultComment(): string + { + return $this->default_comment; + } + + /** + * @param string $default_comment + * @return Category + */ + public function setDefaultComment(string $default_comment): Category + { + $this->default_comment = $default_comment; + return $this; + } + + } diff --git a/src/Form/BaseEntityAdminForm.php b/src/Form/BaseEntityAdminForm.php index 84716040..38645cf9 100644 --- a/src/Form/BaseEntityAdminForm.php +++ b/src/Form/BaseEntityAdminForm.php @@ -32,6 +32,7 @@ namespace App\Form; +use App\Entity\NamedDBElement; use App\Entity\StructuralDBElement; use FOS\CKEditorBundle\Form\Type\CKEditorType; use Symfony\Bridge\Doctrine\Form\Type\EntityType; @@ -70,13 +71,20 @@ class BaseEntityAdminForm extends AbstractType ->add('comment', CKEditorType::class, ['required' => false, 'label' => 'comment.label', 'attr' => ['rows' => 4], 'help' => 'bbcode.hint', - 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'edit', $entity)]) + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'edit', $entity)]); + + $this->additionalFormElements($builder, $options, $entity); //Buttons - ->add('save', SubmitType::class, ['label' => $is_new ? 'entity.create' : 'entity.edit.save', + $builder->add('save', SubmitType::class, ['label' => $is_new ? 'entity.create' : 'entity.edit.save', 'attr' => ['class' => $is_new ? 'btn-success' : ''], 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'edit', $entity)]) ->add('reset', ResetType::class, ['label' => 'entity.edit.reset', 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'edit', $entity)]); } + + protected function additionalFormElements(FormBuilderInterface $builder, array $options, NamedDBElement $entity) + { + //Empty for Base + } } \ No newline at end of file diff --git a/src/Form/CategoryAdminForm.php b/src/Form/CategoryAdminForm.php new file mode 100644 index 00000000..d508c2ad --- /dev/null +++ b/src/Form/CategoryAdminForm.php @@ -0,0 +1,78 @@ +getID() === null; + + $builder->add('disable_footprints', CheckboxType::class, ['required' => false, + 'label' => 'disable_footprints.label', 'help' => 'disable_footprints.help', 'label_attr'=> ['class' => 'checkbox-custom'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('disable_manufacturers', CheckboxType::class, ['required' => false, + 'label' => 'disable_manufacturers.label', 'help' => 'disable_manufacturers.help', 'label_attr'=> ['class' => 'checkbox-custom'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('disable_autodatasheets', CheckboxType::class, ['required' => false, + 'label' => 'disable_autodatasheets.label', 'help' => 'disable_autodatasheets.help', 'label_attr'=> ['class' => 'checkbox-custom'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('disable_properties', CheckboxType::class, ['required' => false, + 'label' => 'disable_properties.label', 'help' => 'disable_properties.help', 'label_attr'=> ['class' => 'checkbox-custom'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('partname_hint', TextType::class, ['required' => false, 'empty_data' => '', + 'label' => 'disable_manufacturers.label', 'attr' => ['placeholder' => 'disable_manufacturers.placeholder'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('partname_regex', TextType::class, ['required' => false, 'empty_data' => '', + 'label' => 'partname_regex.label', 'attr' => ['placeholder' => 'partname_regex.placeholder'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('default_description', TextType::class, ['required' => false, 'empty_data' => '', + 'label' => 'default_description.label', 'attr' => ['placeholder' => 'default_description.placeholder'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + + $builder->add('default_comment', TextType::class, ['required' => false, 'empty_data' => '', + 'label' => 'default_description.label', 'attr' => ['placeholder' => 'default_comment.placeholder'], + 'disabled' => !$this->security->isGranted($is_new ? 'create' : 'move', $entity)]); + } +} \ No newline at end of file diff --git a/templates/AdminPages/CategoryAdmin.html.twig b/templates/AdminPages/CategoryAdmin.html.twig index 17208bb3..c81ba6e4 100644 --- a/templates/AdminPages/CategoryAdmin.html.twig +++ b/templates/AdminPages/CategoryAdmin.html.twig @@ -2,4 +2,26 @@ {% block card_title %} {% trans %}category.labelp{% endtrans %} +{% endblock %} + +{% block additional_pills %} +