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