Fixed bug where deletes of artifact groupings would not cascade
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
@using OpenArchival.DataAccess
|
||||
@using Microsoft.AspNetCore.Components.Forms
|
||||
@using MudBlazor
|
||||
@using OpenArchival.Blazor.Config
|
||||
|
||||
<style>
|
||||
.file-upload-input {
|
||||
@@ -97,6 +98,7 @@
|
||||
@inject IFilePathListingProvider PathProvider;
|
||||
@inject ISnackbar Snackbar;
|
||||
@inject ILogger<UploadDropBox> _logger;
|
||||
@inject IDialogService DialogService;
|
||||
|
||||
@code {
|
||||
private const string DefaultDragClass = "relative rounded-lg border-2 border-dashed pa-4 mt-4 mud-width-full mud-height-full";
|
||||
@@ -130,50 +132,64 @@
|
||||
|
||||
private async Task ClearAsync()
|
||||
{
|
||||
foreach (var pair in _fileToDiskFileName)
|
||||
|
||||
bool? confirmed = await DialogService.ShowMessageBox
|
||||
(
|
||||
new MessageBoxOptions(){
|
||||
Message=$"Are you sure you want to clear files? You will loose all changes.",
|
||||
Title="Clear Files",
|
||||
CancelText="Cancel",
|
||||
YesText="Clear"
|
||||
});
|
||||
|
||||
if (confirmed is not null && (confirmed ?? throw new ArgumentNullException("confirmed was null")))
|
||||
{
|
||||
try
|
||||
foreach (var pair in _fileToDiskFileName)
|
||||
{
|
||||
FileInfo targetFile = new(pair.Value);
|
||||
if (targetFile.Exists)
|
||||
try
|
||||
{
|
||||
targetFile.Delete();
|
||||
FileInfo targetFile = new(pair.Value);
|
||||
if (targetFile.Exists)
|
||||
{
|
||||
targetFile.Delete();
|
||||
}
|
||||
await PathProvider.DeleteFilePathListingAsync(pair.Key.Name, pair.Value);
|
||||
}
|
||||
await PathProvider.DeleteFilePathListingAsync(pair.Key.Name, pair.Value);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, "Error deleting file {FileName}", pair.Key.Name);
|
||||
Snackbar.Add($"Error cleaning up file: {pair.Key.Name}", Severity.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (var listing in ExistingFiles)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileInfo targetFile = new(listing.Path);
|
||||
if (targetFile.Exists)
|
||||
catch (Exception ex)
|
||||
{
|
||||
targetFile.Delete();
|
||||
_logger.LogError(ex, "Error deleting file {FileName}", pair.Key.Name);
|
||||
Snackbar.Add($"Error cleaning up file: {pair.Key.Name}", Severity.Warning);
|
||||
}
|
||||
await PathProvider.DeleteFilePathListingAsync(listing.OriginalName, listing.Path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"Error deleting file {listing.Path}");
|
||||
Snackbar.Add($"Error cleaning up file: {listing.OriginalName}", Severity.Warning);
|
||||
}
|
||||
|
||||
foreach (var listing in ExistingFiles)
|
||||
{
|
||||
try
|
||||
{
|
||||
FileInfo targetFile = new(listing.Path);
|
||||
if (targetFile.Exists)
|
||||
{
|
||||
targetFile.Delete();
|
||||
}
|
||||
await PathProvider.DeleteFilePathListingAsync(listing.OriginalName, listing.Path);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_logger.LogError(ex, $"Error deleting file {listing.Path}");
|
||||
Snackbar.Add($"Error cleaning up file: {listing.OriginalName}", Severity.Warning);
|
||||
}
|
||||
}
|
||||
|
||||
_fileToDiskFileName.Clear();
|
||||
Files.Clear();
|
||||
await (_fileUpload?.ClearAsync() ?? Task.CompletedTask);
|
||||
|
||||
ClearDragClass();
|
||||
UploadsComplete = true;
|
||||
await ClearClicked.InvokeAsync();
|
||||
|
||||
}
|
||||
|
||||
_fileToDiskFileName.Clear();
|
||||
Files.Clear();
|
||||
await (_fileUpload?.ClearAsync() ?? Task.CompletedTask);
|
||||
|
||||
ClearDragClass();
|
||||
UploadsComplete = true;
|
||||
await ClearClicked.InvokeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
private Task OpenFilePickerAsync()
|
||||
=> _fileUpload?.OpenFilePickerAsync() ?? Task.CompletedTask;
|
||||
|
||||
Reference in New Issue
Block a user