|
|
|
@ -68,14 +68,14 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
|
|
}
|
|
|
|
|
else if (IsFormat(path, "js"))
|
|
|
|
|
{
|
|
|
|
|
if (path.IndexOf("thirdparty", StringComparison.OrdinalIgnoreCase) == -1)
|
|
|
|
|
if (path.IndexOf("thirdparty", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
|
|
|
|
{
|
|
|
|
|
resourceStream = await ModifyJs(resourceStream, enableMinification).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (IsFormat(path, "css"))
|
|
|
|
|
{
|
|
|
|
|
if (path.IndexOf("thirdparty", StringComparison.OrdinalIgnoreCase) == -1)
|
|
|
|
|
if (path.IndexOf("thirdparty", StringComparison.OrdinalIgnoreCase) == -1 && path.IndexOf("bower_components", StringComparison.OrdinalIgnoreCase) == -1)
|
|
|
|
|
{
|
|
|
|
|
resourceStream = await ModifyCss(resourceStream, enableMinification).ConfigureAwait(false);
|
|
|
|
|
}
|
|
|
|
@ -269,11 +269,12 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
|
|
|
|
|
|
|
html = _localization.LocalizeDocument(html, localizationCulture, GetLocalizationToken);
|
|
|
|
|
|
|
|
|
|
html = html.Replace("<html>", "<html lang=\"" + lang + "\">")
|
|
|
|
|
.Replace("<body>", "<body><paper-drawer-panel class=\"mainDrawerPanel mainDrawerPanelPreInit\" forceNarrow><div class=\"mainDrawer\" drawer></div><div main><div class=\"pageContainer\">")
|
|
|
|
|
.Replace("</body>", "</div></div></paper-drawer-panel></body>");
|
|
|
|
|
html = html.Replace("<html>", "<html lang=\"" + lang + "\">");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
html = html.Replace("<body>", "<body><paper-drawer-panel class=\"mainDrawerPanel mainDrawerPanelPreInit\" forceNarrow><div class=\"mainDrawer\" drawer></div><div main><div class=\"pageContainer\">")
|
|
|
|
|
.Replace("</body>", "</div></div></paper-drawer-panel></body>");
|
|
|
|
|
|
|
|
|
|
if (enableMinification)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
@ -314,7 +315,7 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
|
|
// In chrome it is causing the body to be hidden while loading, which leads to width-check methods to return 0 for everything
|
|
|
|
|
//imports = "";
|
|
|
|
|
|
|
|
|
|
html = html.Replace("<head>", "<head>" + GetMetaTags(mode) + GetCommonCss(mode, version) + GetCommonJavascript(mode, version) + importsHtml);
|
|
|
|
|
html = html.Replace("<head>", "<head>" + GetMetaTags(mode) + GetCommonCss(mode, version) + GetInitialJavascript(mode, version) + importsHtml + GetCommonJavascript(mode, version));
|
|
|
|
|
|
|
|
|
|
var bytes = Encoding.UTF8.GetBytes(html);
|
|
|
|
|
|
|
|
|
@ -425,6 +426,35 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
|
|
return string.Join(string.Empty, tags);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the common javascript.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="mode">The mode.</param>
|
|
|
|
|
/// <param name="version">The version.</param>
|
|
|
|
|
/// <returns>System.String.</returns>
|
|
|
|
|
private string GetInitialJavascript(string mode, Version version)
|
|
|
|
|
{
|
|
|
|
|
var builder = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
var versionString = !string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase) ? "?v=" + version : string.Empty;
|
|
|
|
|
|
|
|
|
|
var files = new List<string>
|
|
|
|
|
{
|
|
|
|
|
"bower_components/webcomponentsjs/webcomponents-lite.js" + versionString
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (string.Equals(mode, "cordova", StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
{
|
|
|
|
|
files.Insert(0, "cordova.js");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var tags = files.Select(s => string.Format("<script src=\"{0}\"></script>", s)).ToArray();
|
|
|
|
|
|
|
|
|
|
builder.Append(string.Join(string.Empty, tags));
|
|
|
|
|
|
|
|
|
|
return builder.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Gets the common javascript.
|
|
|
|
|
/// </summary>
|
|
|
|
@ -463,15 +493,14 @@ namespace MediaBrowser.WebDashboard.Api
|
|
|
|
|
var memoryStream = new MemoryStream();
|
|
|
|
|
var newLineBytes = Encoding.UTF8.GetBytes(Environment.NewLine);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "bower_components/webcomponentsjs/webcomponents-lite.min.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "thirdparty/jquery-2.1.1.min.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "thirdparty/require.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "thirdparty/jquerymobile-1.4.5/jquery.mobile.custom.min.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "thirdparty/browser.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "thirdparty/require.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
await AppendResource(memoryStream, "thirdparty/jquery.unveil-custom.js", newLineBytes).ConfigureAwait(false);
|
|
|
|
|
|
|
|
|
|
var excludePhrases = new List<string>();
|
|
|
|
|