-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathReportCrudController.php
More file actions
124 lines (112 loc) · 8.13 KB
/
ReportCrudController.php
File metadata and controls
124 lines (112 loc) · 8.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
namespace App\Controller\Admin;
use App\Entity\Report;
use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
use EasyCorp\Bundle\EasyAdminBundle\Config\Actions;
use EasyCorp\Bundle\EasyAdminBundle\Config\Crud;
use EasyCorp\Bundle\EasyAdminBundle\Field\AssociationField;
use EasyCorp\Bundle\EasyAdminBundle\Field\BooleanField;
use EasyCorp\Bundle\EasyAdminBundle\Field\CollectionField;
use EasyCorp\Bundle\EasyAdminBundle\Field\DateTimeField;
use EasyCorp\Bundle\EasyAdminBundle\Field\IdField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextEditorField;
use EasyCorp\Bundle\EasyAdminBundle\Field\TextField;
use EasyCorp\Bundle\EasyAdminBundle\Field\UrlField;
use Symfony\Component\Translation\TranslatableMessage;
class ReportCrudController extends AbstractFilterableCrudController
{
public static function getEntityFqcn(): string
{
return Report::class;
}
#[\Override]
public function configureActions(Actions $actions): Actions
{
$actions
->add(Crud::PAGE_INDEX, Action::DETAIL)
->disable(Action::DELETE, Action::NEW)
;
return $actions;
}
#[\Override]
public function configureFields(string $pageName): iterable
{
switch ($pageName) {
case Crud::PAGE_INDEX:
// Cf. https://github.com/itk-dev/sysstatus/blob/5383a3a566ce316c338441ed826ecf3fdcf98815/src/Controller/AdminController.php#L263-L288
yield IdField::new('id')->setLabel('entity.report.sys_id');
yield TextField::new('sysTitle')->setLabel('entity.report.sys_title')->renderAsHtml();
yield CollectionField::new('groups')->setLabel('entity.report.groups')
->renderExpanded();
yield TextField::new('sysOwnerSub')->setLabel('entity.report.sys_owner_sub')->renderAsHtml();
yield TextField::new('sysSystemOwner')->setLabel('entity.report.sys_system_owner')->renderAsHtml();
yield UrlField::new('sysLink')->setLabel('entity.report.sys_link')
->formatValue(static fn ($value) => new TranslatableMessage('Link'));
yield BooleanField::new('textSet')->setLabel('entity.report.text')
->renderAsSwitch(false)
->hideValueWhenFalse();
return;
case Crud::PAGE_DETAIL:
// Cf. https://github.com/itk-dev/sysstatus/blob/5383a3a566ce316c338441ed826ecf3fdcf98815/config/packages/easy_admin.yaml#L100-L143
yield TextField::new('sysTitle')->setLabel('entity.report.sys_title')->renderAsHtml();
yield IdField::new('sysInternalId')->setLabel('entity.report.sys_internal_id');
yield UrlField::new('eDocUrl')->setLabel('entity.report.edoc_url');
yield UrlField::new('sysLink')->setLabel('entity.report.sys_link');
yield TextField::new('name')->setLabel('entity.report.name')->renderAsHtml();
yield TextEditorField::new('text')->setLabel('entity.report.text')
// Show raw value
->setTemplatePath('admin/text_editor.raw.html.twig');
yield TextField::new('sysSystemOwner')->setLabel('entity.report.sys_system_owner')->renderAsHtml();
// @todo Add links to each group?
yield CollectionField::new('groups')->setLabel('entity.report.groups');
yield CollectionField::new('answerArea')->setLabel('entity.report.answers')
->setTemplatePath('easy_admin_overrides/answers_show.html.twig');
yield TextField::new('sysAlternativeTitle')->setLabel('entity.report.sys_alternative_title')->renderAsHtml();
yield DateTimeField::new('sysUpdated')->setLabel('entity.report.sys_updated');
yield TextField::new('sysOwner')->setLabel('entity.report.sys_owner')->renderAsHtml();
yield BooleanField::new('sysConfidentialInformation')->setLabel('entity.report.sys_confidential_information');
yield TextField::new('sysPurpose')->setLabel('entity.report.sys_purpose')->renderAsHtml();
yield TextField::new('sysClassification')->setLabel('entity.report.sys_classification')->renderAsHtml();
yield DateTimeField::new('sysDateForRevision')->setLabel('entity.report.sys_date_for_revision');
yield TextField::new('sysPersons')->setLabel('entity.report.sys_persons')->renderAsHtml();
yield TextField::new('sysInformationTypes')->setLabel('entity.report.sys_information_types')->renderAsHtml();
yield TextField::new('sysDataSentTo')->setLabel('entity.report.sys_data_sent_to')->renderAsHtml();
yield TextField::new('sysDataComeFrom')->setLabel('entity.report.sys_data_come_from')->renderAsHtml();
yield TextField::new('sysDataLocation')->setLabel('entity.report.sys_data_location')->renderAsHtml();
yield TextField::new('sysLatestDeletionDate')->setLabel('entity.report.sys_latest_deletion_date')->renderAsHtml();
yield TextField::new('sysDataWorthSaving')->setLabel('entity.report.sys_data_worth_saving')->renderAsHtml();
yield TextField::new('sysDataProcessors')->setLabel('entity.report.sys_data_processors')->renderAsHtml();
yield TextField::new('sysDataProcessingAgreement')->setLabel('entity.report.sys_data_processing_agreement')->renderAsHtml();
yield TextField::new('sysDataProcessingAgreementLink')->setLabel('entity.report.sys_data_processing_agreement_link')->renderAsHtml();
yield TextField::new('sysAuditorStatement')->setLabel('entity.report.sys_auditor_statement')->renderAsHtml();
yield TextField::new('sysAuditorStatementLink')->setLabel('entity.report.sys_auditor_statement_link')->renderAsHtml();
yield TextField::new('sysDataToScience')->setLabel('entity.report.sys_data_to_science')->renderAsHtml();
yield TextField::new('sysUsage')->setLabel('entity.report.sys_usage')->renderAsHtml();
yield TextField::new('sysRequestForInsight')->setLabel('entity.report.sys_request_for_insight')->renderAsHtml();
yield DateTimeField::new('sysDateUse')->setLabel('entity.report.sys_date_use');
yield TextField::new('sysStatus')->setLabel('entity.report.sys_status')->renderAsHtml();
yield TextField::new('sysRemarks')->setLabel('entity.report.sys_remarks')->renderAsHtml();
yield TextField::new('sysInternalInformation')->setLabel('entity.report.sys_internal_information')->renderAsHtml();
yield TextField::new('sysObligationToInform')->setLabel('entity.report.sys_obligation_to_inform')->renderAsHtml();
yield TextField::new('sysLegalBasis')->setLabel('entity.report.sys_legal_basis')->renderAsHtml();
yield TextField::new('sysConsent')->setLabel('entity.report.sys_consent')->renderAsHtml();
yield TextField::new('sysImpactAnalysis')->setLabel('entity.report.sys_impact_analysis')->renderAsHtml();
yield TextField::new('sysImpactAnalysisLink')->setLabel('entity.report.sys_impact_analysis_link')->renderAsHtml();
yield TextField::new('sysAuthorizationProcedure')->setLabel('entity.report.sys_authorization_procedure')->renderAsHtml();
yield TextField::new('sysVersion')->setLabel('entity.report.sys_version')->renderAsHtml();
return;
case Crud::PAGE_NEW:
case Crud::PAGE_EDIT:
// Cf. https://github.com/itk-dev/sysstatus/blob/5383a3a566ce316c338441ed826ecf3fdcf98815/config/packages/easy_admin.yaml#L144-L150
yield TextField::new('sysTitle')->setLabel('entity.report.sys_title')
->setDisabled();
yield TextEditorField::new('text');
yield AssociationField::new('groups')->setLabel('entity.report.groups')
->setPermission('ROLE_ADMIN');
yield UrlField::new('eDocUrl')->setLabel('entity.report.edoc_url');
return;
default:
throw new \Exception('Invalid page: '.$pageName);
}
}
}