Smart Filters & Dashboard Customization (#2282)
Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
parent
3d501c9532
commit
84f85b4f24
92 changed files with 7149 additions and 555 deletions
30
API/DTOs/Dashboard/DashboardStreamDto.cs
Normal file
30
API/DTOs/Dashboard/DashboardStreamDto.cs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
using API.DTOs.Filtering.v2;
|
||||
using API.Entities;
|
||||
using API.Entities.Enums;
|
||||
|
||||
namespace API.DTOs.Dashboard;
|
||||
|
||||
public class DashboardStreamDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
/// <summary>
|
||||
/// Is System Provided
|
||||
/// </summary>
|
||||
public bool IsProvided { get; set; }
|
||||
/// <summary>
|
||||
/// Sort Order on the Dashboard
|
||||
/// </summary>
|
||||
public int Order { get; set; }
|
||||
/// <summary>
|
||||
/// If Not IsProvided, the appropriate smart filter
|
||||
/// </summary>
|
||||
/// <remarks>Encoded filter</remarks>
|
||||
public string? SmartFilterEncoded { get; set; }
|
||||
public int? SmartFilterId { get; set; }
|
||||
/// <summary>
|
||||
/// For system provided
|
||||
/// </summary>
|
||||
public DashboardStreamType StreamType { get; set; }
|
||||
public bool Visible { get; set; }
|
||||
}
|
||||
32
API/DTOs/Dashboard/GroupedSeriesDto.cs
Normal file
32
API/DTOs/Dashboard/GroupedSeriesDto.cs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
using System;
|
||||
using API.Entities.Enums;
|
||||
|
||||
namespace API.DTOs.Dashboard;
|
||||
/// <summary>
|
||||
/// This is a representation of a Series with some amount of underlying files within it. This is used for Recently Updated Series section
|
||||
/// </summary>
|
||||
public class GroupedSeriesDto
|
||||
{
|
||||
public string SeriesName { get; set; } = default!;
|
||||
public int SeriesId { get; set; }
|
||||
public int LibraryId { get; set; }
|
||||
public LibraryType LibraryType { get; set; }
|
||||
public DateTime Created { get; set; }
|
||||
/// <summary>
|
||||
/// Chapter Id if this is a chapter. Not guaranteed to be set.
|
||||
/// </summary>
|
||||
public int ChapterId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Volume Id if this is a chapter. Not guaranteed to be set.
|
||||
/// </summary>
|
||||
public int VolumeId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// This is used only on the UI. It is just index of being added.
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
public MangaFormat Format { get; set; }
|
||||
/// <summary>
|
||||
/// Number of items that are updated. This provides a sort of grouping when multiple chapters are added per Volume/Series
|
||||
/// </summary>
|
||||
public int Count { get; set; }
|
||||
}
|
||||
34
API/DTOs/Dashboard/RecentlyAddedItemDto.cs
Normal file
34
API/DTOs/Dashboard/RecentlyAddedItemDto.cs
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
using System;
|
||||
using API.Entities.Enums;
|
||||
|
||||
namespace API.DTOs.Dashboard;
|
||||
|
||||
/// <summary>
|
||||
/// A mesh of data for Recently added volume/chapters
|
||||
/// </summary>
|
||||
public class RecentlyAddedItemDto
|
||||
{
|
||||
public string SeriesName { get; set; } = default!;
|
||||
public int SeriesId { get; set; }
|
||||
public int LibraryId { get; set; }
|
||||
public LibraryType LibraryType { get; set; }
|
||||
/// <summary>
|
||||
/// This will automatically map to Volume X, Chapter Y, etc.
|
||||
/// </summary>
|
||||
public string Title { get; set; } = default!;
|
||||
public DateTime Created { get; set; }
|
||||
/// <summary>
|
||||
/// Chapter Id if this is a chapter. Not guaranteed to be set.
|
||||
/// </summary>
|
||||
public int ChapterId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// Volume Id if this is a chapter. Not guaranteed to be set.
|
||||
/// </summary>
|
||||
public int VolumeId { get; set; } = 0;
|
||||
/// <summary>
|
||||
/// This is used only on the UI. It is just index of being added.
|
||||
/// </summary>
|
||||
public int Id { get; set; }
|
||||
public MangaFormat Format { get; set; }
|
||||
|
||||
}
|
||||
13
API/DTOs/Dashboard/SmartFilterDto.cs
Normal file
13
API/DTOs/Dashboard/SmartFilterDto.cs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
using API.DTOs.Filtering.v2;
|
||||
|
||||
namespace API.DTOs.Dashboard;
|
||||
|
||||
public class SmartFilterDto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
public required string Name { get; set; }
|
||||
/// <summary>
|
||||
/// This is the Filter url encoded. It is decoded and reconstructed into a <see cref="FilterV2Dto"/>
|
||||
/// </summary>
|
||||
public required string Filter { get; set; }
|
||||
}
|
||||
9
API/DTOs/Dashboard/UpdateDashboardStreamPositionDto.cs
Normal file
9
API/DTOs/Dashboard/UpdateDashboardStreamPositionDto.cs
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
namespace API.DTOs.Dashboard;
|
||||
|
||||
public class UpdateDashboardStreamPositionDto
|
||||
{
|
||||
public int FromPosition { get; set; }
|
||||
public int ToPosition { get; set; }
|
||||
public int DashboardStreamId { get; set; }
|
||||
public string StreamName { get; set; }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue