diff --git a/app/Http/Controllers/FileAccessController.php b/app/Http/Controllers/FileAccessController.php index 54711b04..0b3b66be 100644 --- a/app/Http/Controllers/FileAccessController.php +++ b/app/Http/Controllers/FileAccessController.php @@ -5,6 +5,7 @@ namespace App\Http\Controllers; use App\FileManagerFolder; use App\Http\Tools\Guardian; use App\Share; +use App\User; use Illuminate\Support\Arr; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; @@ -84,6 +85,9 @@ class FileAccessController extends Controller $this->check_file_access($shared, $file); } + // Store user download size + $request->user()->record_download((int) $file->getRawOriginal('filesize')); + return $this->download_file($file); } @@ -113,6 +117,9 @@ class FileAccessController extends Controller // Check file access $this->check_file_access($shared, $file); + // Store user download size + User::find($shared->user_id)->record_download((int) $file->getRawOriginal('filesize')); + return $this->download_file($file); } diff --git a/app/Http/Controllers/Sharing/FileSharingController.php b/app/Http/Controllers/Sharing/FileSharingController.php index 1534c038..f04f39c4 100644 --- a/app/Http/Controllers/Sharing/FileSharingController.php +++ b/app/Http/Controllers/Sharing/FileSharingController.php @@ -58,6 +58,10 @@ class FileSharingController extends Controller ->first(); if ($image) { + + // Store user download size + User::find($shared->user_id)->record_download((int) $image->getRawOriginal('filesize')); + return $this->show_image($image); } } diff --git a/app/Http/Tools/Editor.php b/app/Http/Tools/Editor.php index 7729efb2..36df97f2 100644 --- a/app/Http/Tools/Editor.php +++ b/app/Http/Tools/Editor.php @@ -308,6 +308,9 @@ class Editor 'user_id' => $user_id, ]; + // Store user upload size + $request->user()->record_upload($file_size); + // Return new file return FileManagerFile::create($options); } diff --git a/app/Traffic.php b/app/Traffic.php new file mode 100644 index 00000000..6aae7bf0 --- /dev/null +++ b/app/Traffic.php @@ -0,0 +1,10 @@ + $this->used_capacity, + 'used' => $this->used_capacity, 'used_formatted' => Metric::bytes($this->used_capacity)->format(), ]; } @@ -252,6 +253,40 @@ class User extends Authenticatable $this->notify(new ResetPassword($token)); } + /** + * Record user upload filesize + * + * @param $file_size + */ + public function record_upload($file_size) + { + $record = Traffic::whereMonth('created_at', '=', Carbon::now()->month) + ->firstOrCreate([ + 'user_id' => $this->id, + ]); + + $record->update([ + 'upload' => $record->upload + $file_size + ]); + } + + /** + * Record user download filesize + * + * @param $file_size + */ + public function record_download($file_size) + { + $record = Traffic::whereMonth('created_at', '=', Carbon::now()->month) + ->firstOrCreate([ + 'user_id' => $this->id, + ]); + + $record->update([ + 'download' => $record->download + $file_size + ]); + } + /** * Get user favourites folder * diff --git a/database/migrations/2020_11_22_101014_create_traffic_table.php b/database/migrations/2020_11_22_101014_create_traffic_table.php new file mode 100644 index 00000000..05416120 --- /dev/null +++ b/database/migrations/2020_11_22_101014_create_traffic_table.php @@ -0,0 +1,33 @@ +bigInteger('user_id'); + $table->bigInteger('upload')->default(0); + $table->bigInteger('download')->default(0); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('traffics'); + } +} diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 4ad73f56..f7477bea 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -22,28 +22,28 @@ "/chunks/contact-us.js": "/chunks/contact-us.js?id=f13ecb6e4405aa7e06d2", "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js": "/chunks/contact-us~chunks/dynamic-page~chunks/landing-page.js?id=8b11e9c64262b9275963", "/chunks/create-new-password.js": "/chunks/create-new-password.js?id=abb47a424c09ace77d79", - "/chunks/dashboard.js": "/chunks/dashboard.js?id=74ec544ef21261233eb0", + "/chunks/dashboard.js": "/chunks/dashboard.js?id=10beadd171f2bb0cf67c", "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plan-subscribers~chunks/plans~chunks/settings-i~0e2a0654.js?id=ffd2f414666d7cc80b9d", "/chunks/database.js": "/chunks/database.js?id=416a5164bdc53c97ea34", "/chunks/dynamic-page.js": "/chunks/dynamic-page.js?id=464c8e70974d492ce7f6", "/chunks/environment-setup.js": "/chunks/environment-setup.js?id=405847df44edd86e301a", "/chunks/files.js": "/chunks/files.js?id=f1d8017665f8cb3090cf", "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js": "/chunks/files~chunks/settings-subscription~chunks/shared-files~chunks/shared-page~chunks/user-subscription.js?id=8ccd35de575e8a91d02f", - "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=5e607d74a439b6249d61", + "/chunks/files~chunks/shared-files~chunks/shared-page.js": "/chunks/files~chunks/shared-files~chunks/shared-page.js?id=129b569bf928e91c4e87", "/chunks/files~chunks/shared-page.js": "/chunks/files~chunks/shared-page.js?id=b013006caf6a7063b0b8", "/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=aba8c662fbc234892216", "/chunks/installation-disclaimer.js": "/chunks/installation-disclaimer.js?id=ecceaa6cdf5768826b36", - "/chunks/invoices.js": "/chunks/invoices.js?id=248503ac5967fe8370f9", + "/chunks/invoices.js": "/chunks/invoices.js?id=60be9963b912e6186a91", "/chunks/landing-page.js": "/chunks/landing-page.js?id=4c3176cc7c1ad3e6f9b7", "/chunks/not-found-shared.js": "/chunks/not-found-shared.js?id=a28320bdc00aeb85409e", "/chunks/page-edit.js": "/chunks/page-edit.js?id=0607b8e16d6678e0b463", - "/chunks/pages.js": "/chunks/pages.js?id=83f334c575a48c1b0cc6", + "/chunks/pages.js": "/chunks/pages.js?id=5cda42ec6d7c22ae4be2", "/chunks/plan.js": "/chunks/plan.js?id=ed865758447ff7e3f2b5", "/chunks/plan-create.js": "/chunks/plan-create.js?id=f4199916eddc63fb1720", "/chunks/plan-delete.js": "/chunks/plan-delete.js?id=2a50cca120ca589f5626", "/chunks/plan-settings.js": "/chunks/plan-settings.js?id=4a691e84a65d9a779d60", "/chunks/plan-subscribers.js": "/chunks/plan-subscribers.js?id=8c85b14979d3fb6c54a3", - "/chunks/plans.js": "/chunks/plans.js?id=f2ddb594ff1b2812c248", + "/chunks/plans.js": "/chunks/plans.js?id=75b0aaea161474383e8a", "/chunks/profile.js": "/chunks/profile.js?id=df174ba95616670c8edb", "/chunks/profile~chunks/settings-password.js": "/chunks/profile~chunks/settings-password.js?id=62c97619d35198767014", "/chunks/purchase-code.js": "/chunks/purchase-code.js?id=1452fb6ed1aa01e4045a", @@ -51,12 +51,12 @@ "/chunks/settings-create-payment-methods.js": "/chunks/settings-create-payment-methods.js?id=40d5eed52256ea23edbe", "/chunks/settings-invoices.js": "/chunks/settings-invoices.js?id=bc110f5ee1a5b984fda2", "/chunks/settings-password.js": "/chunks/settings-password.js?id=e318f7536b185dbe6b54", - "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=9be1d0aa0169eb57e78f", + "/chunks/settings-payment-methods.js": "/chunks/settings-payment-methods.js?id=23a1cf3e4183bb09da8d", "/chunks/settings-storage.js": "/chunks/settings-storage.js?id=22e7978fe8a5cb488e52", - "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=367c9478591c7a4a2889", + "/chunks/settings-subscription.js": "/chunks/settings-subscription.js?id=70ac1de089eeb9ce7276", "/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=7da589bd335deefd5f65", "/chunks/shared-files.js": "/chunks/shared-files.js?id=50538c88a0471fe4db6f", - "/chunks/shared-page.js": "/chunks/shared-page.js?id=4c1b302d65112aad96ea", + "/chunks/shared-page.js": "/chunks/shared-page.js?id=19379f673bd223a16a91", "/chunks/sign-in.js": "/chunks/sign-in.js?id=703fbd23d18816590337", "/chunks/sign-up.js": "/chunks/sign-up.js?id=cedca52c29abfb3c58f1", "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=9dec4c59d5a32fb9b855", @@ -73,8 +73,8 @@ "/chunks/user-invoices.js": "/chunks/user-invoices.js?id=97d041044c0eee8f8b4b", "/chunks/user-password.js": "/chunks/user-password.js?id=b036eeaa5ef8e798f6dd", "/chunks/user-storage.js": "/chunks/user-storage.js?id=a99910f95c3e39caa78b", - "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=e8ea1e67f9ac0a835ed0", - "/chunks/users.js": "/chunks/users.js?id=cdba7af8fb0cd8e64c40", + "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=d6e1f995e0ebc217fc9c", + "/chunks/users.js": "/chunks/users.js?id=6db9d47a7bfb4dd138e2", "/chunks/files~chunks/shared-files~chunks/shared-page.1672962443faca7a2623.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.1672962443faca7a2623.hot-update.js", "/chunks/files~chunks/shared-files~chunks/shared-page.8ca7286c54052251e57b.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.8ca7286c54052251e57b.hot-update.js", "/chunks/files~chunks/shared-files~chunks/shared-page.41d33ecbac7eb11ef0a2.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.41d33ecbac7eb11ef0a2.hot-update.js", @@ -101,5 +101,17 @@ "/chunks/files~chunks/shared-files~chunks/shared-page.c3641dfd1ebb30cbd31a.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.c3641dfd1ebb30cbd31a.hot-update.js", "/chunks/files~chunks/shared-files~chunks/shared-page.2c0a2335f261f5eb5911.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.2c0a2335f261f5eb5911.hot-update.js", "/chunks/files.bc6ba25e4cfc1744d7a1.hot-update.js": "/chunks/files.bc6ba25e4cfc1744d7a1.hot-update.js", - "/chunks/files~chunks/shared-files~chunks/shared-page.51ae6746cbde12d39b6d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.51ae6746cbde12d39b6d.hot-update.js" + "/chunks/files~chunks/shared-files~chunks/shared-page.51ae6746cbde12d39b6d.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.51ae6746cbde12d39b6d.hot-update.js", + "/js/main.60e370d445809a35a074.hot-update.js": "/js/main.60e370d445809a35a074.hot-update.js", + "/chunks/dashboard.60e370d445809a35a074.hot-update.js": "/chunks/dashboard.60e370d445809a35a074.hot-update.js", + "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-methods~chunks/users.js": "/chunks/dashboard~chunks/invoices~chunks/pages~chunks/plans~chunks/settings-payment-methods~chunks/users.js?id=2bb9ebac09457d3b898e", + "/chunks/files~chunks/shared-files~chunks/shared-page.60e370d445809a35a074.hot-update.js": "/chunks/files~chunks/shared-files~chunks/shared-page.60e370d445809a35a074.hot-update.js", + "/chunks/invoices.60e370d445809a35a074.hot-update.js": "/chunks/invoices.60e370d445809a35a074.hot-update.js", + "/chunks/pages.60e370d445809a35a074.hot-update.js": "/chunks/pages.60e370d445809a35a074.hot-update.js", + "/chunks/plans.60e370d445809a35a074.hot-update.js": "/chunks/plans.60e370d445809a35a074.hot-update.js", + "/chunks/settings-payment-methods.60e370d445809a35a074.hot-update.js": "/chunks/settings-payment-methods.60e370d445809a35a074.hot-update.js", + "/chunks/settings-subscription.60e370d445809a35a074.hot-update.js": "/chunks/settings-subscription.60e370d445809a35a074.hot-update.js", + "/chunks/settings-subscription~chunks/user-subscription.js": "/chunks/settings-subscription~chunks/user-subscription.js?id=d58c4e02afae33b7cc85", + "/chunks/user-subscription.60e370d445809a35a074.hot-update.js": "/chunks/user-subscription.60e370d445809a35a074.hot-update.js", + "/chunks/users.60e370d445809a35a074.hot-update.js": "/chunks/users.60e370d445809a35a074.hot-update.js" } diff --git a/resources/js/components/FilesView/FileBrowser.vue b/resources/js/components/FilesView/FileBrowser.vue index 6c524976..10545a14 100644 --- a/resources/js/components/FilesView/FileBrowser.vue +++ b/resources/js/components/FilesView/FileBrowser.vue @@ -171,9 +171,24 @@ dragStart(data) { let img = document.createElement('img') img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" +<<<<<<< HEAD event.dataTransfer.setDragImage(img, 0, 0) this.dragInProgress = true +======= + + event.dataTransfer.setDragImage(img, 0, 0) + + /*let elementClone = event.target.cloneNode(true) + elementClone.className = 'draged-clone' + console.log(elementClone)*/ + // elementClone.style.backgroundColor = "red" + // let element = document.getElementsByClassName('file-item') + // element.style.display = "none" + // var crt = this.cloneNode(true); + // crt.style.backgroundColor = "red"; + // this.style.display = "none" +>>>>>>> 65f7855703c7a163dc2bf3cc05b23469d76d7453 events.$emit('dragstart', data)