Abstracting more CDF methods
This commit is contained in:
@@ -25,5 +25,8 @@ namespace Umbraco.Core.Runtime
|
||||
IEnumerable<string> GetAssetPaths(AssetType assetType, List<IAssetFile> attributes);
|
||||
|
||||
string Minify(string src);
|
||||
void Reset();
|
||||
string GetScriptForBackOffice();
|
||||
IEnumerable<string> GetAssetList();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -243,12 +243,7 @@ namespace Umbraco.Web.Editors
|
||||
[OutputCache(Order = 1, VaryByParam = "none", Location = OutputCacheLocation.Server, Duration = 5000)]
|
||||
public JavaScriptResult Application()
|
||||
{
|
||||
var initJs = new JsInitialization(_manifestParser, _runtimeMinifier);
|
||||
var initCss = new CssInitialization(_manifestParser, _runtimeMinifier);
|
||||
|
||||
var files = initJs.OptimizeBackOfficeScriptFiles(HttpContext, JsInitialization.GetDefaultInitialization());
|
||||
var result = JsInitialization.GetJavascriptInitialization(HttpContext, files, "umbraco", GlobalSettings, _ioHelper);
|
||||
result += initCss.GetStylesheetInitialization(HttpContext);
|
||||
var result = _runtimeMinifier.GetScriptForBackOffice();
|
||||
|
||||
return JavaScript(result);
|
||||
}
|
||||
@@ -263,11 +258,8 @@ namespace Umbraco.Web.Editors
|
||||
{
|
||||
JArray GetAssetList()
|
||||
{
|
||||
var initJs = new JsInitialization(_manifestParser, _runtimeMinifier);
|
||||
var initCss = new CssInitialization(_manifestParser, _runtimeMinifier);
|
||||
var assets = new List<string>();
|
||||
assets.AddRange(initJs.OptimizeBackOfficeScriptFiles(HttpContext, Enumerable.Empty<string>()));
|
||||
assets.AddRange(initCss.GetStylesheetFiles(HttpContext));
|
||||
var assets = _runtimeMinifier.GetAssetList();
|
||||
|
||||
return new JArray(assets);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Web.Mvc;
|
||||
using ClientDependency.Core;
|
||||
using ClientDependency.Core.CompositeFiles;
|
||||
using ClientDependency.Core.Config;
|
||||
using Umbraco.Core.Assets;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Manifest;
|
||||
using Umbraco.Core.Runtime;
|
||||
|
||||
namespace Umbraco.Web.JavaScript.CDF
|
||||
@@ -13,13 +18,23 @@ namespace Umbraco.Web.JavaScript.CDF
|
||||
public class ClientDependencyRuntimeMinifier : IRuntimeMinifier
|
||||
{
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly IIOHelper _ioHelper;
|
||||
private readonly ILogger _logger;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
private readonly IManifestParser _manifestParser;
|
||||
private readonly IGlobalSettings _globalSettings;
|
||||
private readonly HtmlHelper _htmlHelper;
|
||||
|
||||
public string GetHashValue => ClientDependencySettings.Instance.Version.ToString();
|
||||
|
||||
public ClientDependencyRuntimeMinifier(IHttpContextAccessor httpContextAccessor)
|
||||
public ClientDependencyRuntimeMinifier(IHttpContextAccessor httpContextAccessor, IIOHelper ioHelper, ILogger logger, IUmbracoVersion umbracoVersion, IManifestParser manifestParser, IGlobalSettings globalSettings)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_ioHelper = ioHelper;
|
||||
_logger = logger;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
_manifestParser = manifestParser;
|
||||
_globalSettings = globalSettings;
|
||||
_htmlHelper = new HtmlHelper(new ViewContext(), new ViewPage());
|
||||
}
|
||||
|
||||
@@ -79,6 +94,41 @@ namespace Umbraco.Web.JavaScript.CDF
|
||||
return jsMinifier.Minify(reader);
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
// Update ClientDependency version
|
||||
var clientDependencyConfig = new ClientDependencyConfiguration(_logger, _ioHelper);
|
||||
var clientDependencyUpdated = clientDependencyConfig.UpdateVersionNumber(
|
||||
_umbracoVersion.SemanticVersion, DateTime.UtcNow, "yyyyMMdd");
|
||||
// Delete ClientDependency temp directories to make sure we get fresh caches
|
||||
var clientDependencyTempFilesDeleted = clientDependencyConfig.ClearTempFiles(_httpContextAccessor.HttpContext);
|
||||
}
|
||||
|
||||
public string GetScriptForBackOffice()
|
||||
{
|
||||
var initJs = new JsInitialization(_manifestParser, this);
|
||||
var initCss = new CssInitialization(_manifestParser, this);
|
||||
|
||||
var httpContext = _httpContextAccessor.GetRequiredHttpContext();
|
||||
var files = initJs.OptimizeBackOfficeScriptFiles(httpContext, JsInitialization.GetDefaultInitialization());
|
||||
var result = JavaScriptHelper.GetJavascriptInitialization(httpContext, files, "umbraco", _globalSettings, _ioHelper);
|
||||
result += initCss.GetStylesheetInitialization(httpContext);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetAssetList()
|
||||
{
|
||||
var initJs = new JsInitialization(_manifestParser, this);
|
||||
var initCss = new CssInitialization(_manifestParser, this);
|
||||
var assets = new List<string>();
|
||||
var httpContext = _httpContextAccessor.GetRequiredHttpContext();
|
||||
assets.AddRange(initJs.OptimizeBackOfficeScriptFiles(httpContext, Enumerable.Empty<string>()));
|
||||
assets.AddRange(initCss.GetStylesheetFiles(httpContext));
|
||||
|
||||
return assets;
|
||||
}
|
||||
|
||||
private ClientDependencyType MapDependencyTypeValue(AssetType type)
|
||||
{
|
||||
switch (type)
|
||||
|
||||
Reference in New Issue
Block a user