diff --git a/.phpcq.lock b/.phpcq.lock index 6ad57a0a..970ba55e 100644 --- a/.phpcq.lock +++ b/.phpcq.lock @@ -1 +1 @@ -{"plugins":{"phpunit":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpunit/phpunit-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0"},"tool":{"phpunit":"^6.0 || ^7.0 || ^8.0 || ^9.0"}},"checksum":{"type":"sha-512","value":"c73f15658e3ba62665f09492ec91c3a6a715760bfaa88473a987538439fff442540148e086e46a6aa18ce55a3ea2fbf76caaa581384cb84a38859fcc609ae7e4"},"tools":{"phpunit":{"version":"9.6.21","url":"https://phar.phpunit.de/phpunit-9.6.21.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-xml":"*","ext-xmlwriter":"*"}},"checksum":{"type":"sha-256","value":"32bd24e7f93be631898ae61a5038f23da9ebd0e40a1124e65d9ee633b33f1815"},"signature":"https://phar.phpunit.de/phpunit-9.6.21.phar.asc"}},"composerLock":null},"psalm":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/psalm/psalm-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0","ext-dom":"*"},"tool":{"psalm":"^3.0 || ^4.0 || ^5.0"}},"checksum":{"type":"sha-512","value":"4a550c9226d7bca582d7c10bd87cce01190c96398936b1613421640c83df62ed1c6e0d44c1b39635414ea8cf4a892a6458d27590793238add24e7cb5547e6ffd"},"tools":{"psalm":{"version":"5.26.1","url":"https://github.com/vimeo/psalm/releases/download/5.26.1/psalm.phar","requirements":{"php":{"php":"^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0","ext-SimpleXML":"*","ext-ctype":"*","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-tokenizer":"*"}},"checksum":null,"signature":"https://github.com/vimeo/psalm/releases/download/5.26.1/psalm.phar.asc"}},"composerLock":null},"composer-require-checker":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-require-checker/composer-require-checker-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0"},"tool":{"composer-require-checker":"^3.8 || ^4.0"}},"checksum":{"type":"sha-512","value":"d5415bddfe024c5749d894034583882aee4e5c3e1087815d9fdd81cb5e71630f631a0e35de0ff84b97fbbf738c16ece5f83bd8c00695913eb846aa6f04577dc2"},"tools":{"composer-require-checker":{"version":"4.14.0","url":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.14.0/composer-require-checker.phar","requirements":{"php":{"php":"~8.2.0 || ~8.3.0 || ~8.4.0","ext-phar":"*"}},"checksum":null,"signature":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.14.0/composer-require-checker.phar.asc"}},"composerLock":null},"phpmd":{"api-version":"1.0.0","version":"1.0.2.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpmd/phpmd-1.0.2.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpmd":"^2.6.1"}},"checksum":{"type":"sha-512","value":"f22280a6dec8dbdd2ec1d83b294f23237fe32c34f4a298e52038e0a7a0074d541635b2b488b1a6098a42d8418a6cd8eb804406ea82b91e362be2b5d11a0915b0"},"tools":{"phpmd":{"version":"2.15.0","url":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar","requirements":{"php":{"php":">=5.3.9","ext-xml":"*"}},"checksum":null,"signature":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar.asc"}},"composerLock":null},"phpcpd":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcpd/phpcpd-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcpd":"^6.0"}},"checksum":{"type":"sha-512","value":"1189ce0bf3fade4cb4241f1d96f915ef8fc7651f4450dc79fdf464ee3d6be3009316f0d423ce2d4af9d76ad50807b7fdf4d77bfa6d9ee2c91d6eda32ea214433"},"tools":{"phpcpd":{"version":"6.0.3","url":"https://phar.phpunit.de/phpcpd-6.0.3.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*"}},"checksum":{"type":"sha-256","value":"2cbaea7cfda1bb4299d863eb075e977c3f49055dd16d88529fae5150d48a84cb"},"signature":"https://phar.phpunit.de/phpcpd-6.0.3.phar.asc"}},"composerLock":null},"phploc":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phploc/phploc-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*","ext-json":"*"},"tool":{"phploc":"^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"}},"checksum":{"type":"sha-512","value":"f67b02d494796adf553cb3dd13ec06c1cb8e53c799954061749424251379541637538199afb3afa3c7a01cabd1cb6f1c53eb621f015dff9644c6c7cbf10c56d1"},"tools":{"phploc":{"version":"7.0.2","url":"https://phar.phpunit.de/phploc-7.0.2.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*"}},"checksum":{"type":"sha-256","value":"3d59778ec86faf25fd00e3a329b2f9ad4a3c751ca91601ea7dab70f887b0bf46"},"signature":"https://phar.phpunit.de/phploc-7.0.2.phar.asc"}},"composerLock":null},"phpcs":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcs/phpcs-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcs":"^3.0 || ^2.0","phpcbf":"^3.0 || ^2.0"}},"checksum":{"type":"sha-512","value":"b6ed00306e76068a6af5e3b1dec837724f9e1900ef1049ce88e7ce195b0583524ca33a73613fba13244307a7ca853b6ddaa14ded69f651c3f184ac130bd1aaad"},"tools":{"phpcs":{"version":"3.11.1","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.1/phpcs.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.1/phpcs.phar.asc"},"phpcbf":{"version":"3.11.1","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.1/phpcbf.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.1/phpcbf.phar.asc"}},"composerLock":null},"composer-normalize":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-normalize/composer-normalize-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-json":"*"},"tool":{"composer-normalize":"^2.1"}},"checksum":{"type":"sha-512","value":"d9abda440b85d501c58abf9c81bf76f417594b397129215ffa8b777e9bb5e5eda37d7661d661db3c8d11c24f20345bc6fbe56f013b3b9435d459d2b94f086e0f"},"tools":{"composer-normalize":{"version":"2.44.0","url":"https://github.com/ergebnis/composer-normalize/releases/download/2.44.0/composer-normalize.phar","requirements":{"php":{"php":"~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0","ext-json":"*"}},"checksum":null,"signature":"https://github.com/ergebnis/composer-normalize/releases/download/2.44.0/composer-normalize.phar.asc"}},"composerLock":null}},"tools":[]} \ No newline at end of file +{"plugins":{"phpunit":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpunit/phpunit-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0"},"tool":{"phpunit":"^6.0 || ^7.0 || ^8.0 || ^9.0"}},"checksum":{"type":"sha-512","value":"c73f15658e3ba62665f09492ec91c3a6a715760bfaa88473a987538439fff442540148e086e46a6aa18ce55a3ea2fbf76caaa581384cb84a38859fcc609ae7e4"},"tools":{"phpunit":{"version":"9.6.22","url":"https://phar.phpunit.de/phpunit-9.6.22.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-xml":"*","ext-xmlwriter":"*"}},"checksum":{"type":"sha-256","value":"9618d52015c9b06b4979a8e481ca9567be6be20e711e98926c61378a400e1f2e"},"signature":"https://phar.phpunit.de/phpunit-9.6.22.phar.asc"}},"composerLock":null},"psalm":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/psalm/psalm-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0","ext-dom":"*"},"tool":{"psalm":"^3.0 || ^4.0 || ^5.0"}},"checksum":{"type":"sha-512","value":"4a550c9226d7bca582d7c10bd87cce01190c96398936b1613421640c83df62ed1c6e0d44c1b39635414ea8cf4a892a6458d27590793238add24e7cb5547e6ffd"},"tools":{"psalm":{"version":"5.26.1","url":"https://github.com/vimeo/psalm/releases/download/5.26.1/psalm.phar","requirements":{"php":{"php":"^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0","ext-SimpleXML":"*","ext-ctype":"*","ext-dom":"*","ext-json":"*","ext-libxml":"*","ext-mbstring":"*","ext-tokenizer":"*"}},"checksum":null,"signature":"https://github.com/vimeo/psalm/releases/download/5.26.1/psalm.phar.asc"}},"composerLock":null},"composer-require-checker":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-require-checker/composer-require-checker-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.4 || ^8.0"},"tool":{"composer-require-checker":"^3.8 || ^4.0"}},"checksum":{"type":"sha-512","value":"d5415bddfe024c5749d894034583882aee4e5c3e1087815d9fdd81cb5e71630f631a0e35de0ff84b97fbbf738c16ece5f83bd8c00695913eb846aa6f04577dc2"},"tools":{"composer-require-checker":{"version":"4.14.0","url":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.14.0/composer-require-checker.phar","requirements":{"php":{"php":"~8.2.0 || ~8.3.0 || ~8.4.0","ext-phar":"*"}},"checksum":null,"signature":"https://github.com/maglnet/ComposerRequireChecker/releases/download/4.14.0/composer-require-checker.phar.asc"}},"composerLock":null},"phpmd":{"api-version":"1.0.0","version":"1.0.2.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpmd/phpmd-1.0.2.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpmd":"^2.6.1"}},"checksum":{"type":"sha-512","value":"f22280a6dec8dbdd2ec1d83b294f23237fe32c34f4a298e52038e0a7a0074d541635b2b488b1a6098a42d8418a6cd8eb804406ea82b91e362be2b5d11a0915b0"},"tools":{"phpmd":{"version":"2.15.0","url":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar","requirements":{"php":{"php":">=5.3.9","ext-xml":"*"}},"checksum":null,"signature":"https://github.com/phpmd/phpmd/releases/download/2.15.0/phpmd.phar.asc"}},"composerLock":null},"phpcpd":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcpd/phpcpd-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcpd":"^6.0"}},"checksum":{"type":"sha-512","value":"1189ce0bf3fade4cb4241f1d96f915ef8fc7651f4450dc79fdf464ee3d6be3009316f0d423ce2d4af9d76ad50807b7fdf4d77bfa6d9ee2c91d6eda32ea214433"},"tools":{"phpcpd":{"version":"6.0.3","url":"https://phar.phpunit.de/phpcpd-6.0.3.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*"}},"checksum":{"type":"sha-256","value":"2cbaea7cfda1bb4299d863eb075e977c3f49055dd16d88529fae5150d48a84cb"},"signature":"https://phar.phpunit.de/phpcpd-6.0.3.phar.asc"}},"composerLock":null},"phploc":{"api-version":"1.0.0","version":"1.0.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phploc/phploc-1.0.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*","ext-json":"*"},"tool":{"phploc":"^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0"}},"checksum":{"type":"sha-512","value":"f67b02d494796adf553cb3dd13ec06c1cb8e53c799954061749424251379541637538199afb3afa3c7a01cabd1cb6f1c53eb621f015dff9644c6c7cbf10c56d1"},"tools":{"phploc":{"version":"7.0.2","url":"https://phar.phpunit.de/phploc-7.0.2.phar","requirements":{"php":{"php":">=7.3","ext-dom":"*","ext-json":"*"}},"checksum":{"type":"sha-256","value":"3d59778ec86faf25fd00e3a329b2f9ad4a3c751ca91601ea7dab70f887b0bf46"},"signature":"https://phar.phpunit.de/phploc-7.0.2.phar.asc"}},"composerLock":null},"phpcs":{"api-version":"1.0.0","version":"1.2.0.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/phpcs/phpcs-1.2.0.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-dom":"*"},"tool":{"phpcs":"^3.0 || ^2.0","phpcbf":"^3.0 || ^2.0"}},"checksum":{"type":"sha-512","value":"b6ed00306e76068a6af5e3b1dec837724f9e1900ef1049ce88e7ce195b0583524ca33a73613fba13244307a7ca853b6ddaa14ded69f651c3f184ac130bd1aaad"},"tools":{"phpcs":{"version":"3.11.2","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.2/phpcs.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.2/phpcs.phar.asc"},"phpcbf":{"version":"3.11.2","url":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.2/phpcbf.phar","requirements":{"php":{"php":">=5.4.0","ext-simplexml":"*","ext-tokenizer":"*","ext-xmlwriter":"*"}},"checksum":null,"signature":"https://github.com/PHPCSStandards/PHP_CodeSniffer/releases/download/3.11.2/phpcbf.phar.asc"}},"composerLock":null},"composer-normalize":{"api-version":"1.0.0","version":"1.1.1.0","type":"php-file","url":"https://phpcq.github.io/repository/plugin/composer-normalize/composer-normalize-1.1.1.0.php","signature":null,"requirements":{"php":{"php":"^7.3 || ^8.0","ext-json":"*"},"tool":{"composer-normalize":"^2.1"}},"checksum":{"type":"sha-512","value":"d9abda440b85d501c58abf9c81bf76f417594b397129215ffa8b777e9bb5e5eda37d7661d661db3c8d11c24f20345bc6fbe56f013b3b9435d459d2b94f086e0f"},"tools":{"composer-normalize":{"version":"2.45.0","url":"https://github.com/ergebnis/composer-normalize/releases/download/2.45.0/composer-normalize.phar","requirements":{"php":{"php":"~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0","ext-json":"*"}},"checksum":null,"signature":"https://github.com/ergebnis/composer-normalize/releases/download/2.45.0/composer-normalize.phar.asc"}},"composerLock":null}},"tools":[]} \ No newline at end of file diff --git a/src/BaseConfigRegistry.php b/src/BaseConfigRegistry.php index 42e742f5..499c327a 100644 --- a/src/BaseConfigRegistry.php +++ b/src/BaseConfigRegistry.php @@ -89,20 +89,27 @@ public function getEnvironment() private function addParentFilter(ModelIdInterface $idParent, ConfigInterface $config): ConfigInterface { $environment = $this->getEnvironment(); - $definition = $environment->getDataDefinition(); + assert($environment instanceof EnvironmentInterface); + + $definition = $environment->getDataDefinition(); if (null === $definition) { throw new DcGeneralRuntimeException('Data definition not set.'); } $basicDefinition = $definition->getBasicDefinition(); - $providerName = $basicDefinition->getDataProvider(); + $providerName = (string) $basicDefinition->getDataProvider(); $parentProviderName = $idParent->getDataProviderName(); $parentProvider = $environment->getDataProvider($parentProviderName); if ($basicDefinition->getParentDataProvider() !== $parentProviderName) { - throw new DcGeneralRuntimeException( - 'Unexpected parent provider ' . $parentProviderName . - ' (expected ' . ((string) $basicDefinition->getParentDataProvider()) . ')' - ); + // Could be a tree parent then. + if ($basicDefinition->getDataProvider() !== $parentProviderName) { + throw new DcGeneralRuntimeException( + 'Unexpected parent provider ' . $parentProviderName . + ' (expected ' . ((string) $basicDefinition->getParentDataProvider()) . ')' + ); + } + $parentProviderName = $providerName; + $parentProvider = $environment->getDataProvider($parentProviderName); } if ($parentProvider) { @@ -115,7 +122,7 @@ private function addParentFilter(ModelIdInterface $idParent, ConfigInterface $co $condition = $definition->getModelRelationshipDefinition()->getChildCondition( $parentProviderName, - (string) $providerName + $providerName ); if ($condition) { diff --git a/src/Contao/Dca/Builder/Legacy/ExtendedLegacyDcaDataDefinitionBuilder.php b/src/Contao/Dca/Builder/Legacy/ExtendedLegacyDcaDataDefinitionBuilder.php index e1736f64..d68e1a63 100644 --- a/src/Contao/Dca/Builder/Legacy/ExtendedLegacyDcaDataDefinitionBuilder.php +++ b/src/Contao/Dca/Builder/Legacy/ExtendedLegacyDcaDataDefinitionBuilder.php @@ -285,12 +285,11 @@ protected function parseDataProvider(ContainerInterface $container) } // First check if we are using the "new" notation used in DcGeneral 0.9. - if (!\is_array($this->getFromDca('dca_config/data_provider'))) { + $dataProvidersDca = $this->getFromDca('dca_config/data_provider'); + if (!\is_array($dataProvidersDca)) { return; } - $dataProvidersDca = $this->getFromDca('dca_config/data_provider'); - foreach ($dataProvidersDca as $dataProviderDcaName => $dataProviderDca) { $providerInformation = $this->parseSingleDataProvider( $container, @@ -326,6 +325,7 @@ protected function parseDataProvider(ContainerInterface $container) break; default: + $baseInitializationData['name'] = $providerInformation->getName(); } $providerInformation->setInitializationData( diff --git a/src/Contao/Dca/Populator/ParentDefinitionPopulator.php b/src/Contao/Dca/Populator/ParentDefinitionPopulator.php index c51866f1..af1689bd 100644 --- a/src/Contao/Dca/Populator/ParentDefinitionPopulator.php +++ b/src/Contao/Dca/Populator/ParentDefinitionPopulator.php @@ -55,6 +55,12 @@ public function populateController(EnvironmentInterface $environment) return; } + if ($parentDataProvider === $definition->getName()) { + $environment->setParentDataDefinition($definition); + + return; + } + if (null === $dispatcher = $environment->getEventDispatcher()) { throw new LogicException('No event dispatcher given'); } diff --git a/src/Contao/View/Contao2BackendView/ActionHandler/PasteHandler.php b/src/Contao/View/Contao2BackendView/ActionHandler/PasteHandler.php index 62141f14..57c5f7ce 100644 --- a/src/Contao/View/Contao2BackendView/ActionHandler/PasteHandler.php +++ b/src/Contao/View/Contao2BackendView/ActionHandler/PasteHandler.php @@ -3,7 +3,7 @@ /** * This file is part of contao-community-alliance/dc-general. * - * (c) 2013-2023 Contao Community Alliance. + * (c) 2013-2024 Contao Community Alliance. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -15,7 +15,7 @@ * @author Sven Baumann * @author David Molineus * @author Ingolf Steinhardt - * @copyright 2013-2023 Contao Community Alliance. + * @copyright 2013-2024 Contao Community Alliance. * @license https://github.com/contao-community-alliance/dc-general/blob/master/LICENSE LGPL-3.0-or-later * @filesource */ @@ -144,7 +144,7 @@ protected function process(EnvironmentInterface $environment) return null; } - ViewHelpers::redirectHome($environment); + ViewHelpers::redirectCleanHome($environment, ['source', 'after', 'into']); return null; } diff --git a/src/Contao/View/Contao2BackendView/ActionHandler/SelectHandler.php b/src/Contao/View/Contao2BackendView/ActionHandler/SelectHandler.php index 1330216e..6db5632e 100644 --- a/src/Contao/View/Contao2BackendView/ActionHandler/SelectHandler.php +++ b/src/Contao/View/Contao2BackendView/ActionHandler/SelectHandler.php @@ -390,7 +390,7 @@ private function handleCopyAllAction(EnvironmentInterface $environment, Action $ foreach ($this->getModelIds($environment, $action, $this->getSubmitAction($environment)) as $modelId) { $inputProvider->setParameter('source', $modelId->getSerialized()); - $this->callAction($environment, 'copy'); + $this->callAction($environment, 'deepcopy'); $inputProvider->unsetParameter('source'); } diff --git a/src/Contao/View/Contao2BackendView/ButtonRenderer.php b/src/Contao/View/Contao2BackendView/ButtonRenderer.php index 962486d1..61f3f8aa 100644 --- a/src/Contao/View/Contao2BackendView/ButtonRenderer.php +++ b/src/Contao/View/Contao2BackendView/ButtonRenderer.php @@ -469,8 +469,9 @@ private function calculateParameters(CommandInterface $command, string $serializ } if (($command instanceof CutCommandInterface) || ($command instanceof CopyCommandInterface)) { // Cut & copy need some special information. - $parameters = []; - $parameters['act'] = $command->getName(); + if (!\array_key_exists('act', $parameters)) { + $parameters['act'] = $command->getName(); + } $inputProvider = $this->environment->getInputProvider(); assert($inputProvider instanceof InputProviderInterface); diff --git a/src/Contao/View/Contao2BackendView/Controller/ClipboardController.php b/src/Contao/View/Contao2BackendView/Controller/ClipboardController.php index ef67612e..6ea014fd 100644 --- a/src/Contao/View/Contao2BackendView/Controller/ClipboardController.php +++ b/src/Contao/View/Contao2BackendView/Controller/ClipboardController.php @@ -186,7 +186,7 @@ private function checkPermission(ActionEvent $event) * * @return void */ - private function clearClipboard(ActionEvent $event, $redirect = true) + private function clearClipboard(ActionEvent $event, bool $redirect = true): void { $environment = $event->getEnvironment(); diff --git a/src/Contao/View/Contao2BackendView/TreeView.php b/src/Contao/View/Contao2BackendView/TreeView.php index 6e8b39bf..a2f3e584 100644 --- a/src/Contao/View/Contao2BackendView/TreeView.php +++ b/src/Contao/View/Contao2BackendView/TreeView.php @@ -208,7 +208,7 @@ private function handleNodeStateChanges() $this->toggleModel($providerName, $modelId); } - ViewHelpers::redirectHome($environment); + ViewHelpers::redirectCleanHome($environment, ['ptg', 'provider']); } } diff --git a/src/Contao/View/Contao2BackendView/ViewHelpers.php b/src/Contao/View/Contao2BackendView/ViewHelpers.php index efeaf9e0..fba7c081 100644 --- a/src/Contao/View/Contao2BackendView/ViewHelpers.php +++ b/src/Contao/View/Contao2BackendView/ViewHelpers.php @@ -259,9 +259,56 @@ public static function redirectHome(EnvironmentInterface $environment): never $request = self::getRequest(); $routeName = $request->attributes->get('_route'); if ($routeName !== 'contao_backend') { - self::determineNewStyleRedirect($routeName, $request, $environment); + self::determineNewStyleRedirect($routeName, $request, $environment, []); } + self::determineLegacyRedirect($environment, $input); + } + + /** @param list $cleanNames */ + public static function redirectCleanHome(EnvironmentInterface $environment, array $cleanNames): never + { + $input = $environment->getInputProvider(); + assert($input instanceof InputProviderInterface); + + $request = self::getRequest(); + $routeName = $request->attributes->get('_route'); + if ($routeName !== 'contao_backend') { + self::determineNewStyleRedirect($routeName, $request, $environment, $cleanNames); + } + self::determineLegacyRedirect($environment, $input); + } + /** @param list $cleanNames */ + private static function determineNewStyleRedirect( + string $routeName, + Request $request, + EnvironmentInterface $environment, + array $cleanNames + ): never { + $routeGenerator = System::getContainer()->get('router'); + assert($routeGenerator instanceof UrlGeneratorInterface); + $parameters = $request->query->all(); + foreach ($cleanNames as $key) { + unset($parameters[$key]); + } + if ($routeName === $request->attributes->get('_route')) { + foreach ($request->attributes->get('_route_params') ?? [] as $key => $value) { + if ('_' === $key[0] || \in_array($key, $cleanNames, true)) { + continue; + } + $parameters[$key] = $value; + } + } + unset($parameters['act']); + $routeBase = $routeGenerator->generate($routeName, $parameters); + + self::dispatchRedirect($environment, new RedirectEvent($routeBase)); + } + + private static function determineLegacyRedirect( + EnvironmentInterface $environment, + InputProviderInterface $input, + ): never { if ($input->hasParameter('table')) { if ($input->hasParameter('pid')) { $event = new RedirectEvent( @@ -288,28 +335,6 @@ public static function redirectHome(EnvironmentInterface $environment): never self::dispatchRedirect($environment, $event); } - private static function determineNewStyleRedirect( - string $routeName, - Request $request, - EnvironmentInterface $environment - ): never { - $routeGenerator = System::getContainer()->get('router'); - assert($routeGenerator instanceof UrlGeneratorInterface); - $parameters = $request->query->all(); - if ($routeName === $request->attributes->get('_route')) { - foreach ($request->attributes->get('_route_params') ?? [] as $key => $value) { - if ('_' === $key[0]) { - continue; - } - $parameters[$key] = $value; - } - } - unset($parameters['act']); - $routeBase = $routeGenerator->generate($routeName, $parameters); - - self::dispatchRedirect($environment, new RedirectEvent($routeBase)); - } - private static function getRequest(): Request { $requestStack = System::getContainer()->get('request_stack'); diff --git a/src/Controller/Ajax3X.php b/src/Controller/Ajax3X.php index 1925f423..54787ad5 100644 --- a/src/Controller/Ajax3X.php +++ b/src/Controller/Ajax3X.php @@ -39,6 +39,7 @@ use ContaoCommunityAlliance\DcGeneral\Data\ModelInterface; use ContaoCommunityAlliance\DcGeneral\Data\PropertyValueBag; use ContaoCommunityAlliance\DcGeneral\DataDefinition\ContainerInterface; +use ContaoCommunityAlliance\DcGeneral\EnvironmentInterface; use ContaoCommunityAlliance\DcGeneral\InputProviderInterface; use ContaoCommunityAlliance\DcGeneral\SessionStorageInterface; use Symfony\Component\EventDispatcher\EventDispatcherInterface; @@ -74,6 +75,7 @@ class Ajax3X extends Ajax protected function getWidget($fieldName, $serializedId, $propertyValue) { $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); $definition = $environment->getDataDefinition(); assert($definition instanceof ContainerInterface); @@ -98,7 +100,7 @@ protected function getWidget($fieldName, $serializedId, $propertyValue) if (('file' === $treeType) || ('page' === $treeType)) { $extra = $property->getExtra(); if (!isset($extra['multiple'])) { - $propertyValue = $propertyValue[0]; + $propertyValue = $propertyValue[0] ?? ''; } else { $propertyValue = implode(',', $propertyValue); } @@ -122,6 +124,7 @@ protected function getWidget($fieldName, $serializedId, $propertyValue) protected function loadPagetree() { $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); $input = $environment->getInputProvider(); assert($input instanceof InputProviderInterface); @@ -179,6 +182,7 @@ protected function loadPagetree() protected function loadFiletree() { $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); $input = $environment->getInputProvider(); assert($input instanceof InputProviderInterface); @@ -260,13 +264,17 @@ protected function getTreeValue($type, $value) protected function getModelFromSerializedId($serializedId) { $modelId = ModelId::fromSerialized($serializedId); - $dataProvider = $this->getEnvironment()->getDataProvider($modelId->getDataProviderName()); + + $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); + + $dataProvider = $environment->getDataProvider($modelId->getDataProviderName()); assert($dataProvider instanceof DataProviderInterface); $model = $dataProvider->fetch($dataProvider->getEmptyConfig()->setId($modelId->getId())); if (null === $model) { - $definition = $this->getEnvironment()->getDataDefinition(); + $definition = $environment->getDataDefinition(); assert($definition instanceof ContainerInterface); $event = new LogEvent( @@ -276,7 +284,7 @@ protected function getModelFromSerializedId($serializedId) 'ERROR' ); - $dispatcher = $this->getEnvironment()->getEventDispatcher(); + $dispatcher = $environment->getEventDispatcher(); assert($dispatcher instanceof EventDispatcherInterface); $dispatcher->dispatch($event, ContaoEvents::SYSTEM_LOG); @@ -296,7 +304,10 @@ protected function getModelFromSerializedId($serializedId) */ protected function reloadTree() { - $input = $this->getEnvironment()->getInputProvider(); + $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); + + $input = $environment->getInputProvider(); assert($input instanceof InputProviderInterface); $serializedId = ($input->hasParameter('id') && $input->getParameter('id')) ? $input->getParameter('id') : null; @@ -343,6 +354,7 @@ protected function reloadFiletree() protected function setLegendState() { $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); $input = $environment->getInputProvider(); assert($input instanceof InputProviderInterface); @@ -366,6 +378,8 @@ protected function setLegendState() private function getFieldName() { $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); + $inputProvider = $environment->getInputProvider(); assert($inputProvider instanceof InputProviderInterface); @@ -418,6 +432,8 @@ private function getFieldName() private function generateWidget(Widget $widget) { $environment = $this->getEnvironment(); + assert($environment instanceof EnvironmentInterface); + $inputProvider = $environment->getInputProvider(); assert($inputProvider instanceof InputProviderInterface); diff --git a/src/Controller/DefaultController.php b/src/Controller/DefaultController.php index a9e9d822..60c95f94 100644 --- a/src/Controller/DefaultController.php +++ b/src/Controller/DefaultController.php @@ -732,7 +732,7 @@ private function doActions( // Now apply sorting and persist all models. $models = $this->sortAndPersistModels($actions, $after, $into, $parentModelId, $items); - // At least, go ahead with the deep copy. + // At last, go ahead with the deep copy. $this->doDeepCopy($deepCopyList); return $models; @@ -1112,14 +1112,14 @@ protected function doDeepCopy(array $deepCopyList) $groupAndSortingCollection = $listingConfig->getGroupAndSortingDefinition(); $groupAndSorting = $groupAndSortingCollection->getDefault(); - // ***** fetch the children + // ***** fetch the children. $filter = $childCondition->getFilter($origin); // apply parent-child condition $config = $destinationDataProvider->getEmptyConfig(); $config->setFilter($filter); - // apply sorting + // Apply sorting. $sorting = []; foreach ($groupAndSorting as $information) { /** @var GroupAndSortingInformationInterface $information */ @@ -1127,13 +1127,13 @@ protected function doDeepCopy(array $deepCopyList) } $config->setSorting($sorting); - // receive children + // Receive children. $children = $destinationDataProvider->fetchAll($config); - // ***** do the deep copy + // ***** do the deep copy. $actions = []; - // build the copy actions + // Build the copy actions. foreach ($children as $childModel) { if (!($childModel instanceof ModelInterface)) { continue; @@ -1147,8 +1147,8 @@ protected function doDeepCopy(array $deepCopyList) ]; } - // do the deep copy - $childrenModels = $destinationController->doActions($actions, null, null, $parentId); + // Do the deep copy. + $childrenModels = $destinationController->doActions($actions, null, $parentId, null); // ensure parent-child condition foreach ($childrenModels as $childrenModel) { diff --git a/src/Controller/ModelCollector.php b/src/Controller/ModelCollector.php index 99c4b25a..58719ffd 100644 --- a/src/Controller/ModelCollector.php +++ b/src/Controller/ModelCollector.php @@ -3,7 +3,7 @@ /** * This file is part of contao-community-alliance/dc-general. * - * (c) 2013-2023 Contao Community Alliance. + * (c) 2013-2024 Contao Community Alliance. * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. @@ -16,7 +16,7 @@ * @author Ingolf Steinhardt * @author David Molineus * @author Stefan Heimes - * @copyright 2013-2023 Contao Community Alliance. + * @copyright 2013-2024 Contao Community Alliance. * @license https://github.com/contao-community-alliance/dc-general/blob/master/LICENSE LGPL-3.0-or-later * @filesource */ @@ -160,6 +160,8 @@ public function __construct(EnvironmentInterface $environment) * * @return ModelInterface|null * + * @SuppressWarnings(PHPMD.CyclomaticComplexity) + * * @throws \InvalidArgumentException When the model id is invalid. */ public function getModel($modelId, $providerName = null) @@ -185,34 +187,34 @@ public function getModel($modelId, $providerName = null) assert($dataProvider instanceof DataProviderInterface); $config = $dataProvider->getEmptyConfig(); + $config->setId($modelId->getId()); if ($definition->getName() === $modelId->getDataProviderName()) { $propertyDefinition = $definition->getPropertiesDefinition(); } elseif ($parentDefinition && $parentDefinition->getName() === $modelId->getDataProviderName()) { $propertyDefinition = $parentDefinition->getPropertiesDefinition(); } else { - throw new \InvalidArgumentException('Invalid provider name ' . $modelId->getDataProviderName()); + $propertyDefinition = null; } + if (null !== $propertyDefinition) { + $properties = []; + // Filter real properties from the property definition. + foreach ($propertyDefinition->getPropertyNames() as $propertyName) { + if ($dataProvider->fieldExists($propertyName)) { + $properties[] = $propertyName; + continue; + } - $properties = []; - - // Filter real properties from the property definition. - foreach ($propertyDefinition->getPropertyNames() as $propertyName) { - if ($dataProvider->fieldExists($propertyName)) { - $properties[] = $propertyName; - - continue; + // @codingStandardsIgnoreStart + @\trigger_error( + 'Only real property is allowed in the property definition.' . + 'This will no longer be supported in the future.', + E_USER_DEPRECATED + ); + // @codingStandardsIgnoreEnd } - - // @codingStandardsIgnoreStart - @\trigger_error( - 'Only real property is allowed in the property definition.' . - 'This will no longer be supported in the future.', - E_USER_DEPRECATED - ); - // @codingStandardsIgnoreEnd + $config->setFields($properties); } - $config->setId($modelId->getId())->setFields($properties); return $dataProvider->fetch($config); } diff --git a/src/Resources/public/css/generalDriver.css b/src/Resources/public/css/generalDriver.css index 9cbe25b0..201845c6 100644 --- a/src/Resources/public/css/generalDriver.css +++ b/src/Resources/public/css/generalDriver.css @@ -1,2 +1,2 @@ -@charset "UTF-8";@media projection,screen{div table.tl_listing{margin-top:0!important;margin-bottom:0!important}.tl_folder_tlist{border-top:0}.treepicker_popup a.folding{float:left;margin-right:20px}.tl_listing tr.tl_folder_clipped>td{background-color:#fff9e6}.cursor_disabled{cursor:not-allowed}#dcg_clipboard{position:relative;padding-top:2px;padding-left:40px;min-height:32px;background-image:url(../images/clipboard.svg);background-size:24px 24px;background-position:6px 3px;background-repeat:no-repeat}#dcg_clipboard .btn-clear{position:absolute;top:3px;left:6px;opacity:0;-webkit-transition:opacity 300ms;transition:opacity 300ms}#dcg_clipboard .btn-clear:hover{opacity:1;-webkit-transition:opacity 300ms;transition:opacity 300ms}#dcg_clipboard ul{display:block}#dcg_clipboard li{display:inline-block;border:1px solid #ddd;background-color:#f9f9f9;padding:2px 4px}#dcg_clipboard li>*{display:inline-block;vertical-align:middle}#dcg_clipboard img{vertical-align:middle}.tl_language_panel{padding:6px 6px 7px 0;background:#f3f3f3;border-top:1px solid #fff;border-bottom:1px solid #bbb;text-align:right}.tl_language_panel .tl_select{width:240px}.mac .tl_language_panel select{max-width:none}.mac .tl_language_panel .tl_select,.mac .tl_panel_bottom .tl_select{font-size:11px}.ie .tl_language_panel,.safari .tl_language_panel{overflow:hidden}.tl_language_panel .tl_formbody{position:relative}.ie .tl_language_panel .tl_formbody,.safari .tl_language_panel .tl_formbody{float:right}.tl_language_panel .tl_submit{margin-top:3px;vertical-align:top}.ie .tl_language_panel .tl_submit,.webkit .tl_language_panel .tl_submit{padding-top:4px;padding-bottom:4px}.opera .tl_language_panel .tl_submit{padding-top:3px;padding-bottom:3px;margin-top:-1px}.tl_language_panel img{position:relative;top:4px;vertical-align:top}#general_messageBox{width:-webkit-min-content;width:-moz-min-content;width:min-content;max-width:60%;min-width:40%;padding:24px;position:absolute;left:0;right:0;margin:0 auto;background:#fff no-repeat right center;border:2px solid #666;border-radius:6px;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:15px;text-align:left;word-wrap:break-word}#general_messageBox.loading{background-image:url(../images/loading.gif);padding-right:60px}#general_messageBox.box-small{width:-webkit-max-content;width:-moz-max-content;width:max-content}#general_messageBox .tl_submit{text-align:center}#general_messageBox .tl_submit_container{text-align:right}#general_messageBox .tl_submit_container [type=submit]{margin-left:4px}.stickySave #general_messageBox .tl_submit_container{text-align:right;position:relative}.stickySave #general_messageBox .tl_submit_container [type=submit]{margin-left:4px}#general_messageOverlay{width:-webkit-max-content;width:-moz-max-content;width:max-content;height:100%;position:absolute;top:0;left:0;background:#fff;opacity:0.5}.header_stop{background-image:url("/system/themes/flexible/icons/stop.svg");background-size:16px}.tl_header.hover-div:after{content:" ";clear:right;display:block}} +@charset "UTF-8";@media projection,screen{div table.tl_listing{margin-top:0!important;margin-bottom:0!important}.tl_folder_tlist{border-top:0}.treepicker_popup a.folding{float:left;margin-right:20px}.tl_listing tr.tl_folder_clipped>td{background-color:#fff9e6}.cursor_disabled{cursor:not-allowed}#dcg_clipboard{position:relative;padding-top:2px;padding-left:40px;min-height:32px;background-image:url(../images/clipboard.svg);background-size:24px 24px;background-position:6px 3px;background-repeat:no-repeat}#dcg_clipboard .btn-clear{position:absolute;top:3px;left:6px;opacity:0;-webkit-transition:opacity 300ms;transition:opacity 300ms}#dcg_clipboard .btn-clear:hover{opacity:1;-webkit-transition:opacity 300ms;transition:opacity 300ms}#dcg_clipboard ul{display:block}#dcg_clipboard li{display:inline-block;border:1px solid #ddd;background-color:#f9f9f9;padding:2px 4px}#dcg_clipboard li>*{display:inline-block;vertical-align:middle}#dcg_clipboard img{vertical-align:middle}.tl_language_panel{padding:6px 6px 7px 0;background:#f3f3f3;border-top:1px solid #fff;border-bottom:1px solid #bbb;text-align:right}.tl_language_panel .tl_select{width:240px}.mac .tl_language_panel select{max-width:none}.mac .tl_language_panel .tl_select,.mac .tl_panel_bottom .tl_select{font-size:11px}.ie .tl_language_panel,.safari .tl_language_panel{overflow:hidden}.tl_language_panel .tl_formbody{position:relative}.ie .tl_language_panel .tl_formbody,.safari .tl_language_panel .tl_formbody{float:right}.tl_language_panel .tl_submit{margin-top:3px;vertical-align:top}.ie .tl_language_panel .tl_submit,.webkit .tl_language_panel .tl_submit{padding-top:4px;padding-bottom:4px}.opera .tl_language_panel .tl_submit{padding-top:3px;padding-bottom:3px;margin-top:-1px}.tl_language_panel img{position:relative;top:4px;vertical-align:top}.dc_general_panel .tl_submit_panel{height:30px}#general_messageBox{width:-webkit-min-content;width:-moz-min-content;width:min-content;max-width:60%;min-width:40%;padding:24px;position:absolute;left:0;right:0;margin:0 auto;background:#fff no-repeat right center;border:2px solid #666;border-radius:6px;font-family:"Trebuchet MS",Verdana,sans-serif;font-size:15px;text-align:left;word-wrap:break-word}#general_messageBox.loading{background-image:url(../images/loading.gif);padding-right:60px}#general_messageBox.box-small{width:-webkit-max-content;width:-moz-max-content;width:max-content}#general_messageBox .tl_submit{text-align:center}#general_messageBox .tl_submit_container{text-align:right}#general_messageBox .tl_submit_container [type=submit]{margin-left:4px}.stickySave #general_messageBox .tl_submit_container{text-align:right;position:relative}.stickySave #general_messageBox .tl_submit_container [type=submit]{margin-left:4px}#general_messageOverlay{width:-webkit-max-content;width:-moz-max-content;width:max-content;height:100%;position:absolute;top:0;left:0;background:#fff;opacity:0.5}.header_stop{background-image:url("/system/themes/flexible/icons/stop.svg");background-size:16px}.tl_header.hover-div:after{content:" ";clear:right;display:block}} /*# sourceMappingURL=generalDriver.css.map */ \ No newline at end of file diff --git a/src/Resources/public/css/generalDriver.css.map b/src/Resources/public/css/generalDriver.css.map index fb25d00d..9b11b9a8 100644 --- a/src/Resources/public/css/generalDriver.css.map +++ b/src/Resources/public/css/generalDriver.css.map @@ -1 +1 @@ -{"version":3,"sources":["generalDriver.css","../sass/generalDriver.scss","../sass/_clipboard.scss","../sass/_languagePanel.scss","../sass/_messageBox.scss","../sass/_headerButton.scss"],"names":[],"mappings":"AAAA,gBAAgB,CCUhB,yBACE,qBACE,sBAAA,CACA,yBDCF,CCEA,iBACE,YDAF,CCGA,4BACE,UAAA,CACA,iBDDF,CCIA,oCACE,wBDFF,CCKA,iBACE,kBDHF,CE3BF,eACE,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,eAAA,CACA,6CAAA,CACA,yBAAA,CACA,2BAAA,CACA,2BF6BA,CE3BA,0BACE,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,gCAAA,CAAA,wBF6BF,CE3BE,gCACE,SAAA,CACA,gCAAA,CAAA,wBF6BJ,CE1BA,kBACE,aF4BF,CE1BA,kBACE,oBAAA,CACA,qBAAA,CACA,wBAAA,CACA,eF4BF,CE1BE,oBACE,oBAAA,CACA,qBF4BJ,CEzBA,mBACE,qBF2BF,CGhEF,mBACE,qBAAA,CACA,kBAAA,CACA,yBAAA,CACA,4BAAA,CACA,gBHkEA,CG/DF,8BACE,WHiEA,CG9DF,+BACE,cHgEA,CG7DF,oEAEE,cH+DA,CG5DF,kDAEE,eH8DA,CG3DF,gCACE,iBH6DA,CG1DF,4EAEE,WH4DA,CGzDF,8BACE,cAAA,CACA,kBH2DA,CGxDF,wEAEE,eAAA,CACA,kBH0DA,CGvDF,qCACE,eAAA,CACA,kBAAA,CACA,eHyDA,CGtDF,uBACE,iBAAA,CACA,OAAA,CACA,kBHwDA,CI/GF,oBACE,yBAAA,CAAA,sBAAA,CAAA,iBAAA,CACA,aAAA,CACA,aAAA,CACA,YAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,aAAA,CACA,sCAAA,CACA,qBAAA,CACA,iBAAA,CACA,6CAAA,CACA,cAAA,CACA,eAAA,CACA,oBJiHA,CI/GA,4BACE,2CAAA,CACA,kBJiHF,CI9GA,8BACE,yBAAA,CAAA,sBAAA,CAAA,iBJgHF,CI7GA,+BACE,iBJ+GF,CI5GA,yCACE,gBJ8GF,CI5GE,uDACE,eJ8GJ,CIxGF,qDACE,gBAAA,CACA,iBJ2GA,CIzGA,mEACE,eJ2GF,CIvGF,wBACE,yBAAA,CAAA,sBAAA,CAAA,iBAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,eAAA,CACA,WJyGA,CKjKF,aACE,8DAAA,CACA,oBLmKA,CK9JE,2BACE,WAAA,CACA,WAAA,CACA,aLgKJ,CACF","file":"generalDriver.css"} \ No newline at end of file +{"version":3,"sources":["generalDriver.css","../sass/generalDriver.scss","../sass/_clipboard.scss","../sass/_languagePanel.scss","../sass/_defaultPanels.scss","../sass/_messageBox.scss","../sass/_headerButton.scss"],"names":[],"mappings":"AAAA,gBAAgB,CCUhB,yBACE,qBACE,sBAAA,CACA,yBDCF,CCEA,iBACE,YDAF,CCGA,4BACE,UAAA,CACA,iBDDF,CCIA,oCACE,wBDFF,CCKA,iBACE,kBDHF,CE3BF,eACE,iBAAA,CACA,eAAA,CACA,iBAAA,CACA,eAAA,CACA,6CAAA,CACA,yBAAA,CACA,2BAAA,CACA,2BF6BA,CE3BA,0BACE,iBAAA,CACA,OAAA,CACA,QAAA,CACA,SAAA,CACA,gCAAA,CAAA,wBF6BF,CE3BE,gCACE,SAAA,CACA,gCAAA,CAAA,wBF6BJ,CE1BA,kBACE,aF4BF,CE1BA,kBACE,oBAAA,CACA,qBAAA,CACA,wBAAA,CACA,eF4BF,CE1BE,oBACE,oBAAA,CACA,qBF4BJ,CEzBA,mBACE,qBF2BF,CGhEF,mBACE,qBAAA,CACA,kBAAA,CACA,yBAAA,CACA,4BAAA,CACA,gBHkEA,CG/DF,8BACE,WHiEA,CG9DF,+BACE,cHgEA,CG7DF,oEAEE,cH+DA,CG5DF,kDAEE,eH8DA,CG3DF,gCACE,iBH6DA,CG1DF,4EAEE,WH4DA,CGzDF,8BACE,cAAA,CACA,kBH2DA,CGxDF,wEAEE,eAAA,CACA,kBH0DA,CGvDF,qCACE,eAAA,CACA,kBAAA,CACA,eHyDA,CGtDF,uBACE,iBAAA,CACA,OAAA,CACA,kBHwDA,CI/GF,mCACE,WJiHA,CKlHF,oBACE,yBAAA,CAAA,sBAAA,CAAA,iBAAA,CACA,aAAA,CACA,aAAA,CACA,YAAA,CACA,iBAAA,CACA,MAAA,CACA,OAAA,CACA,aAAA,CACA,sCAAA,CACA,qBAAA,CACA,iBAAA,CACA,6CAAA,CACA,cAAA,CACA,eAAA,CACA,oBLoHA,CKlHA,4BACE,2CAAA,CACA,kBLoHF,CKjHA,8BACE,yBAAA,CAAA,sBAAA,CAAA,iBLmHF,CKhHA,+BACE,iBLkHF,CK/GA,yCACE,gBLiHF,CK/GE,uDACE,eLiHJ,CK3GF,qDACE,gBAAA,CACA,iBL8GA,CK5GA,mEACE,eL8GF,CK1GF,wBACE,yBAAA,CAAA,sBAAA,CAAA,iBAAA,CACA,WAAA,CACA,iBAAA,CACA,KAAA,CACA,MAAA,CACA,eAAA,CACA,WL4GA,CMpKF,aACE,8DAAA,CACA,oBNsKA,CMjKE,2BACE,WAAA,CACA,WAAA,CACA,aNmKJ,CACF","file":"generalDriver.css"} \ No newline at end of file diff --git a/src/Resources/public/sass/_defaultPanels.scss b/src/Resources/public/sass/_defaultPanels.scss new file mode 100644 index 00000000..a0835feb --- /dev/null +++ b/src/Resources/public/sass/_defaultPanels.scss @@ -0,0 +1,3 @@ +.dc_general_panel .tl_submit_panel { + height: 30px; +} diff --git a/src/Resources/public/sass/generalDriver.scss b/src/Resources/public/sass/generalDriver.scss index ded539c3..da96f414 100644 --- a/src/Resources/public/sass/generalDriver.scss +++ b/src/Resources/public/sass/generalDriver.scss @@ -33,6 +33,7 @@ @import "clipboard"; @import "languagePanel"; + @import "defaultPanels"; @import "messageBox"; @import "headerButton"; }