diff options
Diffstat (limited to 'MediaBrowser.WebDashboard/Api/DashboardService.cs')
| -rw-r--r-- | MediaBrowser.WebDashboard/Api/DashboardService.cs | 36 |
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)) { |
