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/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 0b6af9525fa..03f780a832c 100644 --- a/src/Console/Commands/AssetsGeneratePresets.php +++ b/src/Console/Commands/AssetsGeneratePresets.php @@ -5,8 +5,8 @@ use Illuminate\Console\Command; use Statamic\Console\RunsInPlease; use Statamic\Facades\Asset; +use Statamic\Facades\Config; use Statamic\Facades\Image; -use Statamic\Imaging\ImageGenerator; use Statamic\Imaging\PresetGenerator; class AssetsGeneratePresets extends Command @@ -28,24 +28,26 @@ 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; + parent::__construct(); + } + /** * 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(); }); @@ -62,7 +64,7 @@ public function handle(ImageGenerator $imageGenerator) */ protected function generateUserPresets() { - $presets = config('statamic.assets.image_manipulation.presets', []); + $presets = Image::userManipulationPresets(); if (empty($presets)) { return $this->line('[✗] No user defined presets.'); @@ -93,15 +95,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(); } 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/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/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 e75ed1ad3e2..dc14dffaede 100644 --- a/src/Imaging/Manager.php +++ b/src/Imaging/Manager.php @@ -40,19 +40,51 @@ 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' => ['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'], - 'cp_thumbnail_large' => ['w' => '1000', 'h' => '1000'], ]; } + + /** + * @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() ); }); } 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',