refactor: rename UnlinkedAssetGroupDto to AssetGroupDto

This commit is contained in:
2026-07-16 23:14:14 +02:00
parent 983cd8baef
commit 8589a85625
6 changed files with 11 additions and 11 deletions
@@ -4,7 +4,7 @@ namespace Butter.Dtos.Asset;
/// Represents a group of unlinked assets (not assigned to any album),
/// grouped by folder for drill-down browsing in the asset picker.
/// </summary>
public class UnlinkedAssetGroupDto {
public class AssetGroupDto {
/// <summary>
/// Gets or sets the folder ID of the group. Null for assets with no folder or for the maintainer's "My Uploads" group.
/// </summary>
+1 -1
View File
@@ -129,7 +129,7 @@ public class AssetController(
/// <returns>A list of unlinked asset groups with folder ID, name, and asset count.</returns>
[HttpGet("unlinked-groups")]
[Authorize(Roles = "Maintainer,Curator,Admin")]
public ActionResult<List<UnlinkedAssetGroupDto>> GetFolderGroups([FromQuery] bool unlinkedOnly = true) {
public ActionResult<List<AssetGroupDto>> GetFolderGroups([FromQuery] bool unlinkedOnly = true) {
var userData = authService.GetUserData(User);
var uid = userData?.Id;
EAccessLevel accessLevel = userData?.AccessLevel ?? EAccessLevel.User;
+3 -3
View File
@@ -267,7 +267,7 @@ public class AssetRepository(LactoseDbContext context, ILogger<AssetRepository>
.ToList();
/// <inheritdoc />
public List<Butter.Dtos.Asset.UnlinkedAssetGroupDto> GetFolderGroups(Guid? userId, EAccessLevel accessLevel, bool unlinkedOnly = true) {
public List<Butter.Dtos.Asset.AssetGroupDto> GetFolderGroups(Guid? userId, EAccessLevel accessLevel, bool unlinkedOnly = true) {
logger.LogTrace("GetFolderGroups: userId={UserId}, accessLevel={AccessLevel}, unlinkedOnly={UnlinkedOnly}", userId, accessLevel, unlinkedOnly);
var query = context.Assets
@@ -282,7 +282,7 @@ public class AssetRepository(LactoseDbContext context, ILogger<AssetRepository>
if (accessLevel < EAccessLevel.Curator) {
if (accessLevel == EAccessLevel.Maintainer && userId.HasValue) {
var count = query.Count(a => a.UploadedBy == userId);
return [new Butter.Dtos.Asset.UnlinkedAssetGroupDto {
return [new Butter.Dtos.Asset.AssetGroupDto {
FolderId = null,
Name = "My Uploads",
AssetCount = count
@@ -305,7 +305,7 @@ public class AssetRepository(LactoseDbContext context, ILogger<AssetRepository>
var result = groups
.Where(g => g.AssetCount > 0)
.Select(g => new Butter.Dtos.Asset.UnlinkedAssetGroupDto {
.Select(g => new Butter.Dtos.Asset.AssetGroupDto {
FolderId = g.FolderId,
Name = g.FolderId.HasValue && folderNames.TryGetValue(g.FolderId.Value, out var name) ? name : "No Folder",
AssetCount = g.AssetCount
+1 -1
View File
@@ -205,7 +205,7 @@ public interface IAssetRepository : IDisposable {
/// <param name="accessLevel">The requesting user's access level.</param>
/// <param name="unlinkedOnly">If true (default), only counts assets not assigned to any album.</param>
/// <returns>A list of unlinked asset groups with folder ID, name, and asset count.</returns>
List<Butter.Dtos.Asset.UnlinkedAssetGroupDto> GetFolderGroups(Guid? userId, EAccessLevel accessLevel, bool unlinkedOnly = true);
List<Butter.Dtos.Asset.AssetGroupDto> GetFolderGroups(Guid? userId, EAccessLevel accessLevel, bool unlinkedOnly = true);
/// <summary>
/// Browses assets at a specific directory level within a folder, returning immediate subdirectories
@@ -64,8 +64,8 @@
[Parameter] public bool UnlinkedOnly { get; set; } = true;
public enum PickerMode { AddToAlbum, Maintenance }
List<UnlinkedAssetGroupDto>? groups;
UnlinkedAssetGroupDto? selectedGroup;
List<AssetGroupDto>? groups;
AssetGroupDto? selectedGroup;
List<AssetPreviewDto>? assetPage;
AssetBrowseResultDto? browseResult;
string currentPath = "";
@@ -387,7 +387,7 @@
} finally { isLoading = false; }
}
async Task SelectGroup(UnlinkedAssetGroupDto group) {
async Task SelectGroup(AssetGroupDto group) {
selectedGroup = group; selectedIds.Clear(); searchQuery = string.Empty;
currentPage = 0; currentPath = ""; browseResult = null; assetPage = null;
await LoadContent();
+2 -2
View File
@@ -61,14 +61,14 @@ public sealed class AssetService(
/// Gets groups of unlinked assets for drill-down browsing in the asset picker.
/// </summary>
/// <returns>A list of unlinked asset groups with folder ID, name, and count, or null if the request failed.</returns>
public async Task<List<UnlinkedAssetGroupDto>?> GetFolderGroupsAsync(bool unlinkedOnly = true) {
public async Task<List<AssetGroupDto>?> GetFolderGroupsAsync(bool unlinkedOnly = true) {
var url = $"/api/asset/unlinked-groups?unlinkedOnly={unlinkedOnly.ToString().ToLowerInvariant()}";
var response = await Client.GetAsync(url);
if (!response.IsSuccessStatusCode)
return null;
try {
return await response.Content.ReadFromJsonAsync<List<UnlinkedAssetGroupDto>>() ?? [];
return await response.Content.ReadFromJsonAsync<List<AssetGroupDto>>() ?? [];
} catch {
return [];
}