10
10
use App \Model \Enums \PaymentType ;
11
11
use App \Model \Enums \SkautIsEventType ;
12
12
use App \Model \Settings \CustomInput \CustomCheckbox ;
13
+ use App \Model \Settings \CustomInput \CustomDate ;
14
+ use App \Model \Settings \CustomInput \CustomDateTime ;
13
15
use App \Model \Settings \CustomInput \CustomInputRepository ;
16
+ use App \Model \Settings \CustomInput \CustomMultiSelect ;
14
17
use App \Model \Settings \CustomInput \CustomSelect ;
15
18
use App \Model \Settings \CustomInput \CustomText ;
16
19
use App \Model \Settings \Settings ;
17
20
use App \Model \Settings \SettingsException ;
18
21
use App \Model \User \CustomInputValue \CustomCheckboxValue ;
19
22
use App \Model \User \CustomInputValue \CustomFileValue ;
20
- use App \Model \User \CustomInputValue \CustomSelectValue ;
21
23
use App \Model \User \CustomInputValue \CustomTextValue ;
22
24
use App \Model \User \User ;
23
25
use App \Model \User \UserRepository ;
48
50
use Ublaboo \DataGrid \DataGrid ;
49
51
use Ublaboo \DataGrid \Exception \DataGridColumnStatusException ;
50
52
use Ublaboo \DataGrid \Exception \DataGridException ;
51
- use function array_merge ;
52
53
use function array_slice ;
53
54
use function array_values ;
54
55
use function explode ;
@@ -351,8 +352,6 @@ public function createComponentUsersGrid(string $name) : void
351
352
return $ customInputValue ->getValue ()
352
353
? $ this ->translator ->translate ('admin.common.yes ' )
353
354
: $ this ->translator ->translate ('admin.common.no ' );
354
- case $ customInputValue instanceof CustomSelectValue:
355
- return $ customInputValue ->getValueOption ();
356
355
case $ customInputValue instanceof CustomFileValue:
357
356
return $ customInputValue ->getValue ()
358
357
? Html::el ('a ' )
@@ -365,6 +364,8 @@ public function createComponentUsersGrid(string $name) : void
365
364
Html::el ('span ' )->setAttribute ('class ' , 'fa fa-download ' )
366
365
)
367
366
: '' ;
367
+ default :
368
+ return $ customInputValue ->getValueText ();
368
369
}
369
370
}
370
371
@@ -405,22 +406,56 @@ public function createComponentUsersGrid(string $name) : void
405
406
break ;
406
407
407
408
case $ customInput instanceof CustomSelect:
408
- $ columnCustomInput ->setFilterSelect (array_merge (['' => 'admin.common.all ' ], $ customInput ->getSelectOptions ()))
409
- ->setCondition (static function (QueryBuilder $ qb , string $ value ) use ($ customInput ) : void {
410
- if ($ value === '' ) {
411
- return ;
412
- } else {
413
- $ qb ->leftJoin ('u.customInputValues ' , 'uCIV3 ' )
414
- ->leftJoin ('uCIV3.input ' , 'uCIVI3 ' )
415
- ->leftJoin ('App\Model\User\CustomInputValue\CustomSelectValue ' , 'uCSV ' , 'WITH ' , 'uCIV3.id = uCSV.id ' )
416
- ->andWhere ('uCIVI3.id = :iid3 OR uCIVI3.id IS NULL ' )
417
- ->andWhere ('uCSV.value = :ivalue3 ' )
418
- ->setParameter ('iid3 ' , $ customInput ->getId ())
419
- ->setParameter ('ivalue3 ' , $ value );
420
- }
409
+ $ columnCustomInput ->setFilterMultiSelect ($ customInput ->getFilterOptions ())
410
+ ->setCondition (static function (QueryBuilder $ qb , ArrayHash $ values ) use ($ customInput ) : void {
411
+ $ qb ->leftJoin ('u.customInputValues ' , 'uCIV3 ' )
412
+ ->leftJoin ('uCIV3.input ' , 'uCIVI3 ' )
413
+ ->leftJoin ('App\Model\User\CustomInputValue\CustomSelectValue ' , 'uCSV ' , 'WITH ' , 'uCIV3.id = uCSV.id ' )
414
+ ->andWhere ('uCIVI3.id = :iid3 OR uCIVI3.id IS NULL ' )
415
+ ->andWhere ('uCSV.value in (:ivalues3) ' )
416
+ ->setParameter ('iid3 ' , $ customInput ->getId ())
417
+ ->setParameter ('ivalues3 ' , (array ) $ values );
421
418
})
422
419
->setTranslateOptions ();
423
420
break ;
421
+
422
+ case $ customInput instanceof CustomMultiSelect:
423
+ $ columnCustomInput ->setFilterMultiSelect ($ customInput ->getSelectOptions ())
424
+ ->setCondition (static function (QueryBuilder $ qb , ArrayHash $ values ) use ($ customInput ) : void {
425
+ $ qb ->leftJoin ('u.customInputValues ' , 'uCIV4 ' )
426
+ ->leftJoin ('uCIV4.input ' , 'uCIVI4 ' )
427
+ ->leftJoin ('App\Model\User\CustomInputValue\CustomMultiSelectValue ' , 'uCMSV ' , 'WITH ' , 'uCIV4.id = uCMSV.id ' )
428
+ ->andWhere ('uCIVI4.id = :iid4 OR uCIVI4.id IS NULL ' )
429
+ ->andWhere ('uCMSV.value in (:ivalues4) ' )
430
+ ->setParameter ('iid4 ' , $ customInput ->getId ())
431
+ ->setParameter ('ivalues4 ' , (array ) $ values );
432
+ })
433
+ ->setTranslateOptions ();
434
+ break ;
435
+
436
+ case $ customInput instanceof CustomDate:
437
+ $ columnCustomInput ->setSortable ()
438
+ ->setSortableCallback (static function (QueryBuilder $ qb , array $ sort ) use ($ customInput , $ columnCustomInputName ) : void {
439
+ $ qb ->leftJoin ('u.customInputValues ' , 'uCIV5 ' )
440
+ ->leftJoin ('uCIV5.input ' , 'uCIVI5 ' )
441
+ ->leftJoin ('App\Model\User\CustomInputValue\CustomDateValue ' , 'uCDV ' , 'WITH ' , 'uCIV5.id = uCDV.id ' )
442
+ ->andWhere ('uCIVI5.id = :iid5 OR uCIVI5.id IS NULL ' )
443
+ ->setParameter ('iid5 ' , $ customInput ->getId ())
444
+ ->orderBy ('uCDV.value ' , $ sort [$ columnCustomInputName ]);
445
+ });
446
+ break ;
447
+
448
+ case $ customInput instanceof CustomDateTime:
449
+ $ columnCustomInput ->setSortable ()
450
+ ->setSortableCallback (static function (QueryBuilder $ qb , array $ sort ) use ($ customInput , $ columnCustomInputName ) : void {
451
+ $ qb ->leftJoin ('u.customInputValues ' , 'uCIV6 ' )
452
+ ->leftJoin ('uCIV6.input ' , 'uCIVI6 ' )
453
+ ->leftJoin ('App\Model\User\CustomInputValue\CustomDateTimeValue ' , 'uCDTV ' , 'WITH ' , 'uCIV6.id = uCDTV.id ' )
454
+ ->andWhere ('uCIVI6.id = :iid6 OR uCIVI6.id IS NULL ' )
455
+ ->setParameter ('iid6 ' , $ customInput ->getId ())
456
+ ->orderBy ('uCDTV.value ' , $ sort [$ columnCustomInputName ]);
457
+ });
458
+ break ;
424
459
}
425
460
}
426
461
0 commit comments