diff --git a/app/FileManagerFile.php b/app/FileManagerFile.php
index e16ae48f..ab6f47b4 100644
--- a/app/FileManagerFile.php
+++ b/app/FileManagerFile.php
@@ -116,8 +116,8 @@ class FileManagerFile extends Model
*/
public function getThumbnailAttribute()
{
- // Get thumbnail from s3
- if ($this->attributes['thumbnail'] && is_storage_driver(['s3', 'spaces'])) {
+ // Get thumbnail from external storage
+ if ($this->attributes['thumbnail'] && is_storage_driver(['s3', 'spaces', 'wasabi', 'backblaze'])) {
return Storage::temporaryUrl('file-manager/' . $this->attributes['thumbnail'], now()->addHour());
}
@@ -146,7 +146,7 @@ class FileManagerFile extends Model
public function getFileUrlAttribute()
{
// Get file from s3
- if (is_storage_driver(['s3', 'spaces'])) {
+ if (is_storage_driver(['s3', 'spaces', 'wasabi', 'backblaze'])) {
$header = [
"ResponseAcceptRanges" => "bytes",
diff --git a/app/User.php b/app/User.php
index 8c1c78fe..f9cd412f 100644
--- a/app/User.php
+++ b/app/User.php
@@ -10,6 +10,7 @@ use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Notification;
+use Illuminate\Support\Facades\Storage;
use Laravel\Cashier\Billable;
use Laravel\Passport\HasApiTokens;
use Rinvex\Subscriptions\Traits\HasSubscriptions;
@@ -151,6 +152,11 @@ class User extends Authenticatable
return $user_capacity;
}
+ /**
+ * Get user full folder tree
+ *
+ * @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection
+ */
public function getFolderTreeAttribute()
{
return FileManagerFolder::with(['folders.shared', 'shared:token,id,item_id,permission,protected'])
@@ -166,6 +172,13 @@ class User extends Authenticatable
*/
public function getAvatarAttribute()
{
+ // Get avatar from external storage
+ if ($this->attributes['avatar'] && is_storage_driver(['s3', 'spaces', 'wasabi', 'backblaze'])) {
+
+ return Storage::temporaryUrl($this->attributes['avatar'], now()->addDay());
+ }
+
+ // Get avatar from local storage
if ($this->attributes['avatar']) {
return url('/' . $this->attributes['avatar']);
}
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index 401d23e3..3ab4f63b 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -239,5 +239,59 @@
"/js/main.f7ea32b1bdd7d5893101.hot-update.js": "/js/main.f7ea32b1bdd7d5893101.hot-update.js",
"/js/main.bb919bf230ccfd1da5ad.hot-update.js": "/js/main.bb919bf230ccfd1da5ad.hot-update.js",
"/js/main.c339a8942aeb56673ce8.hot-update.js": "/js/main.c339a8942aeb56673ce8.hot-update.js",
- "/js/main.666b5bd039ecb83ba849.hot-update.js": "/js/main.666b5bd039ecb83ba849.hot-update.js"
+ "/js/main.666b5bd039ecb83ba849.hot-update.js": "/js/main.666b5bd039ecb83ba849.hot-update.js",
+ "/js/main.5d6bd6229cad21177b5d.hot-update.js": "/js/main.5d6bd6229cad21177b5d.hot-update.js",
+ "/js/main.1314bd7b0155050142db.hot-update.js": "/js/main.1314bd7b0155050142db.hot-update.js",
+ "/js/main.c55d0aaf47449e57f28f.hot-update.js": "/js/main.c55d0aaf47449e57f28f.hot-update.js",
+ "/js/main.1ebff55b9a709134bdf9.hot-update.js": "/js/main.1ebff55b9a709134bdf9.hot-update.js",
+ "/js/main.d9e14c4f874d9aae2991.hot-update.js": "/js/main.d9e14c4f874d9aae2991.hot-update.js",
+ "/js/main.6aad28750a58dc8a1a84.hot-update.js": "/js/main.6aad28750a58dc8a1a84.hot-update.js",
+ "/js/main.a4a5e491361ca05ac530.hot-update.js": "/js/main.a4a5e491361ca05ac530.hot-update.js",
+ "/js/main.ab40d76d1114a2a348d9.hot-update.js": "/js/main.ab40d76d1114a2a348d9.hot-update.js",
+ "/js/main.272e7fc5df78185ef223.hot-update.js": "/js/main.272e7fc5df78185ef223.hot-update.js",
+ "/js/main.3980c9d6032f6d9893d6.hot-update.js": "/js/main.3980c9d6032f6d9893d6.hot-update.js",
+ "/js/main.3fd1ae93571bb5fe8493.hot-update.js": "/js/main.3fd1ae93571bb5fe8493.hot-update.js",
+ "/js/main.c9097f4a153e7fd3e0bd.hot-update.js": "/js/main.c9097f4a153e7fd3e0bd.hot-update.js",
+ "/js/main.89cbccfdfb280c101229.hot-update.js": "/js/main.89cbccfdfb280c101229.hot-update.js",
+ "/js/main.3a92cbc41ec25d8e2018.hot-update.js": "/js/main.3a92cbc41ec25d8e2018.hot-update.js",
+ "/js/main.2a86157426eb177cc6f2.hot-update.js": "/js/main.2a86157426eb177cc6f2.hot-update.js",
+ "/js/main.411caab58470390ff0bd.hot-update.js": "/js/main.411caab58470390ff0bd.hot-update.js",
+ "/js/main.d594e00eec3ae4abd751.hot-update.js": "/js/main.d594e00eec3ae4abd751.hot-update.js",
+ "/js/main.70d17783fe28bf990276.hot-update.js": "/js/main.70d17783fe28bf990276.hot-update.js",
+ "/js/main.c7bc397e2e421f0141fc.hot-update.js": "/js/main.c7bc397e2e421f0141fc.hot-update.js",
+ "/js/main.815d02e7f3f9f8841915.hot-update.js": "/js/main.815d02e7f3f9f8841915.hot-update.js",
+ "/js/main.d40b9abc043ed8480a8a.hot-update.js": "/js/main.d40b9abc043ed8480a8a.hot-update.js",
+ "/js/main.19a9789de3de21c4b8eb.hot-update.js": "/js/main.19a9789de3de21c4b8eb.hot-update.js",
+ "/js/main.8be11c6045cb66da58d1.hot-update.js": "/js/main.8be11c6045cb66da58d1.hot-update.js",
+ "/js/main.1983ca165da1e65707ed.hot-update.js": "/js/main.1983ca165da1e65707ed.hot-update.js",
+ "/js/main.7a29b122f46980bbd2ef.hot-update.js": "/js/main.7a29b122f46980bbd2ef.hot-update.js",
+ "/js/main.ddb45dcd7b4091c5ac5f.hot-update.js": "/js/main.ddb45dcd7b4091c5ac5f.hot-update.js",
+ "/js/main.7d7ac6845f8c792a4476.hot-update.js": "/js/main.7d7ac6845f8c792a4476.hot-update.js",
+ "/js/main.ae16004d1621864211e7.hot-update.js": "/js/main.ae16004d1621864211e7.hot-update.js",
+ "/js/main.84b099565f7cb44a5aae.hot-update.js": "/js/main.84b099565f7cb44a5aae.hot-update.js",
+ "/js/main.61d6dc70f0b4a8d69347.hot-update.js": "/js/main.61d6dc70f0b4a8d69347.hot-update.js",
+ "/js/main.6d77e25fc48e11872fb5.hot-update.js": "/js/main.6d77e25fc48e11872fb5.hot-update.js",
+ "/js/main.e52f1368604fe28cad40.hot-update.js": "/js/main.e52f1368604fe28cad40.hot-update.js",
+ "/js/main.0d074a932a774d85ed24.hot-update.js": "/js/main.0d074a932a774d85ed24.hot-update.js",
+ "/js/main.9372920546a93ccc4f10.hot-update.js": "/js/main.9372920546a93ccc4f10.hot-update.js",
+ "/js/main.e865592c8390a29c196a.hot-update.js": "/js/main.e865592c8390a29c196a.hot-update.js",
+ "/js/main.a405908c3c0bda177afe.hot-update.js": "/js/main.a405908c3c0bda177afe.hot-update.js",
+ "/js/main.40ee7f6bbbdb4944b217.hot-update.js": "/js/main.40ee7f6bbbdb4944b217.hot-update.js",
+ "/js/main.0ca213bc260327e5c44c.hot-update.js": "/js/main.0ca213bc260327e5c44c.hot-update.js",
+ "/js/main.1917f89d4150ee8fa356.hot-update.js": "/js/main.1917f89d4150ee8fa356.hot-update.js",
+ "/js/main.f61541d93f712f3870ca.hot-update.js": "/js/main.f61541d93f712f3870ca.hot-update.js",
+ "/js/main.ebf234ddd5de8b436e8c.hot-update.js": "/js/main.ebf234ddd5de8b436e8c.hot-update.js",
+ "/js/main.fb8288157f51ae2a8545.hot-update.js": "/js/main.fb8288157f51ae2a8545.hot-update.js",
+ "/js/main.16962ba62f72f7247d29.hot-update.js": "/js/main.16962ba62f72f7247d29.hot-update.js",
+ "/js/main.039a8cc665108287b217.hot-update.js": "/js/main.039a8cc665108287b217.hot-update.js",
+ "/js/main.ee47b865bc9872684964.hot-update.js": "/js/main.ee47b865bc9872684964.hot-update.js",
+ "/js/main.63b6901d1d22c6ac0984.hot-update.js": "/js/main.63b6901d1d22c6ac0984.hot-update.js",
+ "/js/main.45cbdbd7827041cbf512.hot-update.js": "/js/main.45cbdbd7827041cbf512.hot-update.js",
+ "/js/main.3e33271a12bfec030777.hot-update.js": "/js/main.3e33271a12bfec030777.hot-update.js",
+ "/js/main.5dbd0ab9a4c5232667e8.hot-update.js": "/js/main.5dbd0ab9a4c5232667e8.hot-update.js",
+ "/js/main.04e901a4b402b51a750f.hot-update.js": "/js/main.04e901a4b402b51a750f.hot-update.js",
+ "/js/main.4558580a594cbc8eff6c.hot-update.js": "/js/main.4558580a594cbc8eff6c.hot-update.js",
+ "/js/main.dba2bd0ad2b7d3512714.hot-update.js": "/js/main.dba2bd0ad2b7d3512714.hot-update.js",
+ "/js/main.5a7ca08ce1752a485326.hot-update.js": "/js/main.5a7ca08ce1752a485326.hot-update.js",
+ "/js/main.1a592bc84a9da2723333.hot-update.js": "/js/main.1a592bc84a9da2723333.hot-update.js"
}
diff --git a/resources/js/components/Mobile/MenuItemList.vue b/resources/js/components/Mobile/MenuItemList.vue
index ad1242e6..6cd68bcc 100644
--- a/resources/js/components/Mobile/MenuItemList.vue
+++ b/resources/js/components/Mobile/MenuItemList.vue
@@ -15,6 +15,8 @@
+
+