diff --git a/.env.example b/.env.example
index 98a73e3b..fc96ce87 100644
--- a/.env.example
+++ b/.env.example
@@ -19,7 +19,7 @@ DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
-DB_MYSQLDUMP_PATH=
+DB_MYSQLDUMP_PATH=/usr/bin
BROADCAST_DRIVER=null
CACHE_DRIVER=file
diff --git a/config/language-translations.php b/config/language-translations.php
index 3b0ed300..3fe344e4 100644
--- a/config/language-translations.php
+++ b/config/language-translations.php
@@ -954,5 +954,6 @@ return [
'remote_download_finished' => 'Remote upload was successfully finished',
'remote_upload_progress' => 'Uploading Remotely - {processed} / {total}',
'remote_upload_failed_count' => 'Failed: {count}',
+ 'file_request_notify_center_description' => 'Please click on the link below and upload your files for :name.',
],
];
diff --git a/config/vuefilemanager.php b/config/vuefilemanager.php
index 58ae7832..580ae9ee 100644
--- a/config/vuefilemanager.php
+++ b/config/vuefilemanager.php
@@ -1,7 +1,7 @@
'2.1.3',
+ 'version' => '2.2',
'is_demo' => env('APP_DEMO', false),
@@ -69,5 +69,6 @@ return [
'2_0_16',
'2_1_1',
'2_1_2',
+ '2_2_0',
],
];
diff --git a/resources/js/components/Notifications/Components/Notification.vue b/resources/js/components/Notifications/Components/Notification.vue
index 9bae315a..b895d03d 100644
--- a/resources/js/components/Notifications/Components/Notification.vue
+++ b/resources/js/components/Notifications/Components/Notification.vue
@@ -82,6 +82,20 @@
+
+
+
+
+ {{ action.params.button }}
+
+
+
diff --git a/resources/js/store/modules/uploadRequest.js b/resources/js/store/modules/uploadRequest.js
index ace431e0..4bca2915 100644
--- a/resources/js/store/modules/uploadRequest.js
+++ b/resources/js/store/modules/uploadRequest.js
@@ -59,7 +59,7 @@ const actions = {
.delete(`/api/file-request/${router.currentRoute.params.token}`)
.then((response) => {
commit('LOADING_STATE', { loading: false, data: [] })
- commit('SET_UPLOAD_REQUEST', response.data)
+ commit('SET_UPLOAD_REQUEST_AS_FILLED')
})
.catch(() => this.$isSomethingWrong())
},
@@ -69,6 +69,9 @@ const mutations = {
SET_UPLOAD_REQUEST(state, payload) {
state.uploadRequest = payload
},
+ SET_UPLOAD_REQUEST_AS_FILLED(state) {
+ state.uploadRequest.data.attributes.status = 'filled'
+ },
}
const getters = {
diff --git a/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php b/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php
index bc1dc4f7..07f1ed9a 100644
--- a/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php
+++ b/src/Domain/UploadRequest/Controllers/CreateUploadRequestController.php
@@ -1,7 +1,7 @@
uploadRequest()->create([
+ $uploadRequest = auth()->user()->uploadRequest()->create([
'folder_id' => $request->input('folder_id'),
'email' => $request->input('email'),
'notes' => $request->input('notes'),
@@ -37,8 +37,16 @@ class CreateUploadRequestController extends Controller
// If user type email, notify by email
if ($request->has('email')) {
- Notification::route('mail', $uploadRequest->email)
- ->notify(new UploadRequestNotification($uploadRequest));
+ // Check if user exists
+ $user = User::where('email', $uploadRequest->email)
+ ->first();
+
+ if ($user) {
+ $user->notify(new UploadRequestNotification($uploadRequest));
+ } else {
+ Notification::route('mail', $uploadRequest->email)
+ ->notify(new UploadRequestNotification($uploadRequest));
+ }
}
return response()->json(new UploadRequestResource($uploadRequest), 201);
diff --git a/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php b/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php
index 614e2665..422fd2f8 100644
--- a/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php
+++ b/src/Domain/UploadRequest/Notifications/UploadRequestNotification.php
@@ -29,7 +29,7 @@ class UploadRequestNotification extends Notification implements ShouldQueue
*/
public function via($notifiable)
{
- return ['mail'];
+ return ['mail', 'database', 'broadcast'];
}
/**
@@ -56,13 +56,21 @@ class UploadRequestNotification extends Notification implements ShouldQueue
/**
* Get the array representation of the notification.
- *
- * @param mixed $notifiable
- * @return array
*/
- public function toArray($notifiable)
+ public function toArray(mixed $notifiable): array
{
return [
+ 'category' => 'file-request',
+ 'title' => __t('file_request_notify_title', ['name' => $this->uploadRequest->user->settings->first_name]),
+ 'description' => __t('file_request_notify_center_description', ['name' => $this->uploadRequest->user->settings->first_name]),
+ 'action' => [
+ 'type' => 'url',
+ 'params' => [
+ 'target' => 'blank',
+ 'url' => url("/request/{$this->uploadRequest->id}/upload"),
+ 'button' => __t('upload_files'),
+ ],
+ ],
];
}
}
diff --git a/src/Support/Upgrading/Controllers/UpgradingVersionsController.php b/src/Support/Upgrading/Controllers/UpgradingVersionsController.php
index d5097aea..3af920d9 100644
--- a/src/Support/Upgrading/Controllers/UpgradingVersionsController.php
+++ b/src/Support/Upgrading/Controllers/UpgradingVersionsController.php
@@ -22,6 +22,13 @@ class UpgradingVersionsController
) {
}
+ public function upgrade_to_2_2_0(): void
+ {
+ setEnvironmentValue([
+ 'DB_MYSQLDUMP_PATH' => '/usr/bin',
+ ]);
+ }
+
public function upgrade_to_2_1_2(): void
{
($this->updateLanguageStrings)([
diff --git a/tests/Domain/UploadRequest/UploadRequestTest.php b/tests/Domain/UploadRequest/UploadRequestTest.php
index c7a229d9..02dd62a9 100644
--- a/tests/Domain/UploadRequest/UploadRequestTest.php
+++ b/tests/Domain/UploadRequest/UploadRequestTest.php
@@ -58,6 +58,36 @@ class UploadRequestTest extends TestCase
Notification::assertTimesSent(1, UploadRequestNotification::class);
}
+ /**
+ * @test
+ */
+ public function user_create_upload_request_with_native_user_email()
+ {
+ $user = User::factory()
+ ->hasSettings()
+ ->create();
+
+ $recipient = User::factory()
+ ->hasSettings()
+ ->create();
+
+ $folder = Folder::factory()
+ ->create([
+ 'user_id' => $user->id,
+ ]);
+
+ $this
+ ->actingAs($user)
+ ->postJson('/api/file-request', [
+ 'folder_id' => $folder->id,
+ 'email' => $recipient->email,
+ 'notes' => 'Please send me your files...',
+ ])
+ ->assertCreated();
+
+ Notification::assertSentTo($recipient, UploadRequestNotification::class);
+ }
+
/**
* @test
*/