15 changed files with 948 additions and 700 deletions
-
7app/Entities/Projects/Job.php
-
13app/Entities/Projects/JobsRepository.php
-
12app/Http/Controllers/JobsController.php
-
31app/Http/Controllers/Projects/FilesController.php
-
150config/medialibrary.php
-
38database/migrations/2019_06_29_145856_create_media_table.php
-
1resources/lang/de/job.php
-
1resources/lang/en/job.php
-
1resources/lang/id/job.php
-
12resources/views/jobs/edit.blade.php
-
11resources/views/jobs/partials/job-show.blade.php
-
5routes/web/projects.php
@ -0,0 +1,150 @@ |
|||||
|
<?php |
||||
|
|
||||
|
return [ |
||||
|
|
||||
|
/* |
||||
|
* The disk on which to store added files and derived images by default. Choose |
||||
|
* one or more of the disks you've configured in config/filesystems.php. |
||||
|
*/ |
||||
|
'disk_name' => 'public', |
||||
|
|
||||
|
/* |
||||
|
* The maximum file size of an item in bytes. |
||||
|
* Adding a larger file will result in an exception. |
||||
|
*/ |
||||
|
'max_file_size' => 1024 * 1024 * 10, |
||||
|
|
||||
|
/* |
||||
|
* This queue will be used to generate derived and responsive images. |
||||
|
* Leave empty to use the default queue. |
||||
|
*/ |
||||
|
'queue_name' => '', |
||||
|
|
||||
|
/* |
||||
|
* The fully qualified class name of the media model. |
||||
|
*/ |
||||
|
'media_model' => Spatie\MediaLibrary\Models\Media::class, |
||||
|
|
||||
|
's3' => [ |
||||
|
/* |
||||
|
* The domain that should be prepended when generating urls. |
||||
|
*/ |
||||
|
'domain' => 'https://'.env('AWS_BUCKET').'.s3.amazonaws.com', |
||||
|
], |
||||
|
|
||||
|
'remote' => [ |
||||
|
/* |
||||
|
* Any extra headers that should be included when uploading media to |
||||
|
* a remote disk. Even though supported headers may vary between |
||||
|
* different drivers, a sensible default has been provided. |
||||
|
* |
||||
|
* Supported by S3: CacheControl, Expires, StorageClass, |
||||
|
* ServerSideEncryption, Metadata, ACL, ContentEncoding |
||||
|
*/ |
||||
|
'extra_headers' => [ |
||||
|
'CacheControl' => 'max-age=604800', |
||||
|
], |
||||
|
], |
||||
|
|
||||
|
'responsive_images' => [ |
||||
|
|
||||
|
/* |
||||
|
* This class is responsible for calculating the target widths of the responsive |
||||
|
* images. By default we optimize for filesize and create variations that each are 20% |
||||
|
* smaller than the previous one. More info in the documentation. |
||||
|
* |
||||
|
* https://docs.spatie.be/laravel-medialibrary/v7/advanced-usage/generating-responsive-images |
||||
|
*/ |
||||
|
'width_calculator' => Spatie\MediaLibrary\ResponsiveImages\WidthCalculator\FileSizeOptimizedWidthCalculator::class, |
||||
|
|
||||
|
/* |
||||
|
* By default rendering media to a responsive image will add some javascript and a tiny placeholder. |
||||
|
* This ensures that the browser can already determine the correct layout. |
||||
|
*/ |
||||
|
'use_tiny_placeholders' => true, |
||||
|
|
||||
|
/* |
||||
|
* This class will generate the tiny placeholder used for progressive image loading. By default |
||||
|
* the medialibrary will use a tiny blurred jpg image. |
||||
|
*/ |
||||
|
'tiny_placeholder_generator' => Spatie\MediaLibrary\ResponsiveImages\TinyPlaceholderGenerator\Blurred::class, |
||||
|
], |
||||
|
|
||||
|
/* |
||||
|
* When urls to files get generated, this class will be called. Leave empty |
||||
|
* if your files are stored locally above the site root or on s3. |
||||
|
*/ |
||||
|
'url_generator' => null, |
||||
|
|
||||
|
/* |
||||
|
* The class that contains the strategy for determining a media file's path. |
||||
|
*/ |
||||
|
'path_generator' => null, |
||||
|
|
||||
|
/* |
||||
|
* Medialibrary will try to optimize all converted images by removing |
||||
|
* metadata and applying a little bit of compression. These are |
||||
|
* the optimizers that will be used by default. |
||||
|
*/ |
||||
|
'image_optimizers' => [ |
||||
|
Spatie\ImageOptimizer\Optimizers\Jpegoptim::class => [ |
||||
|
'--strip-all', // this strips out all text information such as comments and EXIF data
|
||||
|
'--all-progressive', // this will make sure the resulting image is a progressive one
|
||||
|
], |
||||
|
Spatie\ImageOptimizer\Optimizers\Pngquant::class => [ |
||||
|
'--force', // required parameter for this package
|
||||
|
], |
||||
|
Spatie\ImageOptimizer\Optimizers\Optipng::class => [ |
||||
|
'-i0', // this will result in a non-interlaced, progressive scanned image
|
||||
|
'-o2', // this set the optimization level to two (multiple IDAT compression trials)
|
||||
|
'-quiet', // required parameter for this package
|
||||
|
], |
||||
|
Spatie\ImageOptimizer\Optimizers\Svgo::class => [ |
||||
|
'--disable=cleanupIDs', // disabling because it is known to cause troubles
|
||||
|
], |
||||
|
Spatie\ImageOptimizer\Optimizers\Gifsicle::class => [ |
||||
|
'-b', // required parameter for this package
|
||||
|
'-O3', // this produces the slowest but best results
|
||||
|
], |
||||
|
], |
||||
|
|
||||
|
/* |
||||
|
* These generators will be used to create an image of media files. |
||||
|
*/ |
||||
|
'image_generators' => [ |
||||
|
Spatie\MediaLibrary\ImageGenerators\FileTypes\Image::class, |
||||
|
Spatie\MediaLibrary\ImageGenerators\FileTypes\Webp::class, |
||||
|
Spatie\MediaLibrary\ImageGenerators\FileTypes\Pdf::class, |
||||
|
Spatie\MediaLibrary\ImageGenerators\FileTypes\Svg::class, |
||||
|
Spatie\MediaLibrary\ImageGenerators\FileTypes\Video::class, |
||||
|
], |
||||
|
|
||||
|
/* |
||||
|
* The engine that should perform the image conversions. |
||||
|
* Should be either `gd` or `imagick`. |
||||
|
*/ |
||||
|
'image_driver' => 'gd', |
||||
|
|
||||
|
/* |
||||
|
* FFMPEG & FFProbe binaries paths, only used if you try to generate video |
||||
|
* thumbnails and have installed the php-ffmpeg/php-ffmpeg composer |
||||
|
* dependency. |
||||
|
*/ |
||||
|
'ffmpeg_path' => env('FFMPEG_PATH', '/usr/bin/ffmpeg'), |
||||
|
'ffprobe_path' => env('FFPROBE_PATH', '/usr/bin/ffprobe'), |
||||
|
|
||||
|
/* |
||||
|
* The path where to store temporary files while performing image conversions. |
||||
|
* If set to null, storage_path('medialibrary/temp') will be used. |
||||
|
*/ |
||||
|
'temporary_directory_path' => null, |
||||
|
|
||||
|
/* |
||||
|
* Here you can override the class names of the jobs used by this package. Make sure |
||||
|
* your custom jobs extend the ones provided by the package. |
||||
|
*/ |
||||
|
'jobs' => [ |
||||
|
'perform_conversions' => Spatie\MediaLibrary\Jobs\PerformConversions::class, |
||||
|
'generate_responsive_images' => Spatie\MediaLibrary\Jobs\GenerateResponsiveImages::class, |
||||
|
], |
||||
|
]; |
||||
@ -0,0 +1,38 @@ |
|||||
|
<?php |
||||
|
|
||||
|
use Illuminate\Support\Facades\Schema; |
||||
|
use Illuminate\Database\Schema\Blueprint; |
||||
|
use Illuminate\Database\Migrations\Migration; |
||||
|
|
||||
|
class CreateMediaTable extends Migration |
||||
|
{ |
||||
|
/** |
||||
|
* Run the migrations. |
||||
|
*/ |
||||
|
public function up() |
||||
|
{ |
||||
|
Schema::create('media', function (Blueprint $table) { |
||||
|
$table->increments('id'); |
||||
|
$table->morphs('model'); |
||||
|
$table->string('collection_name'); |
||||
|
$table->string('name'); |
||||
|
$table->string('file_name'); |
||||
|
$table->string('mime_type')->nullable(); |
||||
|
$table->string('disk'); |
||||
|
$table->unsignedInteger('size'); |
||||
|
$table->json('manipulations'); |
||||
|
$table->json('custom_properties'); |
||||
|
$table->json('responsive_images'); |
||||
|
$table->unsignedInteger('order_column')->nullable(); |
||||
|
$table->nullableTimestamps(); |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
/** |
||||
|
* Reverse the migrations. |
||||
|
*/ |
||||
|
public function down() |
||||
|
{ |
||||
|
Schema::dropIfExists('media'); |
||||
|
} |
||||
|
} |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue