From 843da2d31283c184e266e2420cd61cbe8529cd0a Mon Sep 17 00:00:00 2001 From: Benjamin Serfhos Date: Tue, 3 Jul 2018 15:02:37 +0200 Subject: [PATCH 1/3] [FEATURE] Add option to enable/disable bynder compact view button - Added TS User Config: permissions.file.default.addFileViaBynder = 1 - Added permissions to be_users and be_groups using nice icon :-) --- Classes/Backend/InlineControlContainer.php | 40 ++++++++++++++----- Configuration/TCA/Overrides/be_groups.php | 12 ++++++ Configuration/TCA/Overrides/be_users.php | 12 ++++++ Resources/Private/Language/locallang_be.xlf | 8 +++- .../Icons/actions-bynder-compact-view.svg | 1 + .../Icons/permissions-bynder-compact-view.svg | 6 +++ ext_localconf.php | 7 +++- 7 files changed, 73 insertions(+), 13 deletions(-) create mode 100644 Configuration/TCA/Overrides/be_groups.php create mode 100644 Configuration/TCA/Overrides/be_users.php create mode 100644 Resources/Public/Icons/actions-bynder-compact-view.svg create mode 100644 Resources/Public/Icons/permissions-bynder-compact-view.svg diff --git a/Classes/Backend/InlineControlContainer.php b/Classes/Backend/InlineControlContainer.php index e5b69a5..a3f5a93 100644 --- a/Classes/Backend/InlineControlContainer.php +++ b/Classes/Backend/InlineControlContainer.php @@ -28,16 +28,18 @@ protected function renderPossibleRecordsSelectorTypeGroupDB(array $inlineConfigu { $selector = parent::renderPossibleRecordsSelectorTypeGroupDB($inlineConfiguration); - $button = $this->renderBynderButton($inlineConfiguration); - - // Inject button before help-block - if (strpos($selector, '
') > 0) { - $selector = str_replace('
', $button . '
', $selector); - // Try to inject it into the form-control container - } elseif (preg_match('/<\/div><\/div>$/i', $selector)) { - $selector = preg_replace('/<\/div><\/div>$/i', $button . '
', $selector); - } else { - $selector .= $button; + if ($this->displayBynderButton()) { + $button = $this->renderBynderButton($inlineConfiguration); + + // Inject button before help-block + if (strpos($selector, '
') > 0) { + $selector = str_replace('
', $button . '
', $selector); + // Try to inject it into the form-control container + } elseif (preg_match('/<\/div><\/div>$/i', $selector)) { + $selector = preg_replace('/<\/div><\/div>$/i', $button . '
', $selector); + } else { + $selector .= $button; + } } return $selector; @@ -105,4 +107,20 @@ protected function bynderStorageAvailable(): bool } return false; } -} \ No newline at end of file + + /** + * Check if the BE user has access to the Bynder compact view + * + * Admin has access when there is a resource storage with driver type bynder + * Editors need to have access to a mount of that storage + * + * @return bool + */ + protected function displayBynderButton(): bool + { + $backendUser = $this->getBackendUserAuthentication(); + $filePermissions = $backendUser->getFilePermissions(); + + return $backendUser->isAdmin() || (bool)$filePermissions['addFileViaBynder']; + } +} diff --git a/Configuration/TCA/Overrides/be_groups.php b/Configuration/TCA/Overrides/be_groups.php new file mode 100644 index 0000000..503e99e --- /dev/null +++ b/Configuration/TCA/Overrides/be_groups.php @@ -0,0 +1,12 @@ + Please make sure you have access to the Bynder file mount. This is needed to use the Bynder file picker + + Files: Add via Bynder + + + Files: Add via Bynder + - \ No newline at end of file + diff --git a/Resources/Public/Icons/actions-bynder-compact-view.svg b/Resources/Public/Icons/actions-bynder-compact-view.svg new file mode 100644 index 0000000..bddbcfd --- /dev/null +++ b/Resources/Public/Icons/actions-bynder-compact-view.svg @@ -0,0 +1 @@ + diff --git a/Resources/Public/Icons/permissions-bynder-compact-view.svg b/Resources/Public/Icons/permissions-bynder-compact-view.svg new file mode 100644 index 0000000..1ad3795 --- /dev/null +++ b/Resources/Public/Icons/permissions-bynder-compact-view.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/ext_localconf.php b/ext_localconf.php index 2e5e6c7..258c84f 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -59,7 +59,12 @@ $iconRegistry->registerIcon( 'actions-bynder-compact-view', \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, - ['source' => 'EXT:bynder/Resources/Public/Icons/Extension.svg'] + ['source' => 'EXT:bynder/Resources/Public/Icons/actions-bynder-compact-view.svg'] +); +$iconRegistry->registerIcon( + 'permissions-bynder-compact-view', + \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, + ['source' => 'EXT:bynder/Resources/Public/Icons/permissions-bynder-compact-view.svg'] ); unset($iconRegistry); From cf770f579aa277513b8644e237ead9ac7cf0ec18 Mon Sep 17 00:00:00 2001 From: Benjamin Serfhos Date: Mon, 16 Jul 2018 17:24:31 +0200 Subject: [PATCH 2/3] [TASK] Add changelog to follow changes in beta stage --- CHANGELOG.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..f04d27c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,25 @@ +CHANGELOG +========= + +0.0.4 +----- + +* Added option to enable/disable [Bynder CompactView](https://developer-docs.bynder.com/UI%20components/#compact-view) button +* Added workflow and configuration for unavailable image +* Added changelog +* Updated documentation + +0.0.3 +----- + +Added support for compact view 2.0.0 + +0.0.2 +----- + +First release of the Bynder integration extension, providing seamless access to Bynder's asset bank on your website. + +0.0.1 +----- + +Initial git check-in From eb01b995e651ed11c1c9e868c311de2d5f57e99f Mon Sep 17 00:00:00 2001 From: Benjamin Serfhos Date: Thu, 7 Jan 2021 11:01:45 +0100 Subject: [PATCH 3/3] [TASK] Remove changelog as its outdated quickly --- CHANGELOG.md | 25 ------------------------- 1 file changed, 25 deletions(-) delete mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index f04d27c..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,25 +0,0 @@ -CHANGELOG -========= - -0.0.4 ------ - -* Added option to enable/disable [Bynder CompactView](https://developer-docs.bynder.com/UI%20components/#compact-view) button -* Added workflow and configuration for unavailable image -* Added changelog -* Updated documentation - -0.0.3 ------ - -Added support for compact view 2.0.0 - -0.0.2 ------ - -First release of the Bynder integration extension, providing seamless access to Bynder's asset bank on your website. - -0.0.1 ------ - -Initial git check-in