diff options
| author | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-03-07 10:53:23 -0500 |
|---|---|---|
| committer | Luke Pulverenti <luke.pulverenti@gmail.com> | 2014-03-07 10:53:23 -0500 |
| commit | e00985d07ca3923f7f558b8592c0d092842bff5d (patch) | |
| tree | d95f5cc3dbf068fc9416441de9f925ac39ee7f5d /MediaBrowser.Server.Implementations/Collections/CollectionsDynamicFolder.cs | |
| parent | c85f2957d9b68bf99dbd23efb2b8421845efd157 (diff) | |
#715 - Support creating/editing collections (boxsets) in web client
Diffstat (limited to 'MediaBrowser.Server.Implementations/Collections/CollectionsDynamicFolder.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Collections/CollectionsDynamicFolder.cs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Collections/CollectionsDynamicFolder.cs b/MediaBrowser.Server.Implementations/Collections/CollectionsDynamicFolder.cs new file mode 100644 index 000000000..834fbcd31 --- /dev/null +++ b/MediaBrowser.Server.Implementations/Collections/CollectionsDynamicFolder.cs @@ -0,0 +1,55 @@ +using MediaBrowser.Common.Configuration; +using MediaBrowser.Controller.Entities; +using System.IO; +using System.Linq; + +namespace MediaBrowser.Server.Implementations.Collections +{ + public class CollectionsDynamicFolder : IVirtualFolderCreator + { + private readonly IApplicationPaths _appPaths; + + public CollectionsDynamicFolder(IApplicationPaths appPaths) + { + _appPaths = appPaths; + } + + public BasePluginFolder GetFolder() + { + var path = Path.Combine(_appPaths.DataPath, "collections"); + + Directory.CreateDirectory(path); + + return new ManualCollectionsFolder + { + Path = path + }; + } + } + + public class ManualCollectionsFolder : BasePluginFolder + { + public ManualCollectionsFolder() + { + Name = "Collections"; + } + + public override bool IsVisible(User user) + { + if (!GetChildren(user, true).Any()) + { + return false; + } + + return base.IsVisible(user); + } + + public override bool IsHidden + { + get + { + return !ActualChildren.Any() || base.IsHidden; + } + } + } +} |
