Fixed bug where deletes of artifact groupings would not cascade

This commit is contained in:
Vincent Allen
2025-11-12 19:10:35 -05:00
parent b34449808f
commit 9298829db6
325 changed files with 5233 additions and 20996 deletions

View File

@@ -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;