Skip to content

Commit 21e354b

Browse files
committed
migrating minor features to EAB
1 parent 82c8813 commit 21e354b

File tree

13 files changed

+88
-231
lines changed

13 files changed

+88
-231
lines changed

bundles/org.zikula.modulestudio.generator/META-INF/MANIFEST.MF

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ Bundle-Version: 2.0.0.qualifier
66
Require-Bundle: de.guite.modulestudio.mostdsl;bundle-version="2.0.0",
77
org.apache.commons.logging;bundle-version="1.2.0",
88
org.apache.log4j;bundle-version="1.2.26",
9-
org.eclipse.core.runtime;bundle-version="3.34.0",
10-
org.eclipse.emf.mwe2.launch;bundle-version="2.23.0",
11-
org.eclipse.emf.mwe.utils;bundle-version="1.17.0",
12-
org.eclipse.xtend.core;bundle-version="2.40.0",
13-
org.eclipse.xtend.standalone;bundle-version="2.40.0";resolution:=optional,
14-
org.eclipse.xtext;bundle-version="2.40.0",
15-
org.objectweb.asm;bundle-version="9.8.0"
9+
org.eclipse.core.runtime;bundle-version="3.34.100",
10+
org.eclipse.emf.mwe2.launch;bundle-version="2.24.0",
11+
org.eclipse.emf.mwe.utils;bundle-version="1.18.0",
12+
org.eclipse.xtend.core;bundle-version="2.41.0",
13+
org.eclipse.xtend.standalone;bundle-version="2.41.0";resolution:=optional,
14+
org.eclipse.xtext;bundle-version="2.41.0",
15+
org.objectweb.asm;bundle-version="9.9.0"
1616
Bundle-Vendor: %providerName
1717
Bundle-ActivationPolicy: lazy
1818
Export-Package: org.zikula.modulestudio.generator.application,

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/controller/ControllerLayer.xtend

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.zikula.modulestudio.generator.cartridges.symfony.controller
22

33
import de.guite.modulestudio.metamodel.Action
44
import de.guite.modulestudio.metamodel.Application
5+
import de.guite.modulestudio.metamodel.DeleteAction
56
import de.guite.modulestudio.metamodel.DetailAction
67
import de.guite.modulestudio.metamodel.Entity
78
import de.guite.modulestudio.metamodel.StringField
@@ -27,7 +28,7 @@ import org.zikula.modulestudio.generator.extensions.ModelBehaviourExtensions
2728
import org.zikula.modulestudio.generator.extensions.ModelExtensions
2829
import org.zikula.modulestudio.generator.extensions.NamingExtensions
2930
import org.zikula.modulestudio.generator.extensions.Utils
30-
import de.guite.modulestudio.metamodel.DeleteAction
31+
import org.zikula.modulestudio.generator.extensions.WorkflowExtensions
3132

3233
class ControllerLayer {
3334

@@ -37,6 +38,7 @@ class ControllerLayer {
3738
extension ModelExtensions = new ModelExtensions
3839
extension NamingExtensions = new NamingExtensions
3940
extension Utils = new Utils
41+
extension WorkflowExtensions = new WorkflowExtensions
4042

4143
Application app
4244
ControllerAction actionHelper
@@ -95,23 +97,28 @@ class ControllerLayer {
9597
«IF hasLocaleFieldsEntity»
9698
protected readonly LocaleApiInterface $localeApi,
9799
«ENDIF»
100+
«IF hasDetailAction || hasEditAction»
101+
protected readonly EntityDisplayHelper $entityDisplayHelper,
102+
«ENDIF»
98103
«IF hasListFieldsEntity»
99104
protected readonly ListEntriesHelper $listEntriesHelper,
100105
«ENDIF»
106+
«IF hasEditAction»
107+
protected readonly ModelHelper $modelHelper,
108+
«ENDIF»
109+
protected readonly PermissionHelper $permissionHelper,
101110
«IF hasUploadFieldsEntity»
102111
protected readonly UploadHelper $uploadHelper,
103112
«IF !getUploadFieldsEntity.filter[f|!f.isOnlyImageField].empty»
104113
protected readonly UploaderHelper $uploaderHelper,
105114
«ENDIF»
106115
«ENDIF»
107-
«IF hasEditAction»
108-
protected readonly ModelHelper $modelHelper,
109-
«ENDIF»
110116
«IF hasDateIntervalFieldsEntity»
111117
protected readonly ViewHelper $viewHelper,
112118
«ENDIF»
113-
protected readonly PermissionHelper $permissionHelper«IF hasDetailAction || hasEditAction»,
114-
protected readonly EntityDisplayHelper $entityDisplayHelper«ENDIF»
119+
«IF hasVisibleWorkflow»
120+
protected readonly WorkflowHelper $workflowHelper,
121+
«ENDIF»
115122
) {
116123
$this->setTranslator($translator);
117124
}
@@ -242,6 +249,9 @@ class ControllerLayer {
242249
if (hasUploadFieldsEntity) {
243250
imports.add(app.appNamespace + '\\Helper\\UploadHelper')
244251
}
252+
if (hasVisibleWorkflow) {
253+
imports.add(app.appNamespace + '\\Helper\\WorkflowHelper')
254+
}
245255
if (!getAllEntityFields.filter(StringField).filter[#[StringRole.COUNTRY, StringRole.CURRENCY, StringRole.LANGUAGE, StringRole.LOCALE, StringRole.TIME_ZONE].contains(role)].empty) {
246256
imports.add('Symfony\\Component\\HttpFoundation\\RequestStack')
247257
}

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/controller/config/ConfigureFields.xtend

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import org.zikula.modulestudio.generator.extensions.ModelExtensions
3131
import org.zikula.modulestudio.generator.extensions.ModelJoinExtensions
3232
import org.zikula.modulestudio.generator.extensions.NamingExtensions
3333
import org.zikula.modulestudio.generator.extensions.Utils
34+
import org.zikula.modulestudio.generator.extensions.WorkflowExtensions
3435

3536
class ConfigureFields implements ControllerMethodInterface {
3637

@@ -42,6 +43,7 @@ class ConfigureFields implements ControllerMethodInterface {
4243
extension ModelJoinExtensions = new ModelJoinExtensions
4344
extension NamingExtensions = new NamingExtensions
4445
extension Utils = new Utils
46+
extension WorkflowExtensions = new WorkflowExtensions
4547

4648
ValidationHelpProvider validationHelpProvider = new ValidationHelpProvider
4749
Iterable<Relationship> incomingRelations
@@ -540,8 +542,9 @@ class ConfigureFields implements ControllerMethodInterface {
540542
calls += '''->renderAsNativeWidget()'''
541543
}
542544
// escapeHtml(false)
543-
// renderAsBadges([...]) // TODO interesting for list items (particularly workflows)?
544-
// see https://symfony.com/bundles/EasyAdminBundle/current/fields/ChoiceField.html#renderasbadges
545+
if ('workflowState' === name && entity.hasVisibleWorkflow) {
546+
calls += '''->renderAsBadges($this->workflowHelper->getBadgeTypes())'''
547+
}
545548
if (expanded) {
546549
calls += '''->renderExpanded()'''
547550
}
@@ -698,14 +701,25 @@ class ConfigureFields implements ControllerMethodInterface {
698701
'input' => 'string',
699702
«ENDIF»
700703
'''
704+
705+
706+
def private dispatch formatValue(NumberField it) '''
707+
«IF null !== unit && !unit.empty»
708+
static fn (string $value) => $value ? $value . t('«unit»') : ''
709+
«ENDIF»
710+
'''
711+
701712
def private dispatch formatValue(StringField it) '''
702713
«IF role == StringRole.DATE_INTERVAL»
703714
fn (\DateInterval $value) => $this->viewHelper->getFormattedDateInterval($value)
704715
«ELSEIF role == StringRole.ICON»
705716
static fn (string $value) => '<i class="' . $value . '"></i>'
706717
«ELSEIF role == StringRole.PASSWORD»
707718
static fn (string $value) => '*********'
708-
«ENDIF»'''
719+
«ELSEIF null !== unit && !unit.empty»
720+
static fn (string $value) => $value ? $value . t('«unit»') : ''
721+
«ENDIF»
722+
'''
709723

710724
def private dispatch additionalAttributes(TextField it) '''
711725
'maxlength' => «length»,

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/controller/helper/WorkflowHelper.xtend

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ class WorkflowHelper {
3838
'Symfony\\Component\\Workflow\\Registry',
3939
'Symfony\\Contracts\\Translation\\TranslatorInterface',
4040
appNamespace + '\\Entity\\EntityInterface',
41-
appNamespace + '\\Helper\\ListEntriesHelper',
4241
appNamespace + '\\Helper\\PermissionHelper'
4342
])
4443
for (entity : getEntitiesForWorkflow(true)) {
@@ -70,7 +69,6 @@ class WorkflowHelper {
7069
«FOR entity : getEntitiesForWorkflow(true
7170
protected readonly «entity.name.formatForCodeCapital»RepositoryInterface $«entity.name.formatForCode»Repository,
7271
«ENDFOR»
73-
protected readonly ListEntriesHelper $listEntriesHelper,
7472
protected readonly PermissionHelper $permissionHelper,
7573
protected readonly LoggerInterface $logger,
7674
) {
@@ -88,6 +86,8 @@ class WorkflowHelper {
8886
«collectAmountOfModerationItems»
8987

9088
«getAmountOfModerationItems»
89+
90+
«getBadgeTypes»
9191
«ENDIF»
9292
'''
9393
@@ -417,6 +417,22 @@ class WorkflowHelper {
417417
}
418418
'''
419419
420+
def private getBadgeTypes(Application it) '''
421+
/**
422+
* Returns badge type mapping for workflow states.
423+
*/
424+
public function getBadgeTypes(): array
425+
{
426+
$result = [];
427+
$stateList = $this->getObjectStates();
428+
foreach ($stateList as $state) {
429+
$result[$state['value']] = $state['ui'];
430+
}
431+
432+
return $result;
433+
}
434+
'''
435+
420436
def private workflowFunctionsImpl(Application it) '''
421437
namespace «appNamespace»\Helper;
422438

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/models/Repository.xtend

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ class Repository {
236236
«IF tree || hasSortableFields»
237237
public function __construct(
238238
EntityManagerInterface $manager,
239-
protected readonly ?CollectionFilterHelper $collectionFilterHelper,
239+
protected «/*readonly */»?CollectionFilterHelper $collectionFilterHelper,
240240
«IF hasTranslatableFields»
241241
FeatureActivationHelper $featureActivationHelper,
242242
«ENDIF»

bundles/org.zikula.modulestudio.generator/src/org/zikula/modulestudio/generator/cartridges/symfony/view/Plugins.xtend

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,9 @@ import de.guite.modulestudio.metamodel.Application
44
import org.zikula.modulestudio.generator.application.IMostFileSystemAccess
55
import org.zikula.modulestudio.generator.application.ImportList
66
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.FormatGeoData
7-
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.GetFileSize
87
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.GetFormattedEntityTitle
98
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.GetListEntry
109
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.GetLogDescription
11-
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.GetRelativePath
12-
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.ObjectState
1310
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.TreeData
1411
import org.zikula.modulestudio.generator.cartridges.symfony.view.plugin.TreeSelection
1512
import org.zikula.modulestudio.generator.extensions.FormattingExtensions
@@ -42,8 +39,7 @@ class Plugins {
4239
imports.addAll(#[
4340
'Symfony\\Contracts\\Translation\\TranslatorInterface',
4441
appNamespace + '\\Entity\\EntityInterface',
45-
appNamespace + '\\Helper\\EntityDisplayHelper',
46-
appNamespace + '\\Helper\\WorkflowHelper'
42+
appNamespace + '\\Helper\\EntityDisplayHelper'
4743
])
4844
if (hasLoggable) {
4945
imports.addAll(#[
@@ -65,9 +61,6 @@ class Plugins {
6561
if (hasListFields) {
6662
imports.add(appNamespace + '\\Helper\\ListEntriesHelper')
6763
}
68-
if (hasUploads) {
69-
imports.add('Symfony\\Component\\DependencyInjection\\Attribute\\Autowire')
70-
}
7164
imports
7265
}
7366

@@ -87,20 +80,21 @@ class Plugins {
8780
8881
def private twigExtensionBody(Application it) '''
8982
public function __construct(
90-
protected readonly TranslatorInterface $translator«IF hasTrees»,
91-
protected readonly RouterInterface $router«ENDIF»,
83+
protected readonly TranslatorInterface $translator,
9284
«IF hasTrees»
85+
protected readonly MenuBuilder $menuBuilder,
86+
protected readonly RouterInterface $router,
9387
«FOR entity : getTreeEntities.sortBy[name]»
9488
protected readonly «entity.name.formatForCodeCapital»RepositoryInterface $«entity.name.formatForCode»Repository,
9589
«ENDFOR»
9690
«ENDIF»
9791
protected readonly EntityDisplayHelper $entityDisplayHelper,
98-
protected readonly WorkflowHelper $workflowHelper«IF hasListFields»,
99-
protected readonly ListEntriesHelper $listHelper«ENDIF»«IF hasLoggable»,
100-
protected readonly LoggableHelper $loggableHelper«ENDIF»«IF hasTrees»,
101-
protected readonly MenuBuilder $menuBuilder«ENDIF»«IF hasUploads»,
102-
#[Autowire(param: 'kernel.project_dir')]
103-
protected readonly string $projectDir«ENDIF»
92+
«IF hasListFields»
93+
protected readonly ListEntriesHelper $listHelper,
94+
«ENDIF»
95+
«IF hasLoggable»
96+
protected readonly LoggableHelper $loggableHelper,
97+
«ENDIF»
10498
) {
10599
}
106100

@@ -131,11 +125,6 @@ class Plugins {
131125
132126
def private extensionMethods(Application it) {
133127
val result = newArrayList
134-
result += new ObjectState().generate(it)
135-
if (hasUploads) {
136-
result += new GetFileSize().generate(it)
137-
result += new GetRelativePath().generate(it)
138-
}
139128
if (hasListFields) {
140129
result += new GetListEntry().generate(it)
141130
}
@@ -146,9 +135,6 @@ class Plugins {
146135
result += new TreeData().generate(it)
147136
result += new TreeSelection().generate(it)
148137
}
149-
/*if (!getAllEntityFields.filter(StringField).filter[StringRole.DATE_INTERVAL === role].empty) {
150-
result += new GetFormattedDateInterval().generate(it)
151-
}*/
152138
result += new GetFormattedEntityTitle().generate(it)
153139
if (hasLoggable) {
154140
result += new GetLogDescription().generate(it)

0 commit comments

Comments
 (0)