diff --git a/typo3/sysext/form/Classes/Controller/FormManagerController.php b/typo3/sysext/form/Classes/Controller/FormManagerController.php index 2fbdc511b1317a6f814b9c46461be519ed42846e..ae0ba98f6f9722b6bd2355bf3edb172e44b8ca72 100644 --- a/typo3/sysext/form/Classes/Controller/FormManagerController.php +++ b/typo3/sysext/form/Classes/Controller/FormManagerController.php @@ -360,7 +360,7 @@ class FormManagerController extends AbstractBackendController $preparedAccessibleFormStorageFolders = []; foreach ($this->formPersistenceManager->getAccessibleFormStorageFolders() as $identifier => $folder) { $preparedAccessibleFormStorageFolders[] = [ - 'label' => $folder->getName(), + 'label' => $folder->getStorage()->isPublic() ? $folder->getPublicUrl() : $identifier, 'value' => $identifier ]; } diff --git a/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormManager.js b/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormManager.js index 660bd1484cd209c723dc341b8449b1f84953cf8d..fa6df85354a2d5e5e4c27103fa123c3a3594b106 100644 --- a/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormManager.js +++ b/typo3/sysext/form/Resources/Public/JavaScript/Backend/FormManager.js @@ -129,7 +129,7 @@ define(['jquery'], function($) { if ('array' === $.type(_configuration['accessibleFormStorageFolders'])) { for (var i = 0, len1 = _configuration['accessibleFormStorageFolders'].length; i < len1; ++i) { folders.push({ - label: _configuration['accessibleFormStorageFolders'][i]['label'] + ' (' + _configuration['accessibleFormStorageFolders'][i]['value'] + ')', + label: _configuration['accessibleFormStorageFolders'][i]['label'], value: _configuration['accessibleFormStorageFolders'][i]['value'] }); } diff --git a/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php b/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php index 26895050e93dcd5c1a853a9545dd6dcc1dc8e2d0..d26a7f9e7fac7fa2d79d14747cb67d3dba2159c9 100644 --- a/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php +++ b/typo3/sysext/form/Tests/Unit/Controller/FormManagerControllerTest.php @@ -52,23 +52,29 @@ class FormManagerControllerTest extends UnitTestCase $formPersistenceManagerProphecy = $this->prophesize(FormPersistenceManager::class); - $mockStorage = $this->getMockBuilder(ResourceStorage::class) - ->disableOriginalConstructor() - ->getMock(); $mockController->_set('formPersistenceManager', $formPersistenceManagerProphecy->reveal()); - $mockController->_set('formSettings', [ 'persistenceManager' => [ 'allowSaveToExtensionPaths' => true, ], ]); - $folder1 = new Folder($mockStorage, '/user_upload/', 'user_upload'); - $folder2 = new Folder($mockStorage, '/forms/', 'forms'); + $storageProphecy1 = $this->prophesize(ResourceStorage::class); + $storageProphecy2 = $this->prophesize(ResourceStorage::class); + + $storageProphecy1->isPublic()->willReturn(true); + $storageProphecy2->isPublic()->willReturn(false); + + $folder1Prophecy = $this->prophesize(Folder::class); + $folder1Prophecy->getPublicUrl()->willReturn('/fileadmin/user_upload/'); + $folder1Prophecy->getStorage()->willReturn($storageProphecy1->reveal()); + + $folder2Prophecy = $this->prophesize(Folder::class); + $folder2Prophecy->getStorage()->willReturn($storageProphecy2->reveal()); $formPersistenceManagerProphecy->getAccessibleFormStorageFolders(Argument::cetera())->willReturn([ - '1:/user_upload/' => $folder1, - '2:/forms/' => $folder2, + '1:/user_upload/' => $folder1Prophecy->reveal(), + '2:/forms/' => $folder2Prophecy->reveal(), ]); $formPersistenceManagerProphecy->getAccessibleExtensionFolders(Argument::cetera())->willReturn([ @@ -78,11 +84,11 @@ class FormManagerControllerTest extends UnitTestCase $expected = [ 0 => [ - 'label' => 'user_upload', + 'label' => '/fileadmin/user_upload/', 'value' => '1:/user_upload/', ], 1 => [ - 'label' => 'forms', + 'label' => '2:/forms/', 'value' => '2:/forms/', ], 2 => [