]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php
Add a form to create tagging rules
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Form / Type / TaggingRuleType.php
diff --git a/src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php b/src/Wallabag/CoreBundle/Form/Type/TaggingRuleType.php
new file mode 100644 (file)
index 0000000..7fbba38
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+namespace Wallabag\CoreBundle\Form\Type;
+
+use Symfony\Component\Form\AbstractType;
+use Symfony\Component\Form\FormBuilderInterface;
+use Symfony\Component\OptionsResolver\OptionsResolver;
+
+use Wallabag\CoreBundle\Form\DataTransformer\StringToListTransformer;
+
+class TaggingRuleType extends AbstractType
+{
+    public function buildForm(FormBuilderInterface $builder, array $options)
+    {
+        $builder
+            ->add('rule', 'text', array('required' => true))
+            ->add('save', 'submit')
+        ;
+
+        $tagsField = $builder
+            ->create('tags', 'text')
+            ->addModelTransformer(new StringToListTransformer(','));
+
+        $builder->add($tagsField);
+    }
+
+    public function configureOptions(OptionsResolver $resolver)
+    {
+        $resolver->setDefaults(array(
+            'data_class' => 'Wallabag\CoreBundle\Entity\TaggingRule',
+        ));
+    }
+
+    public function getName()
+    {
+        return 'tagging_rule';
+    }
+}