aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.WebDashboard/Api/DashboardService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.WebDashboard/Api/DashboardService.cs')
-rw-r--r--MediaBrowser.WebDashboard/Api/DashboardService.cs36
1 files changed, 15 insertions, 21 deletions
diff --git a/MediaBrowser.WebDashboard/Api/DashboardService.cs b/MediaBrowser.WebDashboard/Api/DashboardService.cs
index 47662b509..f0c352157 100644
--- a/MediaBrowser.WebDashboard/Api/DashboardService.cs
+++ b/MediaBrowser.WebDashboard/Api/DashboardService.cs
@@ -119,15 +119,12 @@ namespace MediaBrowser.WebDashboard.Api
private readonly ILocalizationManager _localization;
private readonly IJsonSerializer _jsonSerializer;
private readonly IAssemblyInfo _assemblyInfo;
- private readonly IMemoryStreamFactory _memoryStreamFactory;
+ private IResourceFileManager _resourceFileManager;
/// <summary>
/// Initializes a new instance of the <see cref="DashboardService" /> class.
/// </summary>
- /// <param name="appHost">The app host.</param>
- /// <param name="serverConfigurationManager">The server configuration manager.</param>
- /// <param name="fileSystem">The file system.</param>
- public DashboardService(IServerApplicationHost appHost, IServerConfigurationManager serverConfigurationManager, IFileSystem fileSystem, ILocalizationManager localization, IJsonSerializer jsonSerializer, IAssemblyInfo assemblyInfo, ILogger logger, IHttpResultFactory resultFactory, IMemoryStreamFactory memoryStreamFactory)
+ public DashboardService(IServerApplicationHost appHost, IResourceFileManager resourceFileManager, IServerConfigurationManager serverConfigurationManager, IFileSystem fileSystem, ILocalizationManager localization, IJsonSerializer jsonSerializer, IAssemblyInfo assemblyInfo, ILogger logger, IHttpResultFactory resultFactory)
{
_appHost = appHost;
_serverConfigurationManager = serverConfigurationManager;
@@ -137,7 +134,7 @@ namespace MediaBrowser.WebDashboard.Api
_assemblyInfo = assemblyInfo;
_logger = logger;
_resultFactory = resultFactory;
- _memoryStreamFactory = memoryStreamFactory;
+ _resourceFileManager = resourceFileManager;
}
/// <summary>
@@ -267,7 +264,7 @@ namespace MediaBrowser.WebDashboard.Api
configPages = configPages.Where(p => p.EnableInMainMenu == request.EnableInMainMenu.Value).ToList();
}
- return _resultFactory.GetOptimizedResult(Request, configPages);
+ return configPages;
}
private IEnumerable<Tuple<PluginPageInfo, IPlugin>> GetPluginPages()
@@ -309,19 +306,18 @@ namespace MediaBrowser.WebDashboard.Api
{
var path = request.ResourceName;
- path = path.Replace("bower_components" + _appHost.ApplicationVersion, "bower_components", StringComparison.OrdinalIgnoreCase);
-
var contentType = MimeTypes.GetMimeType(path);
var basePath = DashboardUIPath;
// Bounce them to the startup wizard if it hasn't been completed yet
if (!_serverConfigurationManager.Configuration.IsStartupWizardCompleted &&
- path.IndexOf("wizard", StringComparison.OrdinalIgnoreCase) == -1 && GetPackageCreator(basePath).IsCoreHtml(path))
+ Request.RawUrl.IndexOf("wizard", StringComparison.OrdinalIgnoreCase) == -1 &&
+ GetPackageCreator(basePath).IsCoreHtml(path))
{
// But don't redirect if an html import is being requested.
if (path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
{
- Request.Response.Redirect("wizardstart.html");
+ Request.Response.Redirect("index.html?start=wizard#!/wizardstart.html");
return null;
}
}
@@ -335,7 +331,7 @@ namespace MediaBrowser.WebDashboard.Api
!contentType.StartsWith("font/", StringComparison.OrdinalIgnoreCase))
{
var stream = await GetResourceStream(basePath, path, localizationCulture).ConfigureAwait(false);
- return _resultFactory.GetResult(stream, contentType);
+ return _resultFactory.GetResult(Request, stream, contentType);
}
TimeSpan? cacheDuration = null;
@@ -355,7 +351,7 @@ namespace MediaBrowser.WebDashboard.Api
return await _resultFactory.GetStaticResult(Request, cacheKey, null, cacheDuration, contentType, () => GetResourceStream(basePath, path, localizationCulture)).ConfigureAwait(false);
}
- return await _resultFactory.GetStaticFileResult(Request, GetPackageCreator(basePath).GetResourcePath(path));
+ return await _resourceFileManager.GetStaticFileResult(Request, basePath, path, contentType, cacheDuration);
}
private string GetLocalizationCulture()
@@ -374,7 +370,7 @@ namespace MediaBrowser.WebDashboard.Api
private PackageCreator GetPackageCreator(string basePath)
{
- return new PackageCreator(basePath, _fileSystem, _logger, _serverConfigurationManager, _memoryStreamFactory);
+ return new PackageCreator(basePath, _fileSystem, _logger, _serverConfigurationManager, _resourceFileManager);
}
public async Task<object> Get(GetDashboardPackage request)
@@ -405,16 +401,14 @@ namespace MediaBrowser.WebDashboard.Api
CopyDirectory(inputPath, targetPath);
}
- string culture = null;
-
var appVersion = _appHost.ApplicationVersion.ToString();
- await DumpHtml(packageCreator, inputPath, targetPath, mode, culture, appVersion);
+ await DumpHtml(packageCreator, inputPath, targetPath, mode, appVersion);
return "";
}
- private async Task DumpHtml(PackageCreator packageCreator, string source, string destination, string mode, string culture, string appVersion)
+ private async Task DumpHtml(PackageCreator packageCreator, string source, string destination, string mode, string appVersion)
{
foreach (var file in _fileSystem.GetFiles(source))
{
@@ -425,13 +419,13 @@ namespace MediaBrowser.WebDashboard.Api
continue;
}
- await DumpFile(packageCreator, filename, Path.Combine(destination, filename), mode, culture, appVersion).ConfigureAwait(false);
+ await DumpFile(packageCreator, filename, Path.Combine(destination, filename), mode, appVersion).ConfigureAwait(false);
}
}
- private async Task DumpFile(PackageCreator packageCreator, string resourceVirtualPath, string destinationFilePath, string mode, string culture, string appVersion)
+ private async Task DumpFile(PackageCreator packageCreator, string resourceVirtualPath, string destinationFilePath, string mode, string appVersion)
{
- using (var stream = await packageCreator.GetResource(resourceVirtualPath, mode, culture, appVersion).ConfigureAwait(false))
+ using (var stream = await packageCreator.GetResource(resourceVirtualPath, mode, null, appVersion).ConfigureAwait(false))
{
using (var fs = _fileSystem.GetFileStream(destinationFilePath, FileOpenMode.Create, FileAccessMode.Write, FileShareMode.Read))
{