From 03eee93b4e65f4160413536288d8489c6e9b34f3 Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Sat, 28 Nov 2015 16:26:31 -0500 Subject: [PATCH] update script loading --- .../Api/PackageCreator.cs | 129 +++--------------- .../MediaBrowser.WebDashboard.csproj | 3 - 2 files changed, 21 insertions(+), 111 deletions(-) diff --git a/MediaBrowser.WebDashboard/Api/PackageCreator.cs b/MediaBrowser.WebDashboard/Api/PackageCreator.cs index f1b7465876..ae740c7d80 100644 --- a/MediaBrowser.WebDashboard/Api/PackageCreator.cs +++ b/MediaBrowser.WebDashboard/Api/PackageCreator.cs @@ -42,12 +42,7 @@ namespace MediaBrowser.WebDashboard.Api { Stream resourceStream; - if (path.Equals("scripts/all.js", StringComparison.OrdinalIgnoreCase)) - { - resourceStream = await GetAllJavascript(mode, localizationCulture, appVersion, enableMinification).ConfigureAwait(false); - enableMinification = false; - } - else if (path.Equals("css/all.css", StringComparison.OrdinalIgnoreCase)) + if (path.Equals("css/all.css", StringComparison.OrdinalIgnoreCase)) { resourceStream = await GetAllCss(enableMinification).ConfigureAwait(false); enableMinification = false; @@ -441,11 +436,21 @@ namespace MediaBrowser.WebDashboard.Api { var builder = new StringBuilder(); + builder.Append(""); + var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + version : string.Empty; var files = new List { - "scripts/all.js" + versionString + "bower_components/requirejs/require.js" + versionString, + "scripts/site.js" + versionString }; if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase)) @@ -453,113 +458,21 @@ namespace MediaBrowser.WebDashboard.Api files.Insert(0, "cordova.js"); } - var tags = files.Select(s => string.Format("", s)).ToArray(); + var tags = files.Select(s => + { + if (s.IndexOf("require", StringComparison.OrdinalIgnoreCase) == -1) + { + return string.Format("", s); + } + return string.Format("", s); + + }).ToArray(); builder.Append(string.Join(string.Empty, tags)); return builder.ToString(); } - /// - /// Gets a stream containing all concatenated javascript - /// - /// Task{Stream}. - private async Task GetAllJavascript(string mode, string culture, string version, bool enableMinification) - { - var memoryStream = new MemoryStream(); - var newLineBytes = Encoding.UTF8.GetBytes(Environment.NewLine); - - await AppendResource(memoryStream, "bower_components/jquery/dist/jquery.min.js", newLineBytes).ConfigureAwait(false); - - //await AppendLocalization(memoryStream, culture, excludePhrases).ConfigureAwait(false); - await memoryStream.WriteAsync(newLineBytes, 0, newLineBytes.Length).ConfigureAwait(false); - - if (!string.IsNullOrWhiteSpace(mode)) - { - var appModeBytes = Encoding.UTF8.GetBytes(string.Format("window.appMode='{0}';", mode)); - await memoryStream.WriteAsync(appModeBytes, 0, appModeBytes.Length).ConfigureAwait(false); - } - - // Write the version string for the dashboard comparison function - var versionString = string.Format("window.dashboardVersion='{0}';", version); - var versionBytes = Encoding.UTF8.GetBytes(versionString); - - await memoryStream.WriteAsync(versionBytes, 0, versionBytes.Length).ConfigureAwait(false); - await memoryStream.WriteAsync(newLineBytes, 0, newLineBytes.Length).ConfigureAwait(false); - - var builder = new StringBuilder(); - - var commonFiles = new[] - { - "bower_components/requirejs/require.js" - }.ToList(); - - foreach (var file in commonFiles) - { - using (var fs = _fileSystem.GetFileStream(GetDashboardResourcePath(file), FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true)) - { - using (var streamReader = new StreamReader(fs)) - { - var text = await streamReader.ReadToEndAsync().ConfigureAwait(false); - builder.Append(text); - builder.Append(Environment.NewLine); - } - } - } - - foreach (var file in GetScriptFiles()) - { - var path = GetDashboardResourcePath("scripts/" + file); - - using (var fs = _fileSystem.GetFileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, true)) - { - using (var streamReader = new StreamReader(fs)) - { - var text = await streamReader.ReadToEndAsync().ConfigureAwait(false); - builder.Append(text); - builder.Append(Environment.NewLine); - } - } - } - - var js = builder.ToString(); - - if (enableMinification) - { - try - { - var result = new CrockfordJsMinifier().Minify(js, false, Encoding.UTF8); - - if (result.Errors.Count > 0) - { - _logger.Error("Error minifying javascript: " + result.Errors[0].Message); - } - else - { - js = result.MinifiedContent; - } - } - catch (Exception ex) - { - _logger.ErrorException("Error minifying javascript", ex); - } - } - - var bytes = Encoding.UTF8.GetBytes(js); - await memoryStream.WriteAsync(bytes, 0, bytes.Length).ConfigureAwait(false); - - memoryStream.Position = 0; - return memoryStream; - } - private IEnumerable GetScriptFiles() - { - return new[] - { - "extensions.js", - "site.js" - }; - } - /// /// Appends the resource. /// diff --git a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj index 8f73bf6caf..b5879836f6 100644 --- a/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj +++ b/MediaBrowser.WebDashboard/MediaBrowser.WebDashboard.csproj @@ -1009,9 +1009,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest