("Add Name", parameters);
var result = await dialog.Result;
- if( !dialog.Result.IsCanceled)
+ if (!dialog.Result.IsCanceled)
{
// Reset the tag
Editing = false;
diff --git a/Damselfly.Web.Client/Shared/About.razor b/Damselfly.Web.Client/Shared/About.razor
index 002c7d06..dcdd1aa3 100644
--- a/Damselfly.Web.Client/Shared/About.razor
+++ b/Damselfly.Web.Client/Shared/About.razor
@@ -1,13 +1,14 @@
@using System.Reflection
@inject ICachedDataService dataService
+@inject IJSRuntime jsRuntime
-
+
-
Damselfly v@Version © 2019-@DateTime.Now.Year Mark Otway, All rights reserved.
+
Damselfly v@Version © 2019-@DateTime.Now.Year Mark Otway, All rights reserved.
Server-based Digital Asset Management system
-
+
Credits/Thanks
Powered by Blazor.
@@ -15,11 +16,11 @@
Icons by Font-Awesome.
Image Processing by SkiaSharp
and SixLabors ImageSharp
- and ImageMagick .
+ and ImageMagick .
Face Detection by EmguCV.
Facial recognition by Azure Cognitive Services Face API.
Object Detection based on MentalStack's code.
- ExifTool @dataService.ExifToolVer by Phil Harvey.
+ ExifTool @dataService.ExifToolVer by Phil Harvey.
Dominant Colour calculation by Jelle Vergeer.
Pan & Zoom by Ronnie Tran
Maps by OpenStreetMap and Syncfusion.
diff --git a/Damselfly.Web.Client/Shared/AdvancedSearchPanel.razor b/Damselfly.Web.Client/Shared/AdvancedSearchPanel.razor
index e3bbf71b..8cd00040 100644
--- a/Damselfly.Web.Client/Shared/AdvancedSearchPanel.razor
+++ b/Damselfly.Web.Client/Shared/AdvancedSearchPanel.razor
@@ -23,7 +23,9 @@
-
+
@foreach( var choice in monthChoices )
{
@@ -33,7 +35,7 @@
-
+
@foreach( var choice in Enumerable.Range(1, 5).Reverse() )
{
@@ -43,7 +45,7 @@
-
+
@foreach( var choice in faceTypes )
{
@@ -53,7 +55,7 @@
-
+
@foreach( var choice in orientationTypes )
{
@@ -63,7 +65,7 @@
-
+
@foreach( var cam in cachedData.Cameras )
{
@@ -73,7 +75,7 @@
-
+
@foreach( var lens in cachedData.Lenses )
{
@@ -83,7 +85,7 @@
-
+
@foreach( var choice in fileSizeChoices )
{
@@ -93,7 +95,7 @@
-
+
@foreach( var choice in fileSizeChoices )
{
@@ -118,6 +120,11 @@
List> DateRanges = new();
DateRange filterRange = new();
+ private Task FilterChanged()
+ {
+ return Task.CompletedTask;
+ }
+
DateRange DateRange
{
get => filterRange;
@@ -154,7 +161,7 @@
CreateShortcuts();
filterRange = new DateRange(searchService.MinDate, searchService.MaxDate);
- // TODO: Can we do better than do this every time the advanced Search panel opens?
+ // TODO: Can we do better than do this every time the advanced Search panel opens?
cachedData.InitialiseData();
base.OnInitialized();
@@ -197,7 +204,8 @@
private void OnSearchChanged()
{
filterRange = new DateRange(searchService.MinDate, searchService.MaxDate);
- InvokeAsync(StateHasChanged);
+
+ StateHasChanged();
}
private void AddRangeShortcut(string name, DateRange range)
@@ -207,7 +215,7 @@
private void CreateShortcuts()
{
- // TODO: Add more here
+ // TODO: Add more here
var Jan1ThisYear = new DateTime(DateTime.UtcNow.Year, 1, 1);
AddRangeShortcut("This year", new DateRange { Start = Jan1ThisYear, End = DateTime.UtcNow });
diff --git a/Damselfly.Web.Client/Shared/BasketManager.razor b/Damselfly.Web.Client/Shared/BasketManager.razor
index 4c50fce1..a366bae0 100644
--- a/Damselfly.Web.Client/Shared/BasketManager.razor
+++ b/Damselfly.Web.Client/Shared/BasketManager.razor
@@ -115,7 +115,7 @@
watch.Stop();
- await InvokeAsync(StateHasChanged);
+ StateHasChanged();
}
}
diff --git a/Damselfly.Web.Client/Shared/ConflatedTextBox.razor b/Damselfly.Web.Client/Shared/ConflatedTextBox.razor
index 7779442e..17dca2e2 100644
--- a/Damselfly.Web.Client/Shared/ConflatedTextBox.razor
+++ b/Damselfly.Web.Client/Shared/ConflatedTextBox.razor
@@ -63,7 +63,7 @@
}
}
- private void SearchCallback(object state)
+ private void SearchCallback(object? state)
{
if( OnValueChanged != null )
OnValueChanged(tempValue);
diff --git a/Damselfly.Web.Client/Shared/ConnectionStatus.razor b/Damselfly.Web.Client/Shared/ConnectionStatus.razor
index 778a8eb7..62ee579c 100644
--- a/Damselfly.Web.Client/Shared/ConnectionStatus.razor
+++ b/Damselfly.Web.Client/Shared/ConnectionStatus.razor
@@ -28,10 +28,11 @@
HubConnectionState.Connected => "color:green;",
HubConnectionState.Reconnecting => "color:darkorange;",
HubConnectionState.Connecting => "color:darkorange;",
- HubConnectionState.Disconnected => "color:darkred;"
- } + " text-shadow: 1px 1px 1px #666;";
+ HubConnectionState.Disconnected => "color:darkred;",
+ _ => "color:darkred;"
+ } + " text-shadow: 1px 1px 1px #666;";
- InvokeAsync(StateHasChanged);
+ StateHasChanged();
}
protected override async Task OnInitializedAsync()
@@ -41,7 +42,7 @@
await base.OnInitializedAsync();
}
- protected override async Task OnAfterRenderAsync(bool firstRender)
+ protected override void OnAfterRender(bool firstRender)
{
if( firstRender )
{
diff --git a/Damselfly.Web.Client/Shared/Dialogs/BasketDialog.razor b/Damselfly.Web.Client/Shared/Dialogs/BasketDialog.razor
index 060eca24..c18c1f43 100644
--- a/Damselfly.Web.Client/Shared/Dialogs/BasketDialog.razor
+++ b/Damselfly.Web.Client/Shared/Dialogs/BasketDialog.razor
@@ -72,8 +72,6 @@
{
await basketService.Delete(Basket.BasketId);
- int? userId = null;
-
if( model.IsPublic )
statusService.UpdateGlobalStatus($"Basket '{model.BasketName}' was deleted.");
else
diff --git a/Damselfly.Web.Client/Shared/Dialogs/NameDialog.razor b/Damselfly.Web.Client/Shared/Dialogs/NameDialog.razor
index f8be1e79..c537eb56 100644
--- a/Damselfly.Web.Client/Shared/Dialogs/NameDialog.razor
+++ b/Damselfly.Web.Client/Shared/Dialogs/NameDialog.razor
@@ -35,7 +35,10 @@
protected override void OnInitialized()
{
- TypeAheadName = theObject.Person.Name;
+ if( theObject.Person != null && theObject.Person.Name != null )
+ {
+ TypeAheadName = theObject.Person.Name;
+ }
}
private async Task> SearchNames(string text)
diff --git a/Damselfly.Web.Client/Shared/ExportConfigManager.razor b/Damselfly.Web.Client/Shared/ExportConfigManager.razor
index 3f37fed1..96d233e8 100644
--- a/Damselfly.Web.Client/Shared/ExportConfigManager.razor
+++ b/Damselfly.Web.Client/Shared/ExportConfigManager.razor
@@ -28,7 +28,7 @@
readonly List configs = new();
[Parameter]
- public ExportConfig CurrentConfig { get; set; }
+ public ExportConfig? CurrentConfig { get; set; }
[Parameter]
public EventCallback OnValueChanged { get; set; }
@@ -84,6 +84,6 @@
await OnValueChanged.InvokeAsync(new ChangeEventArgs { Value = CurrentConfig });
}
- await InvokeAsync(StateHasChanged);
+ StateHasChanged();
}
}
\ No newline at end of file
diff --git a/Damselfly.Web.Client/Shared/FolderList.razor b/Damselfly.Web.Client/Shared/FolderList.razor
index 307d3ce2..ddafee71 100644
--- a/Damselfly.Web.Client/Shared/FolderList.razor
+++ b/Damselfly.Web.Client/Shared/FolderList.razor
@@ -1,43 +1,46 @@
@inject ISearchService searchService
@inject IUserFolderService folderService
@inject ContextMenuService contextMenuService
+@inject SelectionService selectionService
+@inject IUserStatusService statusService
@inject IUserConfigService configService
@inject IDialogService DialogService
+@inject IFileService fileService
@inject ILogger logger
@using DialogOptions = MudBlazor.DialogOptions
@implements IDisposable
-
+
- @if( folderItems == null )
+ @if (folderItems == null)
{
Loading...
-
+
}
else
{
ResetFilterFolder())"
@oncontextmenu=@(args => ShowContextMenu(args, null)) @oncontextmenu:preventDefault="true">
- All Folders
+ All Folders