amelioration ajout de mods
on peut desormer choisir les dependances durant l ajout d un mod
This commit is contained in:
parent
bfcc83db24
commit
95483c552a
2 changed files with 11 additions and 12 deletions
|
|
@ -20,15 +20,12 @@ class ModType extends AbstractType
|
||||||
{
|
{
|
||||||
$placeholderModNames = [
|
$placeholderModNames = [
|
||||||
'Create',
|
'Create',
|
||||||
'Ars Nouveau',
|
'Tectonic',
|
||||||
'Oculus',
|
'Iris',
|
||||||
'JEI',
|
'JEI',
|
||||||
];
|
];
|
||||||
$isEdit = $options['data']?->getId() !== null;
|
$isEdit = $options['data']?->getId() !== null;
|
||||||
$mods = [];
|
$mods = $this->modRepository->findAvailableDependances($builder->getData());
|
||||||
if ($isEdit) {
|
|
||||||
$mods = $this->modRepository->findAvailableDependances($builder->getData());
|
|
||||||
}
|
|
||||||
|
|
||||||
$builder
|
$builder
|
||||||
->add('nom', TextType::class, [
|
->add('nom', TextType::class, [
|
||||||
|
|
@ -73,10 +70,9 @@ class ModType extends AbstractType
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'required' => false,
|
'required' => false,
|
||||||
'choices' => $mods,
|
'choices' => $mods,
|
||||||
'disabled' => !$isEdit,
|
|
||||||
'attr' => [
|
'attr' => [
|
||||||
'id' => 'dependances',
|
'id' => 'dependances',
|
||||||
'data-placeholder'=> $isEdit? 'Rechercher une dépendance...' : 'Ajouter une dependance après la création du mod',
|
'data-placeholder'=> 'Rechercher une dépendance...',
|
||||||
],
|
],
|
||||||
])
|
])
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ namespace App\Repository;
|
||||||
use App\Entity\Mod;
|
use App\Entity\Mod;
|
||||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||||
use Doctrine\Persistence\ManagerRegistry;
|
use Doctrine\Persistence\ManagerRegistry;
|
||||||
|
use function PHPUnit\Framework\isNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @extends ServiceEntityRepository<Mod>
|
* @extends ServiceEntityRepository<Mod>
|
||||||
|
|
@ -20,11 +21,13 @@ class ModRepository extends ServiceEntityRepository
|
||||||
* Retourne tous les mods qui ne sont pas une dépendance (directe ou indirecte)
|
* Retourne tous les mods qui ne sont pas une dépendance (directe ou indirecte)
|
||||||
* du mod passé en paramètre, et qui n'est pas le mod lui-même.
|
* du mod passé en paramètre, et qui n'est pas le mod lui-même.
|
||||||
*/
|
*/
|
||||||
public function findAvailableDependances(Mod $mod): array
|
public function findAvailableDependances(?Mod $mod): array
|
||||||
{
|
{
|
||||||
$excludedIds = $this->collectDependencyIds($mod, []);
|
$excludedIds = [];
|
||||||
$excludedIds[] = $mod->getId();
|
if (!isnull($mod)) {
|
||||||
|
$excludedIds = $this->collectDependencyIds($mod, []);
|
||||||
|
$excludedIds[] = $mod->getId();
|
||||||
|
}
|
||||||
$qb = $this->createQueryBuilder('m');
|
$qb = $this->createQueryBuilder('m');
|
||||||
|
|
||||||
if (!empty($excludedIds)) {
|
if (!empty($excludedIds)) {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue