From b41826f72a09e36bf9dc6c101c3728ae87ad4d8a Mon Sep 17 00:00:00 2001 From: Robrecht Siera Date: Sat, 26 Jul 2025 09:41:06 +0200 Subject: [PATCH] feat: Add copy file and folder name options to the remote file browser - Add right-click menu items for copying filename and full path - Includes German and English translations --- .../File_Browser_Dialog.razor | 23 +++++++++++++++++++ .../File_Browser_Dialog.de-DE.resx | 6 +++++ .../File_Browser_Dialog.en-US.resx | 6 +++++ 3 files changed, 35 insertions(+) diff --git a/NetLock-RMM-Web-Console/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.razor b/NetLock-RMM-Web-Console/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.razor index 0a1d6b19..c5f6de74 100644 --- a/NetLock-RMM-Web-Console/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.razor +++ b/NetLock-RMM-Web-Console/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.razor @@ -90,6 +90,7 @@ @Localizer["delete"] @Localizer["move"] @Localizer["rename"] + @Localizer["copy_full_path"] } else { @@ -97,6 +98,8 @@ @Localizer["delete"] @Localizer["move"] @Localizer["rename"] + @Localizer["copy_filename"] + @Localizer["copy_full_path"] } } @@ -1866,6 +1869,26 @@ await Remote_File_Browser_Rename_File(_remote_file_path, _remote_file_path_new); } + private async Task Remote_File_Browser_Copy_Filename(string filename) + { + Snackbar.Configuration.ShowCloseIcon = true; + Snackbar.Configuration.PositionClass = Defaults.Classes.Position.BottomRight; + + await JSRuntime.InvokeVoidAsync("navigator.clipboard.writeText", filename); + + Snackbar.Add(Localizer["copied_to_clipboard"], Severity.Info); + } + + private async Task Remote_File_Browser_Copy_Full_Path(string path) + { + Snackbar.Configuration.ShowCloseIcon = true; + Snackbar.Configuration.PositionClass = Defaults.Classes.Position.BottomRight; + + await JSRuntime.InvokeVoidAsync("navigator.clipboard.writeText", path); + + Snackbar.Add(Localizer["copied_to_clipboard"], Severity.Info); + } + private bool uploading_linear = false; private bool uploading_indeterminate = false; private double _uploadProgress = 0; // % diff --git a/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.de-DE.resx b/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.de-DE.resx index 51214d81..441fa902 100644 --- a/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.de-DE.resx +++ b/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.de-DE.resx @@ -267,4 +267,10 @@ Warten auf das Herunterladen der Datei durch das Gerät. + + Dateiname kopieren + + + Vollständigen pfad kopieren + \ No newline at end of file diff --git a/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.en-US.resx b/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.en-US.resx index 52f0e21a..66af0a79 100644 --- a/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.en-US.resx +++ b/NetLock-RMM-Web-Console/Resources/Components/Pages/Devices/Dialogs/Remote_File_Browser/File_Browser_Dialog.en-US.resx @@ -267,4 +267,10 @@ Wait for the device to download the file. + + Copy filename + + + Copy full path + \ No newline at end of file