aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Barron <barronpm@gmail.com>2020-07-27 19:22:34 -0400
committerPatrick Barron <barronpm@gmail.com>2020-07-27 19:22:34 -0400
commit592d2480ca9c424c7b8b8f4be2bdfa81b4476f0c (patch)
tree8e5bbc3e5e450b685070e005a590c7ab04841425
parent13d919f23649bf159ff44fb3f5b4e132549cbbf7 (diff)
Make adjustments to display preference entities.
-rw-r--r--Jellyfin.Data/Entities/DisplayPreferences.cs65
-rw-r--r--Jellyfin.Data/Entities/LibraryDisplayPreferences.cs120
-rw-r--r--Jellyfin.Data/Entities/User.cs12
3 files changed, 143 insertions, 54 deletions
diff --git a/Jellyfin.Data/Entities/DisplayPreferences.cs b/Jellyfin.Data/Entities/DisplayPreferences.cs
index bcb872db3..44b70d970 100644
--- a/Jellyfin.Data/Entities/DisplayPreferences.cs
+++ b/Jellyfin.Data/Entities/DisplayPreferences.cs
@@ -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>();
}
@@ -51,50 +55,17 @@ namespace Jellyfin.Data.Entities
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>
/// <remarks>
@@ -111,18 +82,6 @@ namespace Jellyfin.Data.Entities
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>
/// <remarks>
diff --git a/Jellyfin.Data/Entities/LibraryDisplayPreferences.cs b/Jellyfin.Data/Entities/LibraryDisplayPreferences.cs
new file mode 100644
index 000000000..87be1c6f7
--- /dev/null
+++ b/Jellyfin.Data/Entities/LibraryDisplayPreferences.cs
@@ -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; }
+ }
+}
diff --git a/Jellyfin.Data/Entities/User.cs b/Jellyfin.Data/Entities/User.cs
index d93144e3a..dc4bd9979 100644
--- a/Jellyfin.Data/Entities/User.cs
+++ b/Jellyfin.Data/Entities/User.cs
@@ -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>