diff --git a/components/ILIAS/ResourceStorage/classes/Setup/DB/UpdateStepsV12.php b/components/ILIAS/ResourceStorage/classes/Setup/DB/UpdateStepsV12.php new file mode 100644 index 000000000000..d2b063c57e8e --- /dev/null +++ b/components/ILIAS/ResourceStorage/classes/Setup/DB/UpdateStepsV12.php @@ -0,0 +1,40 @@ +db = $db; + } + + public function step_1(): void + { + $this->db->modifyTableColumn('il_resource_flavour', 'variant', [ + 'notnull' => false, + 'length' => 638, + 'type' => \ilDBConstants::T_TEXT, + ]); + } +} diff --git a/components/ILIAS/ResourceStorage/classes/Setup/class.ilResourceStorageSetupAgent.php b/components/ILIAS/ResourceStorage/classes/Setup/class.ilResourceStorageSetupAgent.php index b29e61b845b1..87dd4233da11 100755 --- a/components/ILIAS/ResourceStorage/classes/Setup/class.ilResourceStorageSetupAgent.php +++ b/components/ILIAS/ResourceStorage/classes/Setup/class.ilResourceStorageSetupAgent.php @@ -25,6 +25,8 @@ use ILIAS\Setup\Config; use ILIAS\Setup\Objective; use ILIAS\Setup\ObjectiveCollection; +use ILIAS\ResourceStorage\Setup\DB\UpdateStepsV12; +use ILIAS\Setup\Objective\ObjectiveWithPreconditions; /** * Class ilResourceStorageSetupAgent @@ -65,9 +67,10 @@ public function getUpdateObjective(?Config $config = null): Objective new ilDatabaseUpdateStepsExecutedObjective( new ilResourceStorageDB80() ), - new ilDatabaseUpdateStepsExecutedObjective( - new ilResourceStorageDB90() - ) + new ObjectiveWithPreconditions( + new ilDatabaseUpdateStepsExecutedObjective(new UpdateStepsV12()), + new ilDatabaseUpdateStepsExecutedObjective(new ilResourceStorageDB90()), + ), ); } diff --git a/components/ILIAS/ResourceStorage/src/Flavour/Definition/FlavourDefinition.php b/components/ILIAS/ResourceStorage/src/Flavour/Definition/FlavourDefinition.php index e26ea0311a5b..335863676eda 100755 --- a/components/ILIAS/ResourceStorage/src/Flavour/Definition/FlavourDefinition.php +++ b/components/ILIAS/ResourceStorage/src/Flavour/Definition/FlavourDefinition.php @@ -51,7 +51,7 @@ public function getInternalName(): string; * such variants must be distinguishable. For example, a variant name may contain "{height}x{width}" * if these are configurable values. * - * The Variant-Name MUST be less than 768 characters long! + * The Variant-Name MUST be less than 638 characters long! */ public function getVariantName(): ?string; diff --git a/components/ILIAS/ResourceStorage/src/Flavour/FlavourBuilder.php b/components/ILIAS/ResourceStorage/src/Flavour/FlavourBuilder.php index ce6f558a7ca8..f9df49ba95ea 100755 --- a/components/ILIAS/ResourceStorage/src/Flavour/FlavourBuilder.php +++ b/components/ILIAS/ResourceStorage/src/Flavour/FlavourBuilder.php @@ -44,7 +44,7 @@ */ class FlavourBuilder { - public const VARIANT_NAME_MAX_LENGTH = 768; + public const VARIANT_NAME_MAX_LENGTH = 638; private array $current_revision_cache = []; private array $resources_cache = []; diff --git a/components/ILIAS/ResourceStorage/tests/Flavours/FlavourTest.php b/components/ILIAS/ResourceStorage/tests/Flavours/FlavourTest.php index b95a422e676b..f8a7c0859dea 100755 --- a/components/ILIAS/ResourceStorage/tests/Flavours/FlavourTest.php +++ b/components/ILIAS/ResourceStorage/tests/Flavours/FlavourTest.php @@ -85,7 +85,7 @@ public function testDefinitionVariantNameLengths(): void $flavour_definition = $this->createMock(FlavourDefinition::class); $flavour_definition->expects($this->exactly(2)) ->method('getVariantName') - ->willReturn(str_repeat('a', 768)); + ->willReturn(str_repeat('a', 638)); $flavour_builder->has( new ResourceIdentification('1'),