mirror of
https://github.com/VueFileManager/vuefilemanager.git
synced 2026-04-05 18:23:48 +00:00
- demo notifications generator
- frontend build
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'version' => '2.0.0-Rc.3',
|
||||
'version' => '2.0.0-Rc.4',
|
||||
|
||||
'is_demo' => env('APP_DEMO', false),
|
||||
|
||||
|
||||
2
public/chunks/admin.js
vendored
2
public/chunks/admin.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/files.js
vendored
2
public/chunks/files.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/my-shared-items.js
vendored
2
public/chunks/my-shared-items.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/platform.js
vendored
2
public/chunks/platform.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/recent-uploads.js
vendored
2
public/chunks/recent-uploads.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/request-upload.js
vendored
2
public/chunks/request-upload.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/request.js
vendored
2
public/chunks/request.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/settings.js
vendored
2
public/chunks/settings.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/shared-with-me.js
vendored
2
public/chunks/shared-with-me.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/shared.js
vendored
2
public/chunks/shared.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/shared/browser.js
vendored
2
public/chunks/shared/browser.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/shared/single-file.js
vendored
2
public/chunks/shared/single-file.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/team-folders.js
vendored
2
public/chunks/team-folders.js
vendored
File diff suppressed because one or more lines are too long
2
public/chunks/trash.js
vendored
2
public/chunks/trash.js
vendored
File diff suppressed because one or more lines are too long
2
public/css/tailwind.css
vendored
2
public/css/tailwind.css
vendored
File diff suppressed because one or more lines are too long
2
public/js/main.js
vendored
2
public/js/main.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,3 +1,11 @@
|
||||
/*!
|
||||
* Pusher JavaScript Library v7.0.6
|
||||
* https://pusher.com/
|
||||
*
|
||||
* Copyright 2020, Pusher
|
||||
* Released under the MIT licence.
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Vue.js v2.6.14
|
||||
* (c) 2014-2021 Evan You
|
||||
|
||||
@@ -1,75 +1,75 @@
|
||||
{
|
||||
"/js/main.js": "/js/main.js",
|
||||
"/chunks/request.js": "/chunks/request.js?id=001f737452e0d25a",
|
||||
"/chunks/request-upload.js": "/chunks/request-upload.js?id=f50a50d2aa741c81",
|
||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
|
||||
"/chunks/status-check.js": "/chunks/status-check.js?id=6bae83a7e38d3b1c",
|
||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=0d001d4505d2f5e9",
|
||||
"/chunks/database.js": "/chunks/database.js?id=d5695176ac8edfb9",
|
||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=c58071cb9d14e595",
|
||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=ad92e971daa0f86d",
|
||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=286b9872565b5e96",
|
||||
"/chunks/shared.js": "/chunks/shared.js?id=584d7de11142b545",
|
||||
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=4722af71c3c7bba6",
|
||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=f60d6a95bc180df2",
|
||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=92c75a6c77689046",
|
||||
"/chunks/not-found.js": "/chunks/not-found.js?id=36763aa314e00327",
|
||||
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=a3906226272982b1",
|
||||
"/chunks/admin.js": "/chunks/admin.js?id=a9cc617d7342978a",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=e7c6001687e641eb",
|
||||
"/chunks/invoices.js": "/chunks/invoices.js?id=85fd4514d3d85a71",
|
||||
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=9f970bdfc7583080",
|
||||
"/chunks/pages.js": "/chunks/pages.js?id=38c76f5552161514",
|
||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=dbdaf49f7c709ab9",
|
||||
"/chunks/plans.js": "/chunks/plans.js?id=b5e1384c6e697927",
|
||||
"/chunks/users.js": "/chunks/users.js?id=8ea54582b0ccd769",
|
||||
"/chunks/user-create.js": "/chunks/user-create.js?id=c620606ec7eef9d7",
|
||||
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=5515d5a19259eadf",
|
||||
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=94d6ef85f6a58265",
|
||||
"/chunks/user.js": "/chunks/user.js?id=879268a26e94d198",
|
||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=4b171a846c808667",
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=835667dbe1fdf9b1",
|
||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=cf39975217b4e268",
|
||||
"/chunks/user-password.js": "/chunks/user-password.js?id=41e945a8e10bd4e4",
|
||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=2184dc78049878ec",
|
||||
"/chunks/plan.js": "/chunks/plan.js?id=37a04161ac1973ad",
|
||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=5c4c760ab08a59c6",
|
||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=b1d3ffbb79e69310",
|
||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=4e9d13b048f1d8f0",
|
||||
"/chunks/payments.js": "/chunks/payments.js?id=2a6dba57de536b0d",
|
||||
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=e8f23f4fb51d2bb2",
|
||||
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=4e3da3de7b57a89a",
|
||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=ac94675bfea2ac48",
|
||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=19980ab8fd75125c",
|
||||
"/chunks/app-index.js": "/chunks/app-index.js?id=d1722a2c5d30b142",
|
||||
"/chunks/app-environment.js": "/chunks/app-environment.js?id=7018c929bffb3a78",
|
||||
"/chunks/app-others.js": "/chunks/app-others.js?id=ecbfebacc4f269cb",
|
||||
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=11df2ce06e785892",
|
||||
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=ec2fa21b02c99cb9",
|
||||
"/chunks/app-server.js": "/chunks/app-server.js?id=8964b98aee4cca69",
|
||||
"/chunks/app-language.js": "/chunks/app-language.js?id=2ae6285274dacd0d",
|
||||
"/chunks/homepage.js": "/chunks/homepage.js?id=1b595dee57a8f161",
|
||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=f8c67b2a376ff03e",
|
||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=3c7d7bba5e7fc172",
|
||||
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=261b02aed36069be",
|
||||
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=fe054c1e34d7863b",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=115555a1dd6fea58",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=098d7f41b85066bf",
|
||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=d6193ed0b07e7957",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=d00212636148a14b",
|
||||
"/chunks/settings.js": "/chunks/settings.js?id=71ee8010419a7b69",
|
||||
"/chunks/profile.js": "/chunks/profile.js?id=1217f457145491ec",
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=b6704f4cbf14c67d",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=90ba712f3728443b",
|
||||
"/chunks/billing.js": "/chunks/billing.js?id=27957f2477fdd121",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=4001e2c2fd8b27ce",
|
||||
"/chunks/files.js": "/chunks/files.js?id=0d4e7a1330328eae",
|
||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=2362f8fa4e3392e9",
|
||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=25e9d29dd3c29338",
|
||||
"/chunks/trash.js": "/chunks/trash.js?id=5bc0e04ada660232",
|
||||
"/chunks/team-folders.js": "/chunks/team-folders.js?id=cf60b121819ca1a5",
|
||||
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=bdbbd7e2225a6db9",
|
||||
"/chunks/invitation.js": "/chunks/invitation.js?id=e3f3c2e3501c5a63",
|
||||
"/chunks/request.js": "/chunks/request.js?id=03c31a1cd8f64e72",
|
||||
"/chunks/request-upload.js": "/chunks/request-upload.js?id=784524b07a0017ab",
|
||||
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=3c2fc454c3fce8d2",
|
||||
"/chunks/status-check.js": "/chunks/status-check.js?id=1ce085bce8a9e959",
|
||||
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=957577e6eb9bae5d",
|
||||
"/chunks/database.js": "/chunks/database.js?id=cd8195615624bf64",
|
||||
"/chunks/environment-setup.js": "/chunks/environment-setup.js?id=1153d1ccda1626d3",
|
||||
"/chunks/app-setup.js": "/chunks/app-setup.js?id=8f3130f31073813a",
|
||||
"/chunks/admin-account.js": "/chunks/admin-account.js?id=3ca1c2c54a26a225",
|
||||
"/chunks/shared.js": "/chunks/shared.js?id=01927c517d604fbb",
|
||||
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=c530775c48308276",
|
||||
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=c891200a0c11d7b4",
|
||||
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=dc1a48627066c81d",
|
||||
"/chunks/not-found.js": "/chunks/not-found.js?id=026c52609cff0249",
|
||||
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=250d923cb7001cf2",
|
||||
"/chunks/admin.js": "/chunks/admin.js?id=fce04ca9ae98919e",
|
||||
"/chunks/dashboard.js": "/chunks/dashboard.js?id=94dfb7c678309b6e",
|
||||
"/chunks/invoices.js": "/chunks/invoices.js?id=0817b6e71b0da736",
|
||||
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=aa4ca6695a4c43f2",
|
||||
"/chunks/pages.js": "/chunks/pages.js?id=b18e753a266e4d6e",
|
||||
"/chunks/page-edit.js": "/chunks/page-edit.js?id=0122891b250ee8c7",
|
||||
"/chunks/plans.js": "/chunks/plans.js?id=8950c28ea8d9273d",
|
||||
"/chunks/users.js": "/chunks/users.js?id=16f7770d2b8a7043",
|
||||
"/chunks/user-create.js": "/chunks/user-create.js?id=5b1f7e752521c02a",
|
||||
"/chunks/plan-create/fixed.js": "/chunks/plan-create/fixed.js?id=44bbf94f2267d262",
|
||||
"/chunks/plan-create/metered.js": "/chunks/plan-create/metered.js?id=cfb50d511c78ec04",
|
||||
"/chunks/user.js": "/chunks/user.js?id=c12de27dc40aef36",
|
||||
"/chunks/user-detail.js": "/chunks/user-detail.js?id=3c2bbf0a6ef97c1c",
|
||||
"/chunks/user-storage.js": "/chunks/user-storage.js?id=e5c9e1b59264172a",
|
||||
"/chunks/user-subscription.js": "/chunks/user-subscription.js?id=21154e4250e890b3",
|
||||
"/chunks/user-password.js": "/chunks/user-password.js?id=d6d72d8a0f08cac4",
|
||||
"/chunks/user-delete.js": "/chunks/user-delete.js?id=b95a20df2fd09190",
|
||||
"/chunks/plan.js": "/chunks/plan.js?id=2444730c1a0a42fc",
|
||||
"/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=f75a62dc82dfd06d",
|
||||
"/chunks/plan-settings.js": "/chunks/plan-settings.js?id=889139d2e1679331",
|
||||
"/chunks/plan-delete.js": "/chunks/plan-delete.js?id=14cb6e7146563c8c",
|
||||
"/chunks/payments.js": "/chunks/payments.js?id=5ea275fedd8d638a",
|
||||
"/chunks/payments/billings.js": "/chunks/payments/billings.js?id=a0757d9c2608d7ad",
|
||||
"/chunks/payments/settings.js": "/chunks/payments/settings.js?id=09b5ed53c184aefc",
|
||||
"/chunks/app-settings.js": "/chunks/app-settings.js?id=b0ca7cdad56e46fd",
|
||||
"/chunks/app-appearance.js": "/chunks/app-appearance.js?id=47f92b72e275c2c8",
|
||||
"/chunks/app-index.js": "/chunks/app-index.js?id=6255a58886c31bc6",
|
||||
"/chunks/app-environment.js": "/chunks/app-environment.js?id=9d37862ac5c57c1e",
|
||||
"/chunks/app-others.js": "/chunks/app-others.js?id=918ccb0a9edff971",
|
||||
"/chunks/app-sign-in-out.js": "/chunks/app-sign-in-out.js?id=9e6099c710a1f774",
|
||||
"/chunks/app-adsense.js": "/chunks/app-adsense.js?id=ce66e5cd4d33b77f",
|
||||
"/chunks/app-server.js": "/chunks/app-server.js?id=000b75779c7b2df7",
|
||||
"/chunks/app-language.js": "/chunks/app-language.js?id=9fea501b5651db74",
|
||||
"/chunks/homepage.js": "/chunks/homepage.js?id=cc55de7273bd9699",
|
||||
"/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=a20e623585f77df6",
|
||||
"/chunks/contact-us.js": "/chunks/contact-us.js?id=5d02f74ec520ae00",
|
||||
"/chunks/successfully-email-verified.js": "/chunks/successfully-email-verified.js?id=cadce663beaa7f88",
|
||||
"/chunks/successfully-email-send.js": "/chunks/successfully-email-send.js?id=f14b81ce738531a5",
|
||||
"/chunks/sign-in.js": "/chunks/sign-in.js?id=5d8ffa33a3b2ef19",
|
||||
"/chunks/sign-up.js": "/chunks/sign-up.js?id=7ef0f23926cf5303",
|
||||
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=283220c4946806d4",
|
||||
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=59775b0f2612479a",
|
||||
"/chunks/settings.js": "/chunks/settings.js?id=0bec2688576b2298",
|
||||
"/chunks/profile.js": "/chunks/profile.js?id=ec621bd75eada0ee",
|
||||
"/chunks/settings-password.js": "/chunks/settings-password.js?id=3e094b17498f56df",
|
||||
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=cddf4c1f69a29992",
|
||||
"/chunks/billing.js": "/chunks/billing.js?id=9a21ec44813c1ac7",
|
||||
"/chunks/platform.js": "/chunks/platform.js?id=6ffadcbcf86dc5ab",
|
||||
"/chunks/files.js": "/chunks/files.js?id=fd71f31714a64a8b",
|
||||
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=8c21be0d599d5561",
|
||||
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=4c02f15bed9ef243",
|
||||
"/chunks/trash.js": "/chunks/trash.js?id=9c6d6189b5573a73",
|
||||
"/chunks/team-folders.js": "/chunks/team-folders.js?id=7ab5bcc233cb5e1d",
|
||||
"/chunks/shared-with-me.js": "/chunks/shared-with-me.js?id=8161d1d553faf2d6",
|
||||
"/chunks/invitation.js": "/chunks/invitation.js?id=4884f1794da246a6",
|
||||
"/css/tailwind.css": "/css/tailwind.css",
|
||||
"/css/app.css": "/css/app.css"
|
||||
}
|
||||
|
||||
224
src/App/Console/Commands/DemoNotificationDataCommand.php
Normal file
224
src/App/Console/Commands/DemoNotificationDataCommand.php
Normal file
@@ -0,0 +1,224 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Users\Models\User;
|
||||
use Illuminate\Support\Str;
|
||||
use Domain\Files\Models\File;
|
||||
use Illuminate\Console\Command;
|
||||
use Domain\Folders\Models\Folder;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use Illuminate\Foundation\Testing\WithFaker;
|
||||
use Domain\Teams\Models\TeamFolderInvitation;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
|
||||
class DemoNotificationDataCommand extends Command
|
||||
{
|
||||
use WithFaker;
|
||||
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*/
|
||||
protected $signature = 'demo:notifications';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*/
|
||||
protected $description = 'Set up demo notifications data';
|
||||
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*/
|
||||
public function handle(): void
|
||||
{
|
||||
$this->info('Setting up notification demo data');
|
||||
|
||||
$this->generateTeamInvitationNotification();
|
||||
$this->generateFileRequestFilledNotification();
|
||||
|
||||
$this->info('Everything is done, congratulations! 🥳🥳🥳');
|
||||
}
|
||||
|
||||
private function generateTeamInvitationNotification()
|
||||
{
|
||||
$alice = User::whereEmail('alice@hi5ve.digital')
|
||||
->first();
|
||||
|
||||
$howdy = User::whereEmail('howdy@hi5ve.digital')
|
||||
->first();
|
||||
|
||||
$newV2Wallpaper = Folder::factory()
|
||||
->create([
|
||||
'user_id' => $alice->id,
|
||||
'team_folder' => true,
|
||||
'name' => 'New v2 Wallpaper',
|
||||
]);
|
||||
|
||||
$invitation = TeamFolderInvitation::factory()
|
||||
->create([
|
||||
'email' => 'howdy@hi5ve.digital',
|
||||
'parent_id' => $newV2Wallpaper->id,
|
||||
'inviter_id' => $newV2Wallpaper->user_id,
|
||||
'status' => 'pending',
|
||||
'permission' => 'can-edit',
|
||||
]);
|
||||
|
||||
DB::table('notifications')
|
||||
->insert([
|
||||
'id' => Str::uuid(),
|
||||
'type' => 'Domain\UploadRequest\Notifications\UploadRequestFulfilledNotification',
|
||||
'notifiable_type' => 'App\Users\Models\User',
|
||||
'notifiable_id' => $howdy->id,
|
||||
'data' => json_encode([
|
||||
'type' => 'team-invitation',
|
||||
'title' => 'New Team Invitation',
|
||||
'description' => "Jane Doe invite you to join into Team Folder.",
|
||||
'action' => [
|
||||
'type' => 'invitation',
|
||||
'params' => [
|
||||
'id' => $invitation->id,
|
||||
],
|
||||
],
|
||||
]),
|
||||
'read_at' => now(),
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
}
|
||||
|
||||
private function generateFileRequestFilledNotification()
|
||||
{
|
||||
$howdy = User::whereEmail('howdy@hi5ve.digital')
|
||||
->first();
|
||||
|
||||
$sharedFolder = Folder::where('name', 'Shared Folder')
|
||||
->first();
|
||||
|
||||
$fileRequestFolder = Folder::factory()
|
||||
->create([
|
||||
'parent_id' => $sharedFolder->id,
|
||||
'user_id' => $howdy->id,
|
||||
'team_folder' => false,
|
||||
'name' => 'Upload Request from 10. Mar. 2022',
|
||||
]);
|
||||
|
||||
DB::table('notifications')
|
||||
->insert([
|
||||
'id' => Str::uuid(),
|
||||
'type' => 'Domain\UploadRequest\Notifications\UploadRequestFulfilledNotification',
|
||||
'notifiable_type' => 'App\Users\Models\User',
|
||||
'notifiable_id' => $howdy->id,
|
||||
'data' => json_encode([
|
||||
'type' => 'file-request',
|
||||
'title' => 'File Request Filled',
|
||||
'description' => "Your file request for 'Shared Folder' folder was filled successfully.",
|
||||
'action' => [
|
||||
'type' => 'route',
|
||||
'params' => [
|
||||
'route' => 'Files',
|
||||
'button' => 'Show Files',
|
||||
'id' => $fileRequestFolder->id,
|
||||
],
|
||||
],
|
||||
]),
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]);
|
||||
|
||||
// Get meme gallery
|
||||
collect([
|
||||
'demo/request/v2-wallpaper.jpg',
|
||||
])
|
||||
->each(function ($file) use ($howdy, $fileRequestFolder) {
|
||||
$thumbnail = $this->generate_thumbnails($file, $howdy);
|
||||
|
||||
// Create file record
|
||||
File::create([
|
||||
'parent_id' => $fileRequestFolder->id,
|
||||
'user_id' => $howdy->id,
|
||||
'name' => $thumbnail['name'],
|
||||
'basename' => $thumbnail['basename'],
|
||||
'type' => 'image',
|
||||
'author' => 'user',
|
||||
'mimetype' => 'jpg',
|
||||
'filesize' => rand(1000000, 4000000),
|
||||
'created_at' => now()->subMinutes(rand(1, 5)),
|
||||
]);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $avatar
|
||||
* @return string
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
*/
|
||||
private function generate_avatar($avatar): string
|
||||
{
|
||||
$image = \Illuminate\Support\Facades\File::get(storage_path("/demo/avatars/{$avatar}"));
|
||||
|
||||
// Create avatar name
|
||||
$avatar_name = Str::uuid() . '.png';
|
||||
|
||||
// Create intervention image
|
||||
$img = Image::make($image);
|
||||
|
||||
$this->info("Generating thumbnails for $avatar...");
|
||||
|
||||
// Generate avatar
|
||||
collect(config('vuefilemanager.avatar_sizes'))
|
||||
->each(function ($size) use ($img, $avatar_name) {
|
||||
// fit thumbnail
|
||||
$img->fit($size['size'], $size['size'])->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("avatars/{$size['name']}-{$avatar_name}", $img);
|
||||
});
|
||||
|
||||
return $avatar_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $file
|
||||
* @param $user
|
||||
* @return string
|
||||
* @throws \Illuminate\Contracts\Filesystem\FileNotFoundException
|
||||
*/
|
||||
private function generate_thumbnails($file, $user): array
|
||||
{
|
||||
// Create image name
|
||||
$file_name = Str::uuid() . '.jpg';
|
||||
|
||||
$this->info("Generating thumbnails for $file...");
|
||||
|
||||
// Generate avatar sizes
|
||||
collect([
|
||||
config('vuefilemanager.image_sizes.later'),
|
||||
config('vuefilemanager.image_sizes.immediately'),
|
||||
])->collapse()
|
||||
->each(function ($size) use ($file_name, $user, $file) {
|
||||
$image = \Illuminate\Support\Facades\File::get(storage_path($file));
|
||||
|
||||
// Create intervention image
|
||||
$intervention = Image::make($image)->orientate();
|
||||
|
||||
// Create thumbnail only if image is larger than predefined image sizes
|
||||
if ($intervention->getWidth() > $size['size']) {
|
||||
// Generate thumbnail
|
||||
$intervention->resize($size['size'], null, fn($constraint) => $constraint->aspectRatio())->stream();
|
||||
|
||||
// Store thumbnail to disk
|
||||
Storage::put("files/$user->id/{$size['name']}-{$file_name}", $intervention);
|
||||
}
|
||||
});
|
||||
|
||||
// Store original to disk
|
||||
Storage::putFileAs("files/$user->id", storage_path($file), $file_name, 'private');
|
||||
|
||||
return [
|
||||
'basename' => $file_name,
|
||||
'name' => head(explode('.', last(explode('/', $file)))),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
<?php
|
||||
namespace App\Console;
|
||||
|
||||
use App\Console\Commands\DemoNotificationDataCommand;
|
||||
use Illuminate\Console\Scheduling\Schedule;
|
||||
use App\Console\Commands\SetupDevEnvironment;
|
||||
use App\Console\Commands\SetupProdEnvironment;
|
||||
@@ -20,6 +21,9 @@ class Kernel extends ConsoleKernel
|
||||
* @var array
|
||||
*/
|
||||
protected $commands = [
|
||||
// V2 demo updates
|
||||
DemoNotificationDataCommand::class,
|
||||
|
||||
// Basic demo content generator
|
||||
SetupDevEnvironment::class,
|
||||
SetupProdEnvironment::class,
|
||||
|
||||
BIN
storage/demo/request/v2-wallpaper.jpg
Normal file
BIN
storage/demo/request/v2-wallpaper.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 383 KiB |
Reference in New Issue
Block a user