Skip to content
Snippets Groups Projects
Commit fb578212 authored by Camille Simiand's avatar Camille Simiand
Browse files

Add a dedicated page from group creation

parent 0429f45d
Branches
No related tags found
2 merge requests!55demo version for Clarisse workshop,!51tuleap-130-add-a-capsule-into-custom-groups
......@@ -131,6 +131,7 @@ button[type=submit]{
.button-cancel {
border: none;
border-radius: 3px;
background-color: #5c636a;
}
.button-cancel:hover {
......
......@@ -5,7 +5,7 @@ namespace App\Controller;
use App\Entity\Capsule;
use App\Entity\Group;
use App\Entity\User;
use App\Form\EditCapsuleGroupsFormType;
use App\Form\CreateCapsuleGroupsFormType;
use App\Repository\CapsuleRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
......@@ -41,7 +41,7 @@ class CapsuleGroupController extends AbstractController
return $this->redirectToRoute('app_logout');
}
$form = $this->createForm(EditCapsuleGroupsFormType::class);
$form = $this->createForm(CreateCapsuleGroupsFormType::class);
$form->handleRequest($request);
$capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
......@@ -52,22 +52,71 @@ class CapsuleGroupController extends AbstractController
$groups = $capsule->getGroups();
if ($form->isSubmitted() && $form->isValid()) {
// $group_name = $form->get('name')->getData();
// $group = new Group();
// $group->setName($group_name);
// $this->entity_manager->persist($group);
// $capsule->addGroup($group);
// $this->entity_manager->persist($capsule);
// $this->entity_manager->flush();
//
// $this->addFlash(
// 'success',
// $this->translator->trans(
// 'groups.add.success',
// [
// 'group_name' => $group->getName(),
// 'capsule_name' => $capsule->getName()
// ]
// )
// );
return $this->redirectToRoute('edit_capsule_groups', [
'capsule_id' => $capsule_id
]);
}
return $this->render('capsule/groups/edit.html.twig', [
'editCapsuleGroupsForm' => $form->createView(),
'capsule' => $capsule,
'groups' => $groups
]);
}
/**
* @Route("capsule/{capsule_id}/groups/create", name="create_group")
*/
public function create(int $capsule_id, Request $request): Response
{
$current_user = $this->getUser();
if (! $current_user instanceof User) {
return $this->redirectToRoute('app_logout');
}
$form = $this->createForm(CreateCapsuleGroupsFormType::class);
$form->handleRequest($request);
$capsule = $this->capsule_repository->findOneBy(['id' => $capsule_id]);
if (! $capsule instanceof Capsule) {
throw new \Exception("Capsule does not exist");
}
if ($form->isSubmitted() && $form->isValid()) {
$group_name = $form->get('name')->getData();
$group = new Group();
$group->setName($group_name);
$this->entity_manager->persist($group);
$capsule->addGroup($group);
$this->entity_manager->persist($capsule);
$this->entity_manager->flush();
$this->addFlash(
'success',
$this->translator->trans(
'groups.add.success',
'groups.create.success',
[
'group_name' => $group->getName(),
'capsule_name' => $capsule->getName()
'group_name' => $group->getName()
]
)
);
......@@ -77,10 +126,9 @@ class CapsuleGroupController extends AbstractController
]);
}
return $this->render('capsule/groups/edit.html.twig', [
'editCapsuleGroupsForm' => $form->createView(),
'capsule_name' => $capsule->getName(),
'groups' => $groups
return $this->render('capsule/groups/create.html.twig', [
'createCapsuleGroupsForm' => $form->createView(),
'capsule' => $capsule
]);
}
}
......@@ -5,13 +5,14 @@ namespace App\Form;
use App\Entity\Capsule;
use App\Entity\Group;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\ButtonType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Validator\Constraints\NotBlank;
class EditCapsuleGroupsFormType extends AbstractType
class CreateCapsuleGroupsFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
......@@ -21,13 +22,20 @@ class EditCapsuleGroupsFormType extends AbstractType
TextType::class,
[
'constraints' => [new NotBlank(['message' => 'group.name.not_blank'])],
'label' => 'groups.add.name'
'label' => 'groups.create.name'
]
)
->add(
'validate',
SubmitType::class,
['label' => 'groups.add.validate']
['label' => 'groups.create.validate']
)
->add(
'go_back',
ButtonType::class,
['label' => 'groups.create.go_back',
'attr' => ['class' => 'button-cancel']
]
);
}
......
{% extends 'layout.html.twig' %}
{% block title %}
{{ 'groups.create.title'|trans }}
-
{{ parent() }}
{% endblock %}
{% block body %}
<div>
<div class="row w-100 gx-0">
<div class="row-title-box">
<h3 class="row-title">
{{ 'groups.create.title'|trans }}
</h3>
</div>
</div>
{# <div class="d-flex flex-md-row flex-column justify-content-center">#}
<div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">
{{ form_start(createCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}
{{ form_row(createCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}}) }}
{{ form_row(createCapsuleGroupsForm.validate) }}
<a href="/capsule/{{ capsule.getId() }}/groups/edit">
{{ form_row(createCapsuleGroupsForm.go_back) }}
</a>
{{ form_end(createCapsuleGroupsForm) }}
</div>
{# </div>#}
</div>
{% endblock %}
\ No newline at end of file
......@@ -12,7 +12,7 @@
<div class="row w-100 gx-0">
<div class="row-title-box">
<h3 class="row-title">
{{ 'groups.edit.title_with_capsule_name'|trans({'%capsule_name%': capsule_name}) }}
{{ 'groups.edit.title_with_capsule_name'|trans({'%capsule_name%': capsule.getName()}) }}
</h3>
</div>
</div>
......@@ -30,12 +30,29 @@
{% endfor %}
<div class="d-flex flex-md-row flex-column justify-content-center">
<div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">
{{ form_start(editCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}
{{ form_row(editCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}}) }}
{{ form_row(editCapsuleGroupsForm.validate) }}
{{ form_end(editCapsuleGroupsForm) }}
</div>
{# <div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">#}
{# {{ form_start(addCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}#}
{# {{ form_row(addCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}}) }}#}
{# {{ form_row(addCapsuleGroupsForm.validate) }}#}
{# {{ form_end(addCapsuleGroupsForm) }}#}
{# </div>#}
{# <select class="form-select" multiple aria-label="multiple select example">#}
{# {% for existing_group in existing_groups %}#}
{# <option selected>{{ existing_group->getName() }}</option>#}
{# <option value="1">One</option>#}
{# </select>#}
<a href="/capsule/{{ capsule.getId() }}/groups/create">
Add a new group
</a>
{# <div class="d-flex flex-column justify-content-center ms-md-5 ms-0 order-md-2 mb-4 col-sm-8 col-md-6 col-lg-5 col-xl-4">#}
{# {{ form_start(createCapsuleGroupsForm, {'attr': {novalidate: 'novalidate'}}) }}#}
{# {{ form_row(createCapsuleGroupsForm.name, {'row_attr': {'class' : 'm-auto mb-4'}}) }}#}
{# {{ form_row(createCapsuleGroupsForm.validate) }}#}
{# {{ form_end(createCapsuleGroupsForm) }}#}
{# </div>#}
<div class="d-flex flex-row pe-md-5 pb-3 fw-normal me-0 me-md-5">
<div class="pe-3 pe-md-4 text-nowrap">
......
......@@ -149,7 +149,11 @@ groups:
edit:
title: Edit capsule groups
title_with_capsule_name: Groups for capsule %capsule_name%
add:
create:
title: Create a new group
success: Group group_name has been created successfully
name: Choose a new group name
validate: Create a new group
go_back: Go back to capsule groups
add:
success: Group group_name has been added successfully to capsule capsule_name
\ No newline at end of file
......@@ -163,7 +163,11 @@ groups:
edit:
title: Modifier les groupes
title_with_capsule_name: Groupes de la capsule %capsule_name%
add:
create:
title: Créer un nouveau groupe
success: Le groupe group_name a bien été créé
name: Choisir un nom de groupe
validate: Créer un nouveau groupe
go_back: Retourner à la liste des groupes
add:
success: Le groupe group_name a bien été ajouté à la capsule capsule_name
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment