refactor: rename UnlinkedAssetGroupDto to AssetGroupDto
This commit is contained in:
@@ -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>
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user