]> git.immae.eu Git - github/wallabag/wallabag.git/blob - src/Wallabag/GroupBundle/Form/GroupType.php
WIP
[github/wallabag/wallabag.git] / src / Wallabag / GroupBundle / Form / GroupType.php
1 <?php
2
3 namespace Wallabag\GroupBundle\Form;
4
5 use Symfony\Component\Form\AbstractType;
6 use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
7 use Symfony\Component\Form\Extension\Core\Type\PasswordType;
8 use Symfony\Component\Form\FormBuilderInterface;
9 use Symfony\Component\OptionsResolver\OptionsResolver;
10 use Symfony\Component\Form\Extension\Core\Type\SubmitType;
11 use Symfony\Component\Form\Extension\Core\Type\TextType;
12 use Wallabag\GroupBundle\Entity\Group;
13
14 class GroupType extends AbstractType
15 {
16 /**
17 * @param FormBuilderInterface $builder
18 * @param array $options
19 */
20 public function buildForm(FormBuilderInterface $builder, array $options)
21 {
22 $builder
23 ->add('name', TextType::class, [
24 'required' => false,
25 'label' => 'group.form.name_label',
26 ])
27 ->add('defaultRole', ChoiceType::class, [
28 'label' => 'group.form.role_label',
29 'choices' => [
30 'group.roles.readonly' => Group::ROLE_READ_ONLY,
31 'group.roles.write' => Group::ROLE_WRITE,
32 'group.roles.manage_entries' => Group::ROLE_MANAGE_ENTRIES,
33 'group.roles.manage_users' => Group::ROLE_MANAGE_USERS,
34 'group.roles.admin' => Group::ROLE_ADMIN,
35 ],
36 ])
37 ->add('acceptSystem', ChoiceType::class, [
38 'label' => 'group.form.access_label',
39 'choices' => [
40 'group.access.open' => Group::ACCESS_OPEN,
41 'group.access.request' => Group::ACCESS_REQUEST,
42 'group.access.password' => Group::ACCESS_PASSWORD,
43 'group.access.invitation' => Group::ACCESS_INVITATION_ONLY,
44 'group.access.hidden' => Group::ACCESS_HIDDEN,
45 ],
46 ])
47 ->add('plainPassword', PasswordType::class, [
48 'label' => 'group.form.password_label',
49 'required' => false,
50 'attr' => ['autocomplete' => 'off'],
51 ])
52 ->add('save', SubmitType::class, [
53 'label' => 'group.form.save',
54 ])
55 ;
56 }
57
58 /**
59 * @param OptionsResolver $resolver
60 */
61 public function configureOptions(OptionsResolver $resolver)
62 {
63 $resolver->setDefaults(array(
64 'data_class' => 'Wallabag\GroupBundle\Entity\Group',
65 ));
66 }
67 }