add custom collection sort orders to edit page

pull/702/head
Luke Pulverenti 11 years ago
parent ede84702d1
commit ecc6fcfbab

@ -318,6 +318,12 @@ namespace MediaBrowser.Api
hasLang.PreferredMetadataCountryCode = request.PreferredMetadataCountryCode;
hasLang.PreferredMetadataLanguage = request.PreferredMetadataLanguage;
}
var hasDisplayOrder = item as IHasDisplayOrder;
if (hasDisplayOrder != null)
{
hasDisplayOrder.DisplayOrder = request.DisplayOrder;
}
var hasAspectRatio = item as IHasAspectRatio;
if (hasAspectRatio != null)

@ -0,0 +1,15 @@

namespace MediaBrowser.Controller.Entities
{
/// <summary>
/// Interface IHasDisplayOrder
/// </summary>
public interface IHasDisplayOrder
{
/// <summary>
/// Gets or sets the display order.
/// </summary>
/// <value>The display order.</value>
string DisplayOrder { get; set; }
}
}

@ -9,7 +9,7 @@ namespace MediaBrowser.Controller.Entities.Movies
/// <summary>
/// Class BoxSet
/// </summary>
public class BoxSet : Folder, IHasTrailers, IHasTags, IHasPreferredMetadataLanguage
public class BoxSet : Folder, IHasTrailers, IHasTags, IHasPreferredMetadataLanguage, IHasDisplayOrder
{
public BoxSet()
{
@ -40,6 +40,12 @@ namespace MediaBrowser.Controller.Entities.Movies
/// <value>The preferred metadata country code.</value>
public string PreferredMetadataCountryCode { get; set; }
/// <summary>
/// Gets or sets the display order.
/// </summary>
/// <value>The display order.</value>
public string DisplayOrder { get; set; }
protected override bool GetBlockUnratedValue(UserConfiguration config)
{
return config.BlockUnratedMovies;
@ -49,6 +55,19 @@ namespace MediaBrowser.Controller.Entities.Movies
{
var children = base.GetChildren(user, includeLinkedChildren);
if (string.Equals(DisplayOrder, "SortName", StringComparison.OrdinalIgnoreCase))
{
// Sort by name
return LibraryManager.Sort(children, user, new[] { ItemSortBy.SortName }, SortOrder.Ascending);
}
if (string.Equals(DisplayOrder, "PremiereDate", StringComparison.OrdinalIgnoreCase))
{
// Sort by release date
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending);
}
// Default sorting
return LibraryManager.Sort(children, user, new[] { ItemSortBy.ProductionYear, ItemSortBy.PremiereDate, ItemSortBy.SortName }, SortOrder.Ascending);
}
}

@ -14,7 +14,7 @@ namespace MediaBrowser.Controller.Entities.TV
/// <summary>
/// Class Series
/// </summary>
public class Series : Folder, IHasSoundtracks, IHasTrailers, IHasTags, IHasPreferredMetadataLanguage
public class Series : Folder, IHasSoundtracks, IHasTrailers, IHasTags, IHasPreferredMetadataLanguage, IHasDisplayOrder
{
public List<Guid> SpecialFeatureIds { get; set; }
public List<Guid> SoundtrackIds { get; set; }
@ -45,6 +45,8 @@ namespace MediaBrowser.Controller.Entities.TV
public List<MediaUrl> RemoteTrailers { get; set; }
public string DisplayOrder { get; set; }
/// <summary>
/// Gets or sets the tags.
/// </summary>

@ -238,7 +238,7 @@ namespace MediaBrowser.Controller.Entities
if (string.IsNullOrEmpty(parentPath))
{
throw new ApplicationException("Unable to get parent path info from " + path);
throw new IOException("Unable to get parent path info from " + path);
}
files = new DirectoryInfo(parentPath)
@ -247,7 +247,14 @@ namespace MediaBrowser.Controller.Entities
}
else
{
files = ResolveArgs.FileSystemChildren.Where(i =>
var resolveArgs = ResolveArgs;
if (resolveArgs == null)
{
throw new IOException("ResolveArgs are null for " + path);
}
files = resolveArgs.FileSystemChildren.Where(i =>
{
if ((i.Attributes & FileAttributes.Directory) == FileAttributes.Directory)
{

@ -85,6 +85,7 @@
<Compile Include="Entities\IHasAspectRatio.cs" />
<Compile Include="Entities\IHasBudget.cs" />
<Compile Include="Entities\IHasCriticRating.cs" />
<Compile Include="Entities\IHasDisplayOrder.cs" />
<Compile Include="Entities\IHasImages.cs" />
<Compile Include="Entities\IHasMediaStreams.cs" />
<Compile Include="Entities\IHasPreferredMetadataLanguage.cs" />

@ -532,6 +532,21 @@ namespace MediaBrowser.Controller.Providers
break;
}
case "DisplayOrder":
{
var val = reader.ReadElementContentAsString();
var hasDisplayOrder = item as IHasDisplayOrder;
if (hasDisplayOrder != null)
{
if (!string.IsNullOrWhiteSpace(val))
{
hasDisplayOrder.DisplayOrder = val;
}
}
break;
}
case "Trailers":
{
using (var subtree = reader.ReadSubtree())

@ -392,6 +392,12 @@ namespace MediaBrowser.Model.Dto
/// <value>The album.</value>
public string Album { get; set; }
/// <summary>
/// Gets or sets the display order.
/// </summary>
/// <value>The display order.</value>
public string DisplayOrder { get; set; }
/// <summary>
/// Gets or sets the album id.
/// </summary>

@ -60,7 +60,11 @@ namespace MediaBrowser.Providers.ImagesByName
private static string GetComparableName(string name)
{
return name.Replace(" ", string.Empty).Replace(".", string.Empty).Replace("&", string.Empty).Replace("!", string.Empty);
return name.Replace(" ", string.Empty)
.Replace(".", string.Empty)
.Replace("&", string.Empty)
.Replace("!", string.Empty)
.Replace(",", string.Empty);
}
public static IEnumerable<string> GetAvailableImages(string file)

@ -2,8 +2,6 @@
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
using MediaBrowser.Providers.Movies;
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;

@ -31,6 +31,7 @@ namespace MediaBrowser.Providers.Savers
"CriticRating",
"CriticRatingSummary",
"DeathDate",
"DisplayOrder",
"EndDate",
"Genres",
"Genre",
@ -284,6 +285,12 @@ namespace MediaBrowser.Providers.Savers
}
}
var hasDisplayOrder = item as IHasDisplayOrder;
if (hasDisplayOrder != null && !string.IsNullOrEmpty(hasDisplayOrder.DisplayOrder))
{
builder.Append("<DisplayOrder>" + SecurityElement.Escape(hasDisplayOrder.DisplayOrder) + "</DisplayOrder>");
}
var hasBudget = item as IHasBudget;
if (hasBudget != null)
{

@ -764,6 +764,12 @@ namespace MediaBrowser.Server.Implementations.Dto
dto.LocalTrailerCount = hasTrailers.LocalTrailerIds.Count;
}
var hasDisplayOrder = item as IHasDisplayOrder;
if (hasDisplayOrder != null)
{
dto.DisplayOrder = hasDisplayOrder.DisplayOrder;
}
if (fields.Contains(ItemFields.RemoteTrailers))
{
dto.RemoteTrailers = hasTrailers != null ?

Loading…
Cancel
Save