<?php
namespace Wallabag\GroupBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Wallabag\GroupBundle\Entity\Group;
class GroupType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class, [
'required' => false,
'label' => 'group.form.name_label',
])
->add('defaultRole', ChoiceType::class, [
'label' => 'group.form.role_label',
'choices' => [
'group.roles.readonly' => Group::ROLE_READ_ONLY,
'group.roles.write' => Group::ROLE_WRITE,
'group.roles.manage_entries' => Group::ROLE_MANAGE_ENTRIES,
'group.roles.manage_users' => Group::ROLE_MANAGE_USERS,
'group.roles.admin' => Group::ROLE_ADMIN,
],
])
->add('acceptSystem', ChoiceType::class, [
'label' => 'group.form.access_label',
'choices' => [
'group.access.open' => Group::ACCESS_OPEN,
'group.access.request' => Group::ACCESS_REQUEST,
'group.access.password' => Group::ACCESS_PASSWORD,
'group.access.invitation' => Group::ACCESS_INVITATION_ONLY,
'group.access.hidden' => Group::ACCESS_HIDDEN,
],
])
->add('plainPassword', PasswordType::class, [
'label' => 'group.form.password_label',
'required' => false,
'attr' => ['autocomplete' => 'off'],
])
->add('save', SubmitType::class, [
'label' => 'group.form.save',
])
;
}
/**
* @param OptionsResolver $resolver
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Wallabag\GroupBundle\Entity\Group',
));
}
}