Make adjustments to display preference entities.

pull/3578/head
Patrick Barron 4 years ago
parent 13d919f236
commit 592d2480ca

@ -14,14 +14,18 @@ namespace Jellyfin.Data.Entities
/// <summary>
/// Initializes a new instance of the <see cref="DisplayPreferences"/> class.
/// </summary>
/// <param name="client">The client string.</param>
/// <param name="userId">The user's id.</param>
public DisplayPreferences(string client, Guid userId)
/// <param name="client">The client string.</param>
public DisplayPreferences(Guid userId, string client)
{
RememberIndexing = false;
ShowBackdrop = true;
Client = client;
UserId = userId;
Client = client;
ShowSidebar = false;
ShowBackdrop = true;
SkipForwardLength = 30000;
SkipBackwardLength = 10000;
ScrollDirection = ScrollDirection.Horizontal;
ChromecastVersion = ChromecastVersion.Stable;
HomeSections = new HashSet<HomeSection>();
}
@ -50,50 +54,17 @@ namespace Jellyfin.Data.Entities
/// </remarks>
public Guid UserId { get; set; }
/// <summary>
/// Gets or sets the id of the associated item.
/// </summary>
/// <remarks>
/// This is currently unused. In the future, this will allow us to have users set
/// display preferences per item.
/// </remarks>
public Guid? ItemId { get; set; }
/// <summary>
/// Gets or sets the client string.
/// </summary>
/// <remarks>
/// Required. Max Length = 64.
/// Required. Max Length = 32.
/// </remarks>
[Required]
[MaxLength(64)]
[StringLength(64)]
[MaxLength(32)]
[StringLength(32)]
public string Client { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the indexing should be remembered.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public bool RememberIndexing { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the sorting type should be remembered.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public bool RememberSorting { get; set; }
/// <summary>
/// Gets or sets the sort order.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public SortOrder SortOrder { get; set; }
/// <summary>
/// Gets or sets a value indicating whether to show the sidebar.
/// </summary>
@ -110,18 +81,6 @@ namespace Jellyfin.Data.Entities
/// </remarks>
public bool ShowBackdrop { get; set; }
/// <summary>
/// Gets or sets what the view should be sorted by.
/// </summary>
[MaxLength(64)]
[StringLength(64)]
public string SortBy { get; set; }
/// <summary>
/// Gets or sets the view type.
/// </summary>
public ViewType? ViewType { get; set; }
/// <summary>
/// Gets or sets the scroll direction.
/// </summary>

@ -0,0 +1,120 @@
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Jellyfin.Data.Enums;
namespace Jellyfin.Data.Entities
{
public class LibraryDisplayPreferences
{
/// <summary>
/// Initializes a new instance of the <see cref="LibraryDisplayPreferences"/> class.
/// </summary>
/// <param name="userId">The user id.</param>
/// <param name="itemId">The item id.</param>
/// <param name="client">The client.</param>
public LibraryDisplayPreferences(Guid userId, Guid itemId, string client)
{
UserId = userId;
ItemId = itemId;
Client = client;
SortBy = "SortName";
ViewType = ViewType.Poster;
SortOrder = SortOrder.Ascending;
RememberSorting = false;
RememberIndexing = false;
}
/// <summary>
/// Initializes a new instance of the <see cref="LibraryDisplayPreferences"/> class.
/// </summary>
protected LibraryDisplayPreferences()
{
}
/// <summary>
/// Gets or sets the Id.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; protected set; }
/// <summary>
/// Gets or sets the user Id.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public Guid UserId { get; set; }
/// <summary>
/// Gets or sets the id of the associated item.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public Guid ItemId { get; set; }
/// <summary>
/// Gets or sets the client string.
/// </summary>
/// <remarks>
/// Required. Max Length = 32.
/// </remarks>
[Required]
[MaxLength(32)]
[StringLength(32)]
public string Client { get; set; }
/// <summary>
/// Gets or sets the view type.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public ViewType ViewType { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the indexing should be remembered.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public bool RememberIndexing { get; set; }
/// <summary>
/// Gets or sets what the view should be indexed by.
/// </summary>
public IndexingKind? IndexBy { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the sorting type should be remembered.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public bool RememberSorting { get; set; }
/// <summary>
/// Gets or sets what the view should be sorted by.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
[Required]
[MaxLength(64)]
[StringLength(64)]
public string SortBy { get; set; }
/// <summary>
/// Gets or sets the sort order.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
public SortOrder SortOrder { get; set; }
}
}

@ -48,6 +48,7 @@ namespace Jellyfin.Data.Entities
PasswordResetProviderId = passwordResetProviderId;
AccessSchedules = new HashSet<AccessSchedule>();
LibraryDisplayPreferences = new HashSet<LibraryDisplayPreferences>();
// Groups = new HashSet<Group>();
Permissions = new HashSet<Permission>();
Preferences = new HashSet<Preference>();
@ -327,6 +328,15 @@ namespace Jellyfin.Data.Entities
// [ForeignKey("UserId")]
public virtual ImageInfo ProfileImage { get; set; }
/// <summary>
/// Gets or sets the user's display preferences.
/// </summary>
/// <remarks>
/// Required.
/// </remarks>
[Required]
public virtual DisplayPreferences DisplayPreferences { get; set; }
[Required]
public SyncPlayAccess SyncPlayAccess { get; set; }
@ -352,7 +362,7 @@ namespace Jellyfin.Data.Entities
/// <summary>
/// Gets or sets the list of item display preferences.
/// </summary>
public virtual ICollection<DisplayPreferences> DisplayPreferences { get; protected set; }
public virtual ICollection<LibraryDisplayPreferences> LibraryDisplayPreferences { get; protected set; }
/*
/// <summary>

Loading…
Cancel
Save