From df4191563b400e993bb0518d62b5d8c1fd9a847f Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 24 Nov 2020 13:05:00 -0500 Subject: [PATCH 1/6] Remove toenail thumbnail references, we no longer use them. --- resources/js/components/fieldtypes/assets/Asset.js | 4 ---- src/Http/Resources/CP/Assets/Asset.php | 1 - src/Http/Resources/CP/Assets/FolderAsset.php | 1 - src/Imaging/Manager.php | 1 - tests/Feature/Assets/BrowserTest.php | 2 +- 5 files changed, 1 insertion(+), 8 deletions(-) diff --git a/resources/js/components/fieldtypes/assets/Asset.js b/resources/js/components/fieldtypes/assets/Asset.js index cdae5ef5fcf..e671b0b5e70 100644 --- a/resources/js/components/fieldtypes/assets/Asset.js +++ b/resources/js/components/fieldtypes/assets/Asset.js @@ -32,10 +32,6 @@ export default { return this.asset.thumbnail; }, - toenail() { - return this.asset.toenail; - }, - label() { return this.asset.basename; } diff --git a/src/Http/Resources/CP/Assets/Asset.php b/src/Http/Resources/CP/Assets/Asset.php index 155012e6317..8022e91471d 100644 --- a/src/Http/Resources/CP/Assets/Asset.php +++ b/src/Http/Resources/CP/Assets/Asset.php @@ -34,7 +34,6 @@ public function toArray($request) 'height' => $this->height(), 'preview' => $this->previewUrl(), 'thumbnail' => $this->thumbnailUrl('small'), - 'toenail' => $this->thumbnailUrl('large'), ]; }), diff --git a/src/Http/Resources/CP/Assets/FolderAsset.php b/src/Http/Resources/CP/Assets/FolderAsset.php index 55cab9a368e..90fa2ac44ef 100644 --- a/src/Http/Resources/CP/Assets/FolderAsset.php +++ b/src/Http/Resources/CP/Assets/FolderAsset.php @@ -23,7 +23,6 @@ public function toArray($request) return [ 'is_image' => true, 'thumbnail' => $this->thumbnailUrl('small'), - 'toenail' => $this->thumbnailUrl('large'), ]; }), diff --git a/src/Imaging/Manager.php b/src/Imaging/Manager.php index e75ed1ad3e2..a47439a2c40 100644 --- a/src/Imaging/Manager.php +++ b/src/Imaging/Manager.php @@ -52,7 +52,6 @@ public function getCpImageManipulationPresets() 'cp_thumbnail_small_landscape' => ['w' => '400', 'h' => '300', 'fit' => 'crop'], 'cp_thumbnail_small_portrait' => ['h' => '300', 'fit' => 'crop'], 'cp_thumbnail_small_square' => ['w' => '300', 'h' => '300'], - 'cp_thumbnail_large' => ['w' => '1000', 'h' => '1000'], ]; } } diff --git a/tests/Feature/Assets/BrowserTest.php b/tests/Feature/Assets/BrowserTest.php index 7e5a3f5b0b4..784b3e14d88 100644 --- a/tests/Feature/Assets/BrowserTest.php +++ b/tests/Feature/Assets/BrowserTest.php @@ -268,7 +268,7 @@ private function jsonStructure() 'data' => [ 'assets' => [ ['id', 'size_formatted', 'last_modified_relative', 'actions'], - ['id', 'size_formatted', 'last_modified_relative', 'actions', 'thumbnail', 'toenail'], + ['id', 'size_formatted', 'last_modified_relative', 'actions', 'thumbnail'], ], 'folder' => [ 'title', 'path', 'parent_path', 'actions', 'folders', From 87643d7c3ed52817caa5e69b641abe0881b55884 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 24 Nov 2020 13:06:11 -0500 Subject: [PATCH 2/6] Remove standalone small preset. There will always be an orientation suffix. --- src/Imaging/Manager.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Imaging/Manager.php b/src/Imaging/Manager.php index a47439a2c40..00610fee79e 100644 --- a/src/Imaging/Manager.php +++ b/src/Imaging/Manager.php @@ -48,7 +48,6 @@ public function manipulator() public function getCpImageManipulationPresets() { return [ - 'cp_thumbnail_small' => ['w' => '300', 'fit' => 'crop'], 'cp_thumbnail_small_landscape' => ['w' => '400', 'h' => '300', 'fit' => 'crop'], 'cp_thumbnail_small_portrait' => ['h' => '300', 'fit' => 'crop'], 'cp_thumbnail_small_square' => ['w' => '300', 'h' => '300'], From 5b5e2f0f83cb4fe2b62b229519651bfd5cbf0beb Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 24 Nov 2020 13:16:03 -0500 Subject: [PATCH 3/6] Tidy command --- .../Commands/AssetsGeneratePresets.php | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/Console/Commands/AssetsGeneratePresets.php b/src/Console/Commands/AssetsGeneratePresets.php index 0b6af9525fa..b8d2073ebca 100644 --- a/src/Console/Commands/AssetsGeneratePresets.php +++ b/src/Console/Commands/AssetsGeneratePresets.php @@ -6,7 +6,6 @@ use Statamic\Console\RunsInPlease; use Statamic\Facades\Asset; use Statamic\Facades\Image; -use Statamic\Imaging\ImageGenerator; use Statamic\Imaging\PresetGenerator; class AssetsGeneratePresets extends Command @@ -28,24 +27,25 @@ class AssetsGeneratePresets extends Command protected $description = 'Generate asset preset manipulations.'; /** - * @var ImageGenerator + * @var PresetGenerator */ - protected $imageGenerator; + protected $generator; /** * @var \Statamic\Assets\AssetCollection */ protected $imageAssets; + public function __construct(PresetGenerator $generator) + { + $this->generator = $generator; + } + /** * Execute the console command. - * - * @param ImageGenerator $imageGenerator */ - public function handle(ImageGenerator $imageGenerator) + public function handle() { - $this->imageGenerator = $imageGenerator; - $this->imageAssets = Asset::all()->filter(function ($asset) { return $asset->isImage(); }); @@ -93,15 +93,13 @@ private function generateCpThumbnails() */ private function generatePresets($presets) { - $generator = new PresetGenerator($this->imageGenerator, $presets); - foreach ($presets as $preset => $params) { $bar = $this->output->createProgressBar($this->imageAssets->count()); $bar->setFormat("[%current%/%max%] Generating $preset... %filename%"); foreach ($this->imageAssets as $asset) { $bar->setMessage($asset->basename(), 'filename'); - $generator->generate($asset, $preset); + $this->generator->generate($asset, $preset); $bar->advance(); } From 3622c83a4d33cbd651f4d346ee5ccde123c365a1 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 24 Nov 2020 13:19:33 -0500 Subject: [PATCH 4/6] Use method --- src/Console/Commands/AssetsGeneratePresets.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Console/Commands/AssetsGeneratePresets.php b/src/Console/Commands/AssetsGeneratePresets.php index b8d2073ebca..32d625b0f8b 100644 --- a/src/Console/Commands/AssetsGeneratePresets.php +++ b/src/Console/Commands/AssetsGeneratePresets.php @@ -5,6 +5,7 @@ use Illuminate\Console\Command; use Statamic\Console\RunsInPlease; use Statamic\Facades\Asset; +use Statamic\Facades\Config; use Statamic\Facades\Image; use Statamic\Imaging\PresetGenerator; @@ -62,7 +63,7 @@ public function handle() */ protected function generateUserPresets() { - $presets = config('statamic.assets.image_manipulation.presets', []); + $presets = Config::getImageManipulationPresets(); if (empty($presets)) { return $this->line('[✗] No user defined presets.'); From 86f8ef6a210d0c9114210316743c17dfb3c035e4 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 24 Nov 2020 15:52:36 -0500 Subject: [PATCH 5/6] New simpler manipulator methods through Image facade. Deprecate the existing ones. --- src/Config.php | 5 ++- .../Commands/AssetsGeneratePresets.php | 2 +- src/Facades/Image.php | 4 ++- src/Imaging/GlideServer.php | 18 +--------- src/Imaging/Manager.php | 36 ++++++++++++++++++- src/Providers/GlideServiceProvider.php | 3 +- 6 files changed, 46 insertions(+), 22 deletions(-) diff --git a/src/Config.php b/src/Config.php index 7e6b1b79298..f89f01ff566 100644 --- a/src/Config.php +++ b/src/Config.php @@ -2,6 +2,7 @@ namespace Statamic; +use Statamic\Facades\Image; use Statamic\Facades\Site; /** @@ -156,9 +157,11 @@ public function getSiteUrl($locale = null) * Get the image manipulation presets. * * @return array + * @deprecated Use Statamic\Facades\Image::userManipulationPresets() + * or Image::manipulationPresets() to get merged with CP presets. */ public function getImageManipulationPresets() { - return config('statamic.assets.image_manipulation.presets', []); + return Image::userManipulationPresets(); } } diff --git a/src/Console/Commands/AssetsGeneratePresets.php b/src/Console/Commands/AssetsGeneratePresets.php index 32d625b0f8b..f6e302db771 100644 --- a/src/Console/Commands/AssetsGeneratePresets.php +++ b/src/Console/Commands/AssetsGeneratePresets.php @@ -63,7 +63,7 @@ public function handle() */ protected function generateUserPresets() { - $presets = Config::getImageManipulationPresets(); + $presets = Image::userManipulationPresets(); if (empty($presets)) { return $this->line('[✗] No user defined presets.'); diff --git a/src/Facades/Image.php b/src/Facades/Image.php index a3c6842e175..b5659808761 100644 --- a/src/Facades/Image.php +++ b/src/Facades/Image.php @@ -8,7 +8,9 @@ /** * @method static string|\Statamic\Contracts\Imaging\ImageManipulator manipulate($item = null, $params = null) * @method static \Statamic\Contracts\Imaging\ImageManipulator manipulator() - * @method static array getCpImageManipulationPresets() + * @method static array manipulationPresets() + * @method static array userManipulationPresets() + * @method static array cpManipulationPresets() * * @see \Statamic\Imaging\Manager */ diff --git a/src/Imaging/GlideServer.php b/src/Imaging/GlideServer.php index cebe5dd9972..0e585d7d774 100644 --- a/src/Imaging/GlideServer.php +++ b/src/Imaging/GlideServer.php @@ -22,7 +22,7 @@ public function create() 'response' => new LaravelResponseFactory(app('request')), 'driver' => Config::get('statamic.assets.image_manipulation.driver'), 'cache_with_file_extensions' => true, - 'presets' => $this->presets(), + 'presets' => Image::manipulationPresets(), ]); } @@ -37,20 +37,4 @@ public function cachePath() ? Config::get('statamic.assets.image_manipulation.cache_path') : storage_path('statamic/glide'); } - - /** - * Get glide presets. - * - * @return array - */ - private function presets() - { - $presets = Config::getImageManipulationPresets(); - - if (config('statamic.cp.enabled')) { - $presets = array_merge($presets, Image::getCpImageManipulationPresets()); - } - - return $presets; - } } diff --git a/src/Imaging/Manager.php b/src/Imaging/Manager.php index 00610fee79e..dc14dffaede 100644 --- a/src/Imaging/Manager.php +++ b/src/Imaging/Manager.php @@ -40,12 +40,38 @@ public function manipulator() return app(ImageManipulator::class); } + /** + * Get the image manipulation presets. + * + * @return array + */ + public function manipulationPresets() + { + $presets = $this->userManipulationPresets(); + + if (config('statamic.cp.enabled')) { + $presets = array_merge($presets, $this->cpManipulationPresets()); + } + + return $presets; + } + + /** + * Get the user defined image manipulation presets. + * + * @return array + */ + public function userManipulationPresets() + { + return config('statamic.assets.image_manipulation.presets', []); + } + /** * Get the image manipulation presets required by the control panel. * * @return array */ - public function getCpImageManipulationPresets() + public function cpManipulationPresets() { return [ 'cp_thumbnail_small_landscape' => ['w' => '400', 'h' => '300', 'fit' => 'crop'], @@ -53,4 +79,12 @@ public function getCpImageManipulationPresets() 'cp_thumbnail_small_square' => ['w' => '300', 'h' => '300'], ]; } + + /** + * @deprecated + */ + public function getCpImageManipulationPresets() + { + return $this->cpManipulationPresets(); + } } diff --git a/src/Providers/GlideServiceProvider.php b/src/Providers/GlideServiceProvider.php index 66b69bc5676..7cda80bf138 100644 --- a/src/Providers/GlideServiceProvider.php +++ b/src/Providers/GlideServiceProvider.php @@ -8,6 +8,7 @@ use Statamic\Contracts\Imaging\ImageManipulator; use Statamic\Contracts\Imaging\UrlBuilder; use Statamic\Facades\Config; +use Statamic\Facades\Image; use Statamic\Imaging\GlideImageManipulator; use Statamic\Imaging\GlideUrlBuilder; use Statamic\Imaging\ImageGenerator; @@ -38,7 +39,7 @@ public function register() $this->app->bind(PresetGenerator::class, function ($app) { return new PresetGenerator( $app->make(ImageGenerator::class), - Config::getImageManipulationPresets() + Image::manipulationPresets() ); }); } From 906d6205183e580d0696bc3f3a60dd9d9fa92af9 Mon Sep 17 00:00:00 2001 From: Jason Varga Date: Tue, 24 Nov 2020 15:52:45 -0500 Subject: [PATCH 6/6] Add missing parent construct --- src/Console/Commands/AssetsGeneratePresets.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Console/Commands/AssetsGeneratePresets.php b/src/Console/Commands/AssetsGeneratePresets.php index f6e302db771..03f780a832c 100644 --- a/src/Console/Commands/AssetsGeneratePresets.php +++ b/src/Console/Commands/AssetsGeneratePresets.php @@ -40,6 +40,7 @@ class AssetsGeneratePresets extends Command public function __construct(PresetGenerator $generator) { $this->generator = $generator; + parent::__construct(); } /**