Skip to content

Commit 1a91a2d

Browse files
committed
chore: use proxies instead of manager
1 parent b93da9f commit 1a91a2d

File tree

9 files changed

+31
-193
lines changed

9 files changed

+31
-193
lines changed

helpers/form/class.FormContainer.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
use oat\oatbox\service\ServiceManager;
2828
use oat\oatbox\validator\ValidatorInterface;
29-
use oat\tao\model\form\Modifier\FormModifierManager;
29+
use oat\tao\model\form\Modifier\AbstractFormModifier;
3030
use oat\tao\model\security\xsrf\TokenService;
3131
use Psr\Container\ContainerInterface;
3232
use tao_helpers_form_FormFactory as FormFactory;
@@ -121,8 +121,12 @@ public function __construct(array $data = [], array $options = [])
121121
// initialize the elements of the form
122122
$this->initElements();
123123

124-
if (!empty($options[self::FORM_MODIFIERS])) {
125-
$this->getFormModifierManager()->modify($this->form, $options[self::FORM_MODIFIERS]);
124+
foreach ($options[self::FORM_MODIFIERS] ?? [] as $modifierClass) {
125+
$modifier = $this->getContainer()->get($modifierClass);
126+
127+
if ($modifier instanceof AbstractFormModifier) {
128+
$modifier->modify($this->form, $options);
129+
}
126130
}
127131

128132
if ($this->form !== null) {
@@ -330,11 +334,6 @@ private function getSanitizerValidationFeeder(): SanitizerValidationFeederInterf
330334
return $this->sanitizerValidationFeeder;
331335
}
332336

333-
private function getFormModifierManager(): FormModifierManager
334-
{
335-
return $this->getContainer()->get(FormModifierManager::class);
336-
}
337-
338337
private function withServiceManager(array &$options): void
339338
{
340339
if (

manifest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
use oat\tao\model\featureFlag\FeatureFlagServiceProvider;
4444
use oat\tao\model\featureVisibility\FeatureVisibilityServiceProvider;
4545
use oat\tao\model\form\DataProvider\FormDataProviderServiceProvider;
46-
use oat\tao\model\form\Modifier\FormModifierServiceProvider;
4746
use oat\tao\model\import\ServiceProvider\ImportServiceProvider;
4847
use oat\tao\model\LanguageServiceProvider;
4948
use oat\tao\model\listener\PropertyServiceProvider;
@@ -422,7 +421,6 @@
422421
FormDataProviderServiceProvider::class,
423422
PropertyServiceProvider::class,
424423
DynamicConfigServiceProvider::class,
425-
FormModifierServiceProvider::class,
426424
TranslationServiceProvider::class
427425
],
428426
'middlewares' => [

models/classes/Translation/Form/Modifier/TranslationInstanceFormModifier.php renamed to models/classes/Translation/Form/Modifier/TranslationFormModifier.php

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,48 +22,31 @@
2222

2323
namespace oat\tao\model\Translation\Form\Modifier;
2424

25-
use oat\generis\model\data\Ontology;
2625
use oat\tao\model\featureFlag\FeatureFlagCheckerInterface;
2726
use oat\tao\model\form\Modifier\AbstractFormModifier;
2827
use oat\tao\model\TaoOntology;
29-
use tao_helpers_form_Form as Form;
28+
use tao_helpers_form_Form;
3029
use tao_helpers_Uri;
3130

32-
class TranslationInstanceFormModifier extends AbstractFormModifier
31+
class TranslationFormModifier extends AbstractFormModifier
3332
{
34-
public const ID = 'tao.form_modifier.translation_instance';
35-
3633
private FeatureFlagCheckerInterface $featureFlagChecker;
3734

38-
public function __construct(Ontology $ontology, FeatureFlagCheckerInterface $featureFlagChecker)
35+
public function __construct(FeatureFlagCheckerInterface $featureFlagChecker)
3936
{
40-
parent::__construct($ontology);
41-
4237
$this->featureFlagChecker = $featureFlagChecker;
4338
}
4439

45-
public function supports(Form $form, array $options = []): bool
46-
{
47-
$instance = $this->getInstance($form, $options);
48-
49-
if ($instance === null) {
50-
return false;
51-
}
52-
53-
return $instance->isInstanceOf($this->ontology->getClass(TaoOntology::CLASS_URI_ITEM))
54-
|| $instance->isInstanceOf($this->ontology->getClass(TaoOntology::CLASS_URI_TEST));
55-
}
56-
57-
public function modify(Form $form, array $options = []): void
40+
public function modify(tao_helpers_form_Form $form, array $options = []): void
5841
{
5942
foreach ($this->getTranslationElementsToRemove($form) as $elementUri) {
6043
$form->removeElement(tao_helpers_Uri::encode($elementUri));
6144
}
6245
}
6346

64-
private function getTranslationElementsToRemove(Form $form): array
47+
private function getTranslationElementsToRemove(tao_helpers_form_Form $form): array
6548
{
66-
if (!$this->featureFlagChecker->isEnabled(FeatureFlagCheckerInterface::FEATURE_TRANSLATION_ENABLED)) {
49+
if (!$this->featureFlagChecker->isEnabled('FEATURE_TRANSLATION_ENABLED')) {
6750
return [
6851
TaoOntology::PROPERTY_UNIQUE_IDENTIFIER,
6952
TaoOntology::PROPERTY_LANGUAGE,
@@ -74,6 +57,11 @@ private function getTranslationElementsToRemove(Form $form): array
7457
}
7558

7659
$elementsToRemove = [];
60+
61+
if (!$this->featureFlagChecker->isEnabled('FEATURE_TRANSLATION_DEVELOPER_MODE')) {
62+
$elementsToRemove[] = TaoOntology::PROPERTY_TRANSLATION_TYPE;
63+
}
64+
7765
$translationTypeValue = $form->getValue(tao_helpers_Uri::encode(TaoOntology::PROPERTY_TRANSLATION_TYPE));
7866
$isTranslationTypeValueEmpty = empty($translationTypeValue);
7967

models/classes/Translation/ServiceProvider/TranslationServiceProvider.php

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,9 @@
2727
use oat\generis\model\kernel\persistence\smoothsql\search\ComplexSearchService;
2828
use oat\oatbox\log\LoggerService;
2929
use oat\tao\model\featureFlag\FeatureFlagChecker;
30-
use oat\tao\model\form\Modifier\FormModifierManager;
3130
use oat\tao\model\Translation\Factory\ResourceTranslatableFactory;
3231
use oat\tao\model\Translation\Factory\ResourceTranslationFactory;
33-
use oat\tao\model\Translation\Form\Modifier\TranslationInstanceFormModifier;
32+
use oat\tao\model\Translation\Form\Modifier\TranslationFormModifier;
3433
use oat\tao\model\Translation\Repository\ResourceTranslatableRepository;
3534
use oat\tao\model\Translation\Repository\ResourceTranslationRepository;
3635
use oat\tao\model\Translation\Service\ResourceMetadataPopulateService;
@@ -106,20 +105,9 @@ public function __invoke(ContainerConfigurator $configurator): void
106105
->public();
107106

108107
$services
109-
->set(TranslationInstanceFormModifier::class, TranslationInstanceFormModifier::class)
108+
->set(TranslationFormModifier::class, TranslationFormModifier::class)
110109
->args([
111-
service(Ontology::SERVICE_ID),
112110
service(FeatureFlagChecker::class),
113111
]);
114-
115-
$formModifierManager = $services->get(FormModifierManager::class);
116-
$formModifierManager
117-
->call(
118-
'add',
119-
[
120-
service(TranslationInstanceFormModifier::class),
121-
TranslationInstanceFormModifier::ID,
122-
]
123-
);
124112
}
125113
}

models/classes/featureFlag/FeatureFlagCheckerInterface.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ interface FeatureFlagCheckerInterface
3131
public const FEATURE_FLAG_PASSWORD_CHANGE_DISABLED = 'FEATURE_FLAG_PASSWORD_CHANGE_DISABLED';
3232
public const FEATURE_FLAG_TAO_AS_A_TOOL = 'FEATURE_FLAG_TAO_AS_A_TOOL';
3333
public const FEATURE_FLAG_SOLAR_DESIGN_ENABLED = 'FEATURE_FLAG_SOLAR_DESIGN_ENABLED';
34-
public const FEATURE_TRANSLATION_ENABLED = 'FEATURE_TRANSLATION_ENABLED';
3534

3635
public function isEnabled(string $feature): bool;
3736
}

models/classes/form/Modifier/AbstractFormModifier.php

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -22,27 +22,24 @@
2222

2323
namespace oat\tao\model\form\Modifier;
2424

25-
use core_kernel_classes_Resource;
26-
use oat\generis\model\data\Ontology;
2725
use tao_helpers_form_Form;
2826

29-
abstract class AbstractFormModifier implements FormModifierInterface
27+
abstract class AbstractFormModifier
3028
{
31-
protected Ontology $ontology;
29+
/** @var AbstractFormModifier[] */
30+
private array $modifiers = [];
3231

33-
public function __construct(Ontology $ontology)
32+
public function addModifier(AbstractFormModifier $modifier): void
3433
{
35-
$this->ontology = $ontology;
34+
if (!in_array($modifier, $this->modifiers, true)) {
35+
$this->modifiers[] = $modifier;
36+
}
3637
}
3738

38-
protected function getInstance(tao_helpers_form_Form $form, array $options = []): ?core_kernel_classes_Resource
39+
public function modify(tao_helpers_form_Form $form, array $options = []): void
3940
{
40-
if (($options[self::OPTION_INSTANCE] ?? null) instanceof core_kernel_classes_Resource) {
41-
return $options[self::OPTION_INSTANCE];
41+
foreach ($this->modifiers as $modifier) {
42+
$modifier->modify($form, $options);
4243
}
43-
44-
$instanceUri = $form->getValue(self::FORM_INSTANCE_URI);
45-
46-
return $instanceUri ? $this->ontology->getResource($instanceUri) : null;
4744
}
48-
}
45+
}

models/classes/form/Modifier/FormModifierInterface.php

Lines changed: 0 additions & 35 deletions
This file was deleted.

models/classes/form/Modifier/FormModifierManager.php

Lines changed: 0 additions & 58 deletions
This file was deleted.

models/classes/form/Modifier/FormModifierServiceProvider.php

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)