Skip to content

Commit 5608054

Browse files
committed
let moderation links point to filtered EAB views
1 parent 87a34ab commit 5608054

File tree

4 files changed

+18
-32
lines changed

4 files changed

+18
-32
lines changed

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,6 @@ class ControllerLayer {
209209
if (hasDetailAction || hasDeleteAction) {
210210
imports.add('Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException')
211211
}
212-
if (hasDeleteAction) {
213-
imports.add('Zikula\\FormExtensionBundle\\Form\\Type\\DeletionType')
214-
}
215212
if (hasEditAction && app.needsInlineEditing) {
216213
imports.add('Zikula\\CoreBundle\\Response\\PlainResponse')
217214
}

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

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package org.zikula.modulestudio.generator.cartridges.symfony.controller
33
import de.guite.modulestudio.metamodel.Application
44
import org.zikula.modulestudio.generator.application.IMostFileSystemAccess
55
import org.zikula.modulestudio.generator.application.ImportList
6-
import org.zikula.modulestudio.generator.cartridges.symfony.controller.subscriber.FormTypeChoicesSubscriber
76
import org.zikula.modulestudio.generator.cartridges.symfony.controller.subscriber.KernelSubscriber
87
import org.zikula.modulestudio.generator.cartridges.symfony.controller.subscriber.LoggableSubscriber
98
import org.zikula.modulestudio.generator.cartridges.symfony.controller.subscriber.MailerSubscriber
@@ -53,7 +52,6 @@ class EventSubscribers {
5352
}
5453

5554
def private generateSubscriberClasses(Application it) {
56-
subscriberFile('FormTypeChoices', formTypeChoicesFile)
5755
subscriberFile('Kernel', subscribersKernelFile)
5856
subscriberFile('Mailer', subscribersMailerFile)
5957
subscriberFile('Theme', subscribersThemeFile)
@@ -74,29 +72,6 @@ class EventSubscribers {
7472
fsa.generateFile(filePath, content)
7573
}
7674

77-
def private formTypeChoicesFile(Application it) '''
78-
namespace «appNamespace»\EventSubscriber«IF isBase»\Base«ENDIF»;
79-
80-
«IF !isBase»
81-
use «appNamespace»\EventSubscriber\Base\AbstractFormTypeChoicesSubscriber;
82-
«ELSE»
83-
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
84-
use Zikula\FormExtensionBundle\Event\FormTypeChoiceEvent;
85-
«ENDIF»
86-
87-
/**
88-
* Event handler «IF isBase»base«ELSE»implementation«ENDIF» class for injecting custom dynamic form types.
89-
*/
90-
«IF isBase»abstract «ENDIF»class «IF isBase»Abstract«ENDIF»FormTypeChoicesSubscriber«IF !isBase» extends AbstractFormTypeChoicesSubscriber«ELSE» implements EventSubscriberInterface«ENDIF»
91-
{
92-
«IF isBase»
93-
«new FormTypeChoicesSubscriber().generate(it
94-
«ELSE»
95-
// feel free to enhance the parent methods
96-
«ENDIF»
97-
}
98-
'''
99-
10075
def private subscribersKernelFile(Application it) '''
10176
namespace «appNamespace»\EventSubscriber«IF isBase»\Base«ENDIF»;
10277

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class ConfigureFields implements ControllerMethodInterface {
9494
// TODO refactor following imports
9595
val importsUNUSED = newArrayList
9696
if (!formFields.filter[!mandatory && !nullable].empty) {
97-
importsUNUSED.add('Zikula\\FormExtensionBundle\\Form\\DataTransformer\\NullToEmptyTransformer')
97+
importsUNUSED.add('Zikula\\ThemeBundle\\Form\\DataTransformer\\NullToEmptyTransformer')
9898
}
9999
if (hasTranslatableFields) {
100100
importsUNUSED.add(application.appNamespace + '\\Form\\Type\\Field\\TranslationType')

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

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ class ExtensionMenu {
3838
}
3939
if (needsApproval) {
4040
imports.add(appNamespace + '\\Helper\\WorkflowHelper')
41+
imports.add('EasyCorp\\Bundle\\EasyAdminBundle\\Form\\Type\\ComparisonType')
4142
}
4243
imports
4344
}
@@ -86,7 +87,7 @@ class ExtensionMenu {
8687
$routeParameters = [];
8788
}
8889
«ENDIF»
89-
yield '«entity.name.formatForCode»' => MenuItem::linktoRoute(t('My «entity.nameMultiple.formatForDisplay»'), 'fas fa-list-alt', '«appName.formatForDB»_' . mb_strtolower($objectType) . '_index', $routeParameters);
90+
yield 'My «entity.nameMultiple.formatForDisplay»' => MenuItem::linktoRoute(t('My «entity.nameMultiple.formatForDisplay»'), 'fas fa-list-alt', '«appName.formatForDB»_' . mb_strtolower($objectType) . '_index', $routeParameters);
9091
}
9192
}
9293

@@ -118,8 +119,21 @@ class ExtensionMenu {
118119
if ($isAdmin) {
119120
$moderationEntries = $this->workflowHelper->collectAmountOfModerationItems();
120121
foreach ($moderationEntries as $entry) {
121-
yield $entry['objectType'] . $entry['state'] => MenuItem::linktoRoute($entry['title'], null, '«appName.formatForDB»_' . mb_strtolower($entry['objectType']) . '_index', ['workflowState' => $entry['state']])
122-
->setBadge($entry['amount'], 'primary');
122+
$objectType = $entry['objectType'];
123+
if ($this->permissionHelper->hasComponentPermission($objectType/*, $permLevel*/)) {
124+
$entityClass = match ($objectType) {
125+
«FOR entity : getEntitiesForWorkflow(true
126+
'«entity.name.formatForCode»' => «entity.name.formatForCodeCapital»::class,
127+
«ENDFOR»
128+
default => throw new \RuntimeException('Invalid object type.')
129+
};
130+
yield $objectType . ucfirst($entry['state']) =>
131+
MenuItem::linkToCrud($entry['title'], 'fa fa-user-magnifying-class', $entityClass)
132+
->setQueryParameter('filters[workflowState][comparison]', ComparisonType::EQ)
133+
->setQueryParameter('filters[workflowState][value]', $entry['state'])
134+
->setBadge($entry['amount'], 'primary')
135+
;
136+
}
123137
}
124138
}
125139
«ENDIF»

0 commit comments

Comments
 (0)