Smart Filters & Dashboard Customization (#2282)

Co-authored-by: Robbie Davis <robbie@therobbiedavis.com>
This commit is contained in:
Joe Milazzo 2023-09-12 11:24:47 -07:00 committed by GitHub
parent 3d501c9532
commit 84f85b4f24
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
92 changed files with 7149 additions and 555 deletions

View 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; }
}

View file

@ -1,7 +1,7 @@
using System;
using API.Entities.Enums;
namespace API.DTOs;
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>

View file

@ -1,7 +1,7 @@
using System;
using API.Entities.Enums;
namespace API.DTOs;
namespace API.DTOs.Dashboard;
/// <summary>
/// A mesh of data for Recently added volume/chapters

View 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; }
}

View 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; }
}

View file

@ -25,5 +25,9 @@ public enum SortField
/// <summary>
/// Release Year of the Series
/// </summary>
ReleaseYear = 6
ReleaseYear = 6,
/// <summary>
/// Last time the user had any reading progress
/// </summary>
ReadProgress = 7,
}

View file

@ -36,5 +36,10 @@ public enum FilterField
/// <summary>
/// File path
/// </summary>
FilePath = 25
FilePath = 25,
/// <summary>
/// On Want To Read or Not
/// </summary>
WantToRead = 26
}

View file

@ -10,6 +10,10 @@ namespace API.DTOs.Filtering.v2;
/// </summary>
public class FilterV2Dto
{
/// <summary>
/// Not used in the UI.
/// </summary>
public int Id { get; set; }
/// <summary>
/// The name of the filter
/// </summary>