]> Raphaël G. Git Repositories - airbundle/commitdiff
Contextualize attribute, autoattribute and forcecancel buttons
authorRaphaël Gertz <git@rapsys.eu>
Sun, 13 Dec 2020 20:51:24 +0000 (21:51 +0100)
committerRaphaël Gertz <git@rapsys.eu>
Sun, 13 Dec 2020 20:51:24 +0000 (21:51 +0100)
Form/SessionEditType.php

index f5b7317710aaf47bfd68c1696ff50d7010081cca..7841e70cc7eaff85c49ef4606a09f4b7f78a9636 100644 (file)
@@ -30,10 +30,14 @@ class SessionEditType extends AbstractType {
         * {@inheritdoc}
         */
        public function buildForm(FormBuilderInterface $builder, array $options) {
-               //Is admin or rainfall >= 2
+               //Is admin or user with rainfall >= 2
                if (!empty($options['raincancel'])) {
                        //Add raincancel item
                        $builder->add('raincancel', SubmitType::class, ['label' => 'Rain cancel', 'attr' => ['class' => 'submit']]);
+               //Is admin
+               } elseif (!empty($options['admin'])) {
+                       //Add forcecancel item
+                       $builder->add('forcecancel', SubmitType::class, ['label' => 'Force cancel', 'attr' => ['class' => 'submit']]);
                }
 
                //Is admin or owner
@@ -51,9 +55,6 @@ class SessionEditType extends AbstractType {
                        $builder->add('cancel', SubmitType::class, ['label' => 'Cancel', 'attr' => ['class' => 'submit']]);
                }
 
-               //Is admin or session not finished
-               #if (!empty($options['admin']) || $options['stop'] > new \DateTime('now')) {
-
                //Is admin or senior owner
                if (!empty($options['move'])) {
                        //Load locations
@@ -72,9 +73,15 @@ class SessionEditType extends AbstractType {
                        $builder
                                //TODO: class admin en rouge ???
                                ->add('user', ChoiceType::class, ['attr' => ['placeholder' => 'Your user'], 'constraints' => [new NotBlank(['message' => 'Please provide your user'])], 'choices' => $users, 'data' => $options['user'], 'choice_translation_domain' => false])
-                               ->add('attribute', SubmitType::class, ['label' => 'Attribute', 'attr' => ['class' => 'submit']])
-                               ->add('autoattribute', SubmitType::class, ['label' => 'Auto attribute', 'attr' => ['class' => 'submit']])
                                ->add('lock', SubmitType::class, ['label' => 'Lock', 'attr' => ['class' => 'submit']]);
+
+                       //Is admin and locked === null
+                       if (!empty($options['attribute'])) {
+                               //Add attribute fields
+                               $builder
+                                       ->add('attribute', SubmitType::class, ['label' => 'Attribute', 'attr' => ['class' => 'submit']])
+                                       ->add('autoattribute', SubmitType::class, ['label' => 'Auto attribute', 'attr' => ['class' => 'submit']]);
+                       }
                }
 
                //Return form
@@ -85,7 +92,7 @@ class SessionEditType extends AbstractType {
         * {@inheritdoc}
         */
        public function configureOptions(OptionsResolver $resolver) {
-               $resolver->setDefaults(['error_bubbling' => true, 'admin' => false, 'begin' => null, 'length' => null, 'cancel' => false, 'raincancel' => false, 'modify' => false, 'move' => false, 'user' => null, 'session' => null]);
+               $resolver->setDefaults(['error_bubbling' => true, 'admin' => false, 'begin' => null, 'length' => null, 'cancel' => false, 'raincancel' => false, 'modify' => false, 'move' => false, 'attribute' => false, 'user' => null, 'session' => null]);
                $resolver->setAllowedTypes('admin', 'boolean');
                #TODO: voir si c'est le bon type
                $resolver->setAllowedTypes('begin', 'datetime');
@@ -94,6 +101,7 @@ class SessionEditType extends AbstractType {
                $resolver->setAllowedTypes('raincancel', 'boolean');
                $resolver->setAllowedTypes('modify', 'boolean');
                $resolver->setAllowedTypes('move', 'boolean');
+               $resolver->setAllowedTypes('attribute', 'boolean');
                $resolver->setAllowedTypes('user', 'integer');
                $resolver->setAllowedTypes('session', 'integer');
        }