aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs')
-rw-r--r--MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs33
1 files changed, 28 insertions, 5 deletions
diff --git a/MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs b/MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs
index 939bf280a..81b441a07 100644
--- a/MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs
+++ b/MediaBrowser.Api/Reports/Common/ReportBuilderBase.cs
@@ -54,10 +54,10 @@ namespace MediaBrowser.Api.Reports
/// <typeparam name="T"> Generic type parameter. </typeparam>
/// <param name="options"> Options for controlling the operation. </param>
/// <returns> The active headers. </returns>
- protected List<ReportHeader> GetActiveHeaders<T>(List<ReportOptions<T>> options)
+ protected List<ReportHeader> GetActiveHeaders<T>(List<ReportOptions<T>> options, ReportDisplayType displayType)
{
List<ReportHeader> headers = new List<ReportHeader>();
- foreach (ReportOptions<T> option in options.Where(x => x.Header.Visible == true))
+ foreach (ReportOptions<T> option in options.Where(x => this.DisplayTypeVisible(x.Header.DisplayType, displayType)))
{
headers.Add(option.Header);
}
@@ -221,9 +221,12 @@ namespace MediaBrowser.Api.Reports
{
List<HeaderMetadata> headersMetadata = getHeadersMetadata();
List<ReportOptions<T>> options = new List<ReportOptions<T>>();
+ ReportDisplayType displayType = ReportHelper.GetReportDisplayType(request.DisplayType);
foreach (HeaderMetadata header in headersMetadata)
{
- options.Add(getOptions(header));
+ ReportOptions<T> headerOptions = getOptions(header);
+ if (this.DisplayTypeVisible(headerOptions.Header.DisplayType, displayType))
+ options.Add(headerOptions);
}
if (request != null && !string.IsNullOrEmpty(request.ReportColumns))
@@ -231,10 +234,17 @@ namespace MediaBrowser.Api.Reports
List<HeaderMetadata> headersMetadataFiltered = ReportHelper.GetFilteredReportHeaderMetadata(request.ReportColumns, () => headersMetadata);
foreach (ReportHeader header in options.Select(x => x.Header))
{
- if (!headersMetadataFiltered.Contains(header.FieldName))
+
+ if (this.DisplayTypeVisible(header.DisplayType, displayType))
{
- header.Visible = false;
+
+ if (!headersMetadataFiltered.Contains(header.FieldName) && displayType != ReportDisplayType.Export)
+ {
+ header.DisplayType = ReportDisplayType.None;
+ }
}
+ else
+ header.DisplayType = ReportDisplayType.None;
}
}
@@ -336,6 +346,19 @@ namespace MediaBrowser.Api.Reports
return string.Empty;
}
+ /// <summary> Displays a type visible. </summary>
+ /// <param name="headerDisplayType"> Type of the header display. </param>
+ /// <param name="displayType"> Type of the display. </param>
+ /// <returns> true if it succeeds, false if it fails. </returns>
+ protected bool DisplayTypeVisible(ReportDisplayType headerDisplayType, ReportDisplayType displayType)
+ {
+ if (headerDisplayType == ReportDisplayType.None)
+ return false;
+
+ bool rval = headerDisplayType == displayType || headerDisplayType == ReportDisplayType.ScreenExport && (displayType == ReportDisplayType.Screen || displayType == ReportDisplayType.Export);
+ return rval;
+ }
+
#endregion
}