From cd9a800bf0718ef0c996f9df24bc7dd7b85f93d0 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 16 Feb 2024 18:32:59 +0100 Subject: [PATCH] Finished upload logic --- frontend/src/app/upload/upload.component.html | 10 +++++++--- frontend/src/app/upload/upload.component.ts | 16 +++++++++++++++- frontend/src/assets/check-solid.svg | 1 + .../de/w665/sharepulse/service/FileService.java | 5 ++++- 4 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 frontend/src/assets/check-solid.svg diff --git a/frontend/src/app/upload/upload.component.html b/frontend/src/app/upload/upload.component.html index 335478d..f31c556 100644 --- a/frontend/src/app/upload/upload.component.html +++ b/frontend/src/app/upload/upload.component.html @@ -98,9 +98,12 @@

Your file is now securely stored on our servers.

- - - + + +
@@ -109,5 +112,6 @@ diff --git a/frontend/src/app/upload/upload.component.ts b/frontend/src/app/upload/upload.component.ts index 82568e4..fdc2c96 100644 --- a/frontend/src/app/upload/upload.component.ts +++ b/frontend/src/app/upload/upload.component.ts @@ -4,6 +4,7 @@ import {FormatFileSizePipePipe} from "../format-file-size-pipe.pipe"; import {FormsModule} from "@angular/forms"; import axios, {AxiosProgressEvent} from "axios"; import { DevelopmentStore } from '../../store/DevelopmentStore'; +import {RouterLink} from "@angular/router"; @Component({ selector: 'app-upload', @@ -13,7 +14,8 @@ import { DevelopmentStore } from '../../store/DevelopmentStore'; FormatFileSizePipePipe, FormsModule, DecimalPipe, - NgClass + NgClass, + RouterLink ], templateUrl: './upload.component.html', styleUrl: './upload.component.scss' @@ -36,6 +38,7 @@ export class UploadComponent { uploadData: FileDetails | null = null; fileUrls: { downloadUrl: string, statusUrl: string, deleteUrl: string } | null = null; + urlCopied: boolean = false; constructor(private developmentStore: DevelopmentStore) { @@ -184,6 +187,17 @@ export class UploadComponent { this.uploadProgress = this.targetUploadProgress; } } + + copyUrlToClipboard(url: string | undefined) { + if(url) { + navigator.clipboard.writeText(url).then(() => { + this.urlCopied = true; + console.log('Text successfully copied to clipboard'); + }).catch(err => { + console.error('Failed to copy text to clipboard', err); + }); + } + } } interface FileDetails { fileId: string; diff --git a/frontend/src/assets/check-solid.svg b/frontend/src/assets/check-solid.svg new file mode 100644 index 0000000..10da547 --- /dev/null +++ b/frontend/src/assets/check-solid.svg @@ -0,0 +1 @@ + diff --git a/src/main/java/de/w665/sharepulse/service/FileService.java b/src/main/java/de/w665/sharepulse/service/FileService.java index 7196442..57207e2 100644 --- a/src/main/java/de/w665/sharepulse/service/FileService.java +++ b/src/main/java/de/w665/sharepulse/service/FileService.java @@ -58,7 +58,10 @@ public class FileService { String fileId = fileIdService.generateNewUniqueId(); - String password = fileSecurityService.generateFilePassword(); // TODO: generate password + String password = ""; + if (passwordProtected) { + password = fileSecurityService.generateFilePassword(); + } FileUpload fileUpload = FileUpload.builder() .fileId(fileId)