fix thumbnail generation mutated data

This commit is contained in:
Milos Holba
2021-12-08 12:25:20 +01:00
parent 7d685fa166
commit c6b4a767da
6 changed files with 32 additions and 23 deletions

View File

@@ -16,20 +16,17 @@ class CreateImageThumbnailAcionQueue
*
* @return mixed
*/
public function execute($file_name, $user_id, $thumnails_sizes)
{
public function execute($file_name, $user_id, $thumnails_sizes, $source)
{
// Get image from disk
$image = Storage::disk('local')->get("temp/$user_id/{$file_name}");
// Create intervention image
$intervention = Image::make($image)->orientate();
collect($thumnails_sizes)
->each(function ($size) use ($intervention, $user_id, $file_name) {
dd($intervention->getWidth());
->each(function ($size) use ($image, $user_id, $file_name) {
// Create intervention image
$intervention = Image::make($image)->orientate();
if ($intervention->getWidth() > $size['size']) {
// Generate thumbnail
@@ -40,5 +37,11 @@ class CreateImageThumbnailAcionQueue
}
});
if($source === 'queue') {
// Delete file after generate a thumbnail
Storage::disk('local')->delete("temp/$user_id/{$file_name}");
}
}
}

View File

@@ -40,10 +40,10 @@ class CreateImageThumbnailAction
Storage::disk('local')->copy("files/$user_id/{$file_name}", "temp/$user_id/{$file_name}");
// Create thumbnail instantly
$this->action->execute($file_name, $user_id, config('vuefilemanager.image_sizes.execute'));
$this->action->execute($file_name, $user_id, config('vuefilemanager.image_sizes.execute'), 'execute');
// Create thumbnail queue job
$this->action->onQueue()->execute($file_name, $user_id, config('vuefilemanager.image_sizes.queue'));
$this->action->onQueue()->execute($file_name, $user_id, config('vuefilemanager.image_sizes.queue'), 'queue');
}
}
}

View File

@@ -605,8 +605,11 @@ if (! function_exists('get_thumbnail_file_list')) {
*/
function get_thumbnail_file_list(string $basename): Collection
{
return collect(array_merge(config('vuefilemanager.image_sizes.queue'), config('vuefilemanager.image_sizes.execute')))
->map(fn ($item) => $item['name'] . '-' . $basename);
return collect([
config('vuefilemanager.image_sizes.queue'),
config('vuefilemanager.image_sizes.execute'),
])->collapse()
->map(fn ($item) => $item['name'] . '-' . $basename);
}
}

View File

@@ -53,7 +53,10 @@ class FileTest extends TestCase
"chunks/$file->basename"
);
collect(array_merge(config('vuefilemanager.image_sizes.queue'), config('vuefilemanager.image_sizes.execute')))
collect([
config('vuefilemanager.image_sizes.queue'),
config('vuefilemanager.image_sizes.execute'),
])->collapse()
->each(
fn ($item) =>
$disk->assertExists(

View File

@@ -646,7 +646,7 @@ class TeamManagementTest extends TestCase
// Put fake image into correct directory
Storage::putFileAs("files/$member->id", $fakeFile, $fakeFile->name);
$thumbnail_sizes = collect(array_merge(config('vuefilemanager.image_sizes.queue'), config('vuefilemanager.image_sizes.execute')));
$thumbnail_sizes = collect([config('vuefilemanager.image_sizes.queue'), config('vuefilemanager.image_sizes.execute')])->collapse();
// Create fake image thumbnails
$thumbnail_sizes

12
webpack.mix.js vendored
View File

@@ -35,12 +35,12 @@ mix.js('resources/js/main.js', 'public/js')
clientLogLevel: 'none'
}
})
.options({
hmrOptions: {
host: '192.168.1.112',
port: '8080'
},
})
// .options({
// hmrOptions: {
// host: '192.168.1.112',
// port: '8080'
// },
// })
.disableNotifications();
if (mix.inProduction()) {