diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index 4b745a58..d042daed 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -1,7 +1,7 @@
{
"/js/main.js": "/js/main.js",
- "/chunks/request.js": "/chunks/request.js?id=a255aafa7261e2ac",
- "/chunks/request-upload.js": "/chunks/request-upload.js?id=c456f33bfbfd4038",
+ "/chunks/request.js": "/chunks/request.js?id=b493de3b8cf4a8f2",
+ "/chunks/request-upload.js": "/chunks/request-upload.js?id=efb89edeaed37404",
"/chunks/setup-wizard.js": "/chunks/setup-wizard.js?id=19a0784e59d768ec",
"/chunks/status-check.js": "/chunks/status-check.js?id=f40938d1fb43820f",
"/chunks/purchase-code.js": "/chunks/purchase-code.js?id=ba76b9a8adbfdc0b",
@@ -9,13 +9,13 @@
"/chunks/environment.js": "/chunks/environment.js?id=784c2442268b36dc",
"/chunks/app-setup.js": "/chunks/app-setup.js?id=cbe7bfed06400736",
"/chunks/admin-account.js": "/chunks/admin-account.js?id=78d257775f5fc485",
- "/chunks/shared.js": "/chunks/shared.js?id=e065eb78d6cc3b7d",
+ "/chunks/shared.js": "/chunks/shared.js?id=54733651dfb0af9f",
"/chunks/shared/browser.js": "/chunks/shared/browser.js?id=d2fff07a2bc7af3f",
"/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=a6063bed9be75a09",
"/chunks/shared/authenticate.js": "/chunks/shared/authenticate.js?id=b5519d193bce2339",
"/chunks/not-found.js": "/chunks/not-found.js?id=d31bd699138cf828",
"/chunks/temporary-unavailable.js": "/chunks/temporary-unavailable.js?id=26798085f527d955",
- "/chunks/admin.js": "/chunks/admin.js?id=361574392a095c32",
+ "/chunks/admin.js": "/chunks/admin.js?id=780ebe14261335f6",
"/chunks/dashboard.js": "/chunks/dashboard.js?id=5ab55a12214433c8",
"/chunks/invoices.js": "/chunks/invoices.js?id=799928609f57ca10",
"/chunks/subscriptions.js": "/chunks/subscriptions.js?id=a0c4f59d0ec4aee0",
@@ -57,12 +57,12 @@
"/chunks/sign-up.js": "/chunks/sign-up.js?id=80da89f329c514fc",
"/chunks/forgotten-password.js": "/chunks/forgotten-password.js?id=27cda9364b6593d8",
"/chunks/create-new-password.js": "/chunks/create-new-password.js?id=2f0401ee2fc148c4",
- "/chunks/settings.js": "/chunks/settings.js?id=a0eae95a131d4fb1",
+ "/chunks/settings.js": "/chunks/settings.js?id=c8a4915f96c762d4",
"/chunks/profile.js": "/chunks/profile.js?id=3e24bb5e1f52d4bb",
"/chunks/settings-password.js": "/chunks/settings-password.js?id=d00bf503d8126dc4",
"/chunks/settings-storage.js": "/chunks/settings-storage.js?id=092e324aad54656b",
"/chunks/billing.js": "/chunks/billing.js?id=115c25478cee576d",
- "/chunks/platform.js": "/chunks/platform.js?id=735f8aa44b87d0c4",
+ "/chunks/platform.js": "/chunks/platform.js?id=907e530c6cc415bc",
"/chunks/files.js": "/chunks/files.js?id=aaea9173f7697d6e",
"/chunks/recent-uploads.js": "/chunks/recent-uploads.js?id=4bab41df721a6fc6",
"/chunks/my-shared-items.js": "/chunks/my-shared-items.js?id=c62bc3eb07de20df",
diff --git a/resources/js/components/Layout/Toolbars/DesktopUploadRequestToolbar.vue b/resources/js/components/Layout/Toolbars/DesktopUploadRequestToolbar.vue
index 282aa277..44853475 100644
--- a/resources/js/components/Layout/Toolbars/DesktopUploadRequestToolbar.vue
+++ b/resources/js/components/Layout/Toolbars/DesktopUploadRequestToolbar.vue
@@ -24,17 +24,22 @@
:action="$t('create_something')"
/>
-
+
-
-
-
+
+
+
+
diff --git a/resources/js/components/Layout/Toolbars/NavigationBar.vue b/resources/js/components/Layout/Toolbars/NavigationBar.vue
index f77d5a29..36d2f492 100644
--- a/resources/js/components/Layout/Toolbars/NavigationBar.vue
+++ b/resources/js/components/Layout/Toolbars/NavigationBar.vue
@@ -3,7 +3,7 @@
diff --git a/resources/js/components/RemoteUpload/RemoteUploadPopup.vue b/resources/js/components/RemoteUpload/RemoteUploadPopup.vue
index 2c6a8c91..d30acfc1 100644
--- a/resources/js/components/RemoteUpload/RemoteUploadPopup.vue
+++ b/resources/js/components/RemoteUpload/RemoteUploadPopup.vue
@@ -75,9 +75,11 @@ export default {
this.loading = true
- let route = this.$store.getters.sharedDetail
- ? `/api/editor/upload/remote/${this.$router.currentRoute.params.token}`
- : '/api/upload/remote'
+ // Get route
+ let route = {
+ RequestUpload: `/api/upload-request/${this.$router.currentRoute.params.token}/upload/remote`,
+ Public: `/api/editor/upload/remote/${this.$router.currentRoute.params.token}`,
+ }[this.$router.currentRoute.name] || '/api/upload/remote'
let parentId = this.$store.getters.currentFolder
? this.$store.getters.currentFolder.data.id
diff --git a/resources/js/views/Admin.vue b/resources/js/views/Admin.vue
index 6bdf72fd..d5f6d50a 100644
--- a/resources/js/views/Admin.vue
+++ b/resources/js/views/Admin.vue
@@ -8,6 +8,7 @@
+
@@ -86,6 +87,7 @@ import { mapGetters } from 'vuex'
import CreateUploadRequestPopup from "../components/UploadRequest/CreateUploadRequestPopup";
import CreateTeamFolderPopup from "../components/Teams/CreateTeamFolderPopup";
import NotificationsPopup from "../components/Notifications/NotificationsPopup";
+import RemoteUploadPopup from "../components/RemoteUpload/RemoteUploadPopup";
export default {
name: 'Admin',
@@ -190,6 +192,7 @@ export default {
},
},
components: {
+ RemoteUploadPopup,
NotificationsPopup,
CreateTeamFolderPopup,
CreateUploadRequestPopup,
diff --git a/resources/js/views/FileView/UploadRequestFiles.vue b/resources/js/views/FileView/UploadRequestFiles.vue
index 36bbae7f..76fddb3f 100644
--- a/resources/js/views/FileView/UploadRequestFiles.vue
+++ b/resources/js/views/FileView/UploadRequestFiles.vue
@@ -9,11 +9,8 @@
-
+
-
-
-
+
+
+
+
diff --git a/resources/js/views/Profile.vue b/resources/js/views/Profile.vue
index 6ab65687..de09c86b 100644
--- a/resources/js/views/Profile.vue
+++ b/resources/js/views/Profile.vue
@@ -8,6 +8,7 @@
+
@@ -94,10 +95,12 @@ import CreateUploadRequestPopup from "../components/UploadRequest/CreateUploadRe
import CreateTeamFolderPopup from "../components/Teams/CreateTeamFolderPopup";
import ChangeSubscriptionPopup from "../components/Subscription/Popups/ChangeSubscriptionPopup";
import NotificationsPopup from "../components/Notifications/NotificationsPopup";
+import RemoteUploadPopup from "../components/RemoteUpload/RemoteUploadPopup";
export default {
name: 'Settings',
components: {
+ RemoteUploadPopup,
NotificationsPopup,
ChangeSubscriptionPopup,
CreateTeamFolderPopup,
diff --git a/resources/js/views/UploadRequest.vue b/resources/js/views/UploadRequest.vue
index 5cdaad49..6e493801 100644
--- a/resources/js/views/UploadRequest.vue
+++ b/resources/js/views/UploadRequest.vue
@@ -8,6 +8,7 @@
+
@@ -54,10 +55,12 @@ import Spotlight from '../components/Spotlight/Spotlight'
import DragUI from '../components/UI/Others/DragUI'
import { mapGetters } from 'vuex'
import { events } from '../bus'
+import RemoteUploadPopup from "../components/RemoteUpload/RemoteUploadPopup";
export default {
name: 'UploadRequest',
components: {
+ RemoteUploadPopup,
DesktopUploadRequestToolbar,
MobileUploadRequestToolBar,
InfoSidebarUploadRequest,
diff --git a/routes/upload-request.php b/routes/upload-request.php
index 4dfd8f48..9912ae62 100644
--- a/routes/upload-request.php
+++ b/routes/upload-request.php
@@ -10,6 +10,7 @@ use Domain\UploadRequest\Controllers\MoveItemInUploadRequestController;
use Domain\UploadRequest\Controllers\SetUploadRequestAsFilledController;
use Domain\UploadRequest\Controllers\UploadFilesForUploadRequestController;
use Domain\UploadRequest\Controllers\GetFolderTreeForUploadRequestController;
+use Domain\UploadRequest\Controllers\UploadFilesRemotelyForUploadRequestController;
Route::get('/{uploadRequest}', GetUploadRequestController::class);
@@ -19,6 +20,7 @@ Route::group(['middleware' => 'upload-request'], function () {
Route::delete('/{uploadRequest}', SetUploadRequestAsFilledController::class);
// Edit
+ Route::post('/{uploadRequest}/upload/remote', UploadFilesRemotelyForUploadRequestController::class);
Route::post('/{uploadRequest}/upload', UploadFilesForUploadRequestController::class);
Route::patch('/{uploadRequest}/rename/{id}', RenameFileOrFolderController::class);
Route::post('/{uploadRequest}/create-folder', CreateFolderController::class);
diff --git a/src/Domain/Files/Controllers/VisitorUploadFileController.php b/src/Domain/Files/Controllers/VisitorUploadFileController.php
index e9915914..c709b285 100644
--- a/src/Domain/Files/Controllers/VisitorUploadFileController.php
+++ b/src/Domain/Files/Controllers/VisitorUploadFileController.php
@@ -1,7 +1,6 @@
fakeUploadFile)($request);
}
diff --git a/src/Domain/UploadRequest/Controllers/UploadFilesRemotelyForUploadRequestController.php b/src/Domain/UploadRequest/Controllers/UploadFilesRemotelyForUploadRequestController.php
new file mode 100644
index 00000000..2688fe9a
--- /dev/null
+++ b/src/Domain/UploadRequest/Controllers/UploadFilesRemotelyForUploadRequestController.php
@@ -0,0 +1,68 @@
+id);
+
+ // Create folder if not exist
+ if ($folder->doesntExist()) {
+ $this->createFolder($uploadRequest);
+ }
+
+ // Set default parent_id for uploaded file
+ if (is_null($request->input('parent_id'))) {
+ $request->merge(['parent_id' => $uploadRequest->id]);
+ }
+
+ // Execute job for get content from url and save
+ ($this->getContentFromExternalSource)($request->all(), $uploadRequest->user);
+
+ // Set timestamp for auto filling
+ cache()->set("auto-filling.$uploadRequest->id", now()->toString());
+
+ return response('Files were successfully added to the upload queue', 201);
+ }
+
+ /**
+ * Create root Upload Request folder
+ */
+ private function createFolder(UploadRequest $uploadRequest): void
+ {
+ // Format timestamp
+ $timestamp = format_date($uploadRequest->created_at, 'd. M. Y');
+
+ // Create folder
+ DB::table('folders')->insert([
+ 'id' => $uploadRequest->id,
+ 'parent_id' => $uploadRequest->folder_id ?? null,
+ 'user_id' => $uploadRequest->user_id,
+ 'name' => $uploadRequest->name ?? __t('upload_request_default_folder', ['timestamp' => $timestamp]),
+ 'created_at' => now(),
+ 'updated_at' => now(),
+ ]);
+
+ // Update upload request status
+ $uploadRequest->update([
+ 'status' => 'filling',
+ ]);
+ }
+}