aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.WebDashboard
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2013-03-23 22:45:00 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2013-03-23 22:45:00 -0400
commite2dcddc5ac43846baea0f9b1a0fc62844dd9ee1d (patch)
treee3818758a13a107cb28e54bb63ce489366ea50d5 /MediaBrowser.WebDashboard
parent521ec4936101d6affaf68a95cd8dee090395e2b6 (diff)
made compression and caching available to plugin api endpoints
Diffstat (limited to 'MediaBrowser.WebDashboard')
-rw-r--r--MediaBrowser.WebDashboard/Api/DashboardService.cs40
-rw-r--r--MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj24
-rw-r--r--MediaBrowser.WebDashboard/packages.config3
3 files changed, 31 insertions, 36 deletions
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index 0c2b8a376c..476d16c5ef 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -1,5 +1,4 @@
-using System.Diagnostics;
-using MediaBrowser.Common.Extensions;
+using MediaBrowser.Common.Extensions;
using MediaBrowser.Common.IO;
using MediaBrowser.Common.Net;
using MediaBrowser.Common.ScheduledTasks;
@@ -9,11 +8,11 @@ using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Plugins;
using MediaBrowser.Model.Logging;
using MediaBrowser.Model.Tasks;
-using MediaBrowser.Server.Implementations.HttpServer;
using ServiceStack.ServiceHost;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
+using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
@@ -27,6 +26,7 @@ namespace MediaBrowser.WebDashboard.Api
/// Class GetDashboardConfigurationPages
/// </summary>
[Route("/dashboard/ConfigurationPages", "GET")]
+ [Restrict(VisibilityTo = EndpointAttributes.None)]
public class GetDashboardConfigurationPages : IReturn<List<ConfigurationPageInfo>>
{
/// <summary>
@@ -40,6 +40,7 @@ namespace MediaBrowser.WebDashboard.Api
/// Class GetDashboardConfigurationPage
/// </summary>
[Route("/dashboard/ConfigurationPage", "GET")]
+ [Restrict(VisibilityTo = EndpointAttributes.None)]
public class GetDashboardConfigurationPage
{
/// <summary>
@@ -53,6 +54,7 @@ namespace MediaBrowser.WebDashboard.Api
/// Class GetDashboardResource
/// </summary>
[Route("/dashboard/{ResourceName*}", "GET")]
+ [Restrict(VisibilityTo = EndpointAttributes.None)]
public class GetDashboardResource
{
/// <summary>
@@ -71,6 +73,7 @@ namespace MediaBrowser.WebDashboard.Api
/// Class GetDashboardInfo
/// </summary>
[Route("/dashboard/dashboardInfo", "GET")]
+ [Restrict(VisibilityTo = EndpointAttributes.None)]
public class GetDashboardInfo : IReturn<DashboardInfo>
{
}
@@ -79,9 +82,27 @@ namespace MediaBrowser.WebDashboard.Api
/// Class DashboardService
/// </summary>
[Export(typeof(IRestfulService))]
- public class DashboardService : BaseRestService
+ public class DashboardService : IRestfulService, IHasResultFactory
{
/// <summary>
+ /// Gets or sets the logger.
+ /// </summary>
+ /// <value>The logger.</value>
+ public ILogger Logger { get; set; }
+
+ /// <summary>
+ /// Gets or sets the HTTP result factory.
+ /// </summary>
+ /// <value>The HTTP result factory.</value>
+ public IHttpResultFactory ResultFactory { get; set; }
+
+ /// <summary>
+ /// Gets or sets the request context.
+ /// </summary>
+ /// <value>The request context.</value>
+ public IRequestContext RequestContext { get; set; }
+
+ /// <summary>
/// Gets or sets the task manager.
/// </summary>
/// <value>The task manager.</value>
@@ -172,7 +193,7 @@ namespace MediaBrowser.WebDashboard.Api
{
var page = ServerEntryPoint.Instance.PluginConfigurationPages.First(p => p.Name.Equals(request.Name, StringComparison.OrdinalIgnoreCase));
- return ToStaticResult(page.Plugin.Version.ToString().GetMD5(), page.Plugin.AssemblyDateLastModified, null, MimeTypes.GetMimeType("page.html"), () => ModifyHtml(page.GetHtmlStream()));
+ return ResultFactory.GetStaticResult(RequestContext, page.Plugin.Version.ToString().GetMD5(), page.Plugin.AssemblyDateLastModified, null, MimeTypes.GetMimeType("page.html"), () => ModifyHtml(page.GetHtmlStream()));
}
/// <summary>
@@ -189,7 +210,7 @@ namespace MediaBrowser.WebDashboard.Api
pages = pages.Where(p => p.ConfigurationPageType == request.PageType.Value);
}
- return ToOptimizedResult(pages.Select(p => new ConfigurationPageInfo(p)).ToList());
+ return ResultFactory.GetOptimizedResult(RequestContext, pages.Select(p => new ConfigurationPageInfo(p)).ToList());
}
/// <summary>
@@ -207,8 +228,7 @@ namespace MediaBrowser.WebDashboard.Api
// But always cache images to simulate production
if (!_serverConfigurationManager.Configuration.EnableDashboardResponseCaching && !contentType.StartsWith("image/", StringComparison.OrdinalIgnoreCase))
{
- Response.ContentType = contentType;
- return GetResourceStream(path).Result;
+ return ResultFactory.GetResult(GetResourceStream(path).Result, contentType);
}
TimeSpan? cacheDuration = null;
@@ -224,7 +244,7 @@ namespace MediaBrowser.WebDashboard.Api
var cacheKey = (assembly.Version + path).GetMD5();
- return ToStaticResult(cacheKey, null, cacheDuration, contentType, () => GetResourceStream(path));
+ return ResultFactory.GetStaticResult(RequestContext, cacheKey, null, cacheDuration, contentType, () => GetResourceStream(path));
}
/// <summary>
@@ -385,6 +405,7 @@ namespace MediaBrowser.WebDashboard.Api
var files = new[]
{
"http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css",
+ "http://vjs.zencdn.net/c/video-js.css",
"thirdparty/jqm-icon-pack-3.0/font-awesome/jqm-icon-pack-3.0.0-fa.css",
"css/site.css" + versionString
};
@@ -407,6 +428,7 @@ namespace MediaBrowser.WebDashboard.Api
{
"http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js",
"http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js",
+ "http://vjs.zencdn.net/c/video.js",
"scripts/all.js" + versionString
};
diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
index 6fcb1d2e63..843fd7a723 100644
--- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
+++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj
@@ -35,10 +35,6 @@
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<ItemGroup>
- <Reference Include="ServiceStack, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.3.9.42\lib\net35\ServiceStack.dll</HintPath>
- </Reference>
<Reference Include="ServiceStack.Common, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Common.3.9.42\lib\net35\ServiceStack.Common.dll</HintPath>
@@ -47,22 +43,6 @@
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Common.3.9.42\lib\net35\ServiceStack.Interfaces.dll</HintPath>
</Reference>
- <Reference Include="ServiceStack.OrmLite, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.42\lib\ServiceStack.OrmLite.dll</HintPath>
- </Reference>
- <Reference Include="ServiceStack.OrmLite.SqlServer, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.OrmLite.SqlServer.3.9.42\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
- </Reference>
- <Reference Include="ServiceStack.Redis, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.Redis.3.9.42\lib\net35\ServiceStack.Redis.dll</HintPath>
- </Reference>
- <Reference Include="ServiceStack.ServiceInterface, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\packages\ServiceStack.3.9.42\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
- </Reference>
<Reference Include="ServiceStack.Text, Version=3.9.42.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\ServiceStack.Text.3.9.42\lib\net35\ServiceStack.Text.dll</HintPath>
@@ -101,10 +81,6 @@
<Project>{7eeeb4bb-f3e8-48fc-b4c5-70f0fff8329b}</Project>
<Name>MediaBrowser.Model</Name>
</ProjectReference>
- <ProjectReference Include="..\MediaBrowser.Server.Implementations\MediaBrowser.Server.Implementations.csproj">
- <Project>{2e781478-814d-4a48-9d80-bff206441a65}</Project>
- <Name>MediaBrowser.Server.Implementations</Name>
- </ProjectReference>
</ItemGroup>
<ItemGroup>
<Content Include="dashboard-ui\index.html">
diff --git a/MediaBrowser.WebDashboard/packages.config b/MediaBrowser.WebDashboard/packages.config
index c9f456705f..4e1ee3bff0 100644
--- a/MediaBrowser.WebDashboard/packages.config
+++ b/MediaBrowser.WebDashboard/packages.config
@@ -1,9 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MediaBrowser.ApiClient.Javascript" version="3.0.50" targetFramework="net45" />
- <package id="ServiceStack" version="3.9.42" targetFramework="net45" />
<package id="ServiceStack.Common" version="3.9.42" targetFramework="net45" />
- <package id="ServiceStack.OrmLite.SqlServer" version="3.9.42" targetFramework="net45" />
- <package id="ServiceStack.Redis" version="3.9.42" targetFramework="net45" />
<package id="ServiceStack.Text" version="3.9.42" targetFramework="net45" />
</packages> \ No newline at end of file