AB#5822 - Abstraction of runtime minifier
This commit is contained in:
@@ -21,6 +21,11 @@ namespace Umbraco.Core.Composing
|
||||
public DisableAttribute()
|
||||
{ }
|
||||
|
||||
public DisableAttribute(string fullTypeName)
|
||||
{
|
||||
DisabledType = Type.GetType(fullTypeName);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DisableAttribute"/> class.
|
||||
/// </summary>
|
||||
|
||||
@@ -10,14 +10,14 @@ namespace Umbraco.Core.Runtime
|
||||
string GetHashValue { get; }
|
||||
|
||||
//return type HtmlHelper
|
||||
string RequiresCss(string filePath, string bundleName);
|
||||
void RequiresCss(string filePath, string bundleName);
|
||||
|
||||
//return type IHtmlString
|
||||
//IClientDependencyPath[]
|
||||
string RenderCssHere(string bundleName);
|
||||
|
||||
// return type HtmlHelper
|
||||
string RequiresJs(string filePath);
|
||||
void RequiresJs(string filePath, string bundleName);
|
||||
|
||||
// return type IHtmlString
|
||||
string RenderJsHere(string bundleName);
|
||||
|
||||
+9
-27
@@ -1,8 +1,12 @@
|
||||
|
||||
|
||||
using System;
|
||||
using System.Data.Common;
|
||||
using System.Reflection;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.FileProviders;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Smidge;
|
||||
using Umbraco.Composing;
|
||||
@@ -11,7 +15,6 @@ using Umbraco.Core;
|
||||
using Umbraco.Core.Cache;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Configuration.UmbracoSettings;
|
||||
using Umbraco.Core.IO;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Logging.Serilog;
|
||||
@@ -57,15 +60,15 @@ namespace Umbraco.Web.BackOffice.AspNetCore
|
||||
|
||||
var umbContainer = UmbracoServiceProviderFactory.UmbracoContainer;
|
||||
|
||||
return services.AddUmbracoCore(umbContainer, Assembly.GetEntryAssembly());
|
||||
services.AddUmbracoCore(umbContainer, Assembly.GetEntryAssembly());
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddUmbracoCore(this IServiceCollection services, IRegister umbContainer, Assembly entryAssembly)
|
||||
{
|
||||
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
||||
|
||||
CreateCompositionRoot(services);
|
||||
|
||||
// TODO: Get rid of this 'Current' requirement
|
||||
var globalSettings = Current.Configs.Global();
|
||||
var umbracoVersion = new UmbracoVersion(globalSettings);
|
||||
@@ -114,27 +117,6 @@ namespace Umbraco.Web.BackOffice.AspNetCore
|
||||
return coreRuntime;
|
||||
}
|
||||
|
||||
private static void CreateCompositionRoot(IServiceCollection services)
|
||||
{
|
||||
// TODO: This isn't the best to have to resolve the services now but to avoid this will
|
||||
// require quite a lot of re-work.
|
||||
var serviceProvider = services.BuildServiceProvider();
|
||||
|
||||
var httpContextAccessor = serviceProvider.GetService<IHttpContextAccessor>();
|
||||
var webHostEnvironment = serviceProvider.GetService<IWebHostEnvironment>();
|
||||
var hostApplicationLifetime = serviceProvider.GetService<IHostApplicationLifetime>();
|
||||
var configuration = serviceProvider.GetService<IConfiguration>();
|
||||
|
||||
var configs = serviceProvider.GetService<Configs>();
|
||||
if (configs == null)
|
||||
throw new InvalidOperationException($"Could not resolve type {typeof(Configs)} from the container, ensure {nameof(AddUmbracoConfiguration)} is called before calling {nameof(AddUmbracoCore)}");
|
||||
|
||||
services.AddRuntimeMinifier(configuration);
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
|
||||
public static IServiceCollection CreateCompositionRoot(
|
||||
this IServiceCollection services,
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
@@ -162,7 +144,7 @@ namespace Umbraco.Web.BackOffice.AspNetCore
|
||||
return services;
|
||||
}
|
||||
|
||||
public static IServiceCollection AddRuntimeMinifier(this IServiceCollection services,
|
||||
public static IServiceCollection AddUmbracoRuntimeMinifier(this IServiceCollection services,
|
||||
IConfiguration configuration)
|
||||
{
|
||||
services.AddSmidge(configuration.GetSection(Constants.Configuration.ConfigPrefix+"RuntimeMinification"));
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Web.Runtime;
|
||||
|
||||
namespace Umbraco.Web.BackOffice.Smidge
|
||||
{
|
||||
[ComposeAfter(typeof(WebInitialComponent))]
|
||||
[ComposeAfter(typeof(IComponent))]
|
||||
public sealed class SmidgeComponent : IComponent
|
||||
{
|
||||
public void Initialize()
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace Umbraco.Web.BackOffice.Smidge
|
||||
{
|
||||
_smidge = smidge;
|
||||
}
|
||||
public string RequiresCss(string filePath, string bundleName)
|
||||
public void RequiresCss(string filePath, string bundleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
@@ -35,7 +35,7 @@ namespace Umbraco.Web.BackOffice.Smidge
|
||||
return _smidge.CssHereAsync(bundleName).ToString();
|
||||
}
|
||||
|
||||
public string RequiresJs(string filePath)
|
||||
public void RequiresJs(string filePath, string bundleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
<ProjectReference Include="..\Umbraco.Configuration\Umbraco.Configuration.csproj" />
|
||||
<ProjectReference Include="..\Umbraco.Core\Umbraco.Core.csproj" />
|
||||
<ProjectReference Include="..\Umbraco.Infrastructure\Umbraco.Infrastructure.csproj" />
|
||||
<ProjectReference Include="..\Umbraco.Web\Umbraco.Web.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
+25
-39
@@ -3775,7 +3775,7 @@
|
||||
"domelementtype": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz",
|
||||
"integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==",
|
||||
"integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@@ -4233,7 +4233,7 @@
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
@@ -4287,13 +4287,13 @@
|
||||
"ansi-regex": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
|
||||
"integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
|
||||
"integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=",
|
||||
"dev": true
|
||||
},
|
||||
"glob-parent": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
|
||||
"integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
|
||||
"integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^4.0.1"
|
||||
@@ -4321,19 +4321,19 @@
|
||||
"resolve-from": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
|
||||
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
|
||||
"integrity": "sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY=",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
|
||||
"integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
|
||||
"integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^4.1.0"
|
||||
@@ -4833,7 +4833,7 @@
|
||||
"braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fill-range": "^7.0.1"
|
||||
@@ -4842,7 +4842,7 @@
|
||||
"fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
@@ -4851,7 +4851,7 @@
|
||||
"glob-parent": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
|
||||
"integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
|
||||
"integrity": "sha1-X0wdHnSNMM1zrSlEs1d6gbCB6MI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-glob": "^4.0.1"
|
||||
@@ -4869,13 +4869,13 @@
|
||||
"is-number": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||
"integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=",
|
||||
"dev": true
|
||||
},
|
||||
"micromatch": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
|
||||
"integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
|
||||
"integrity": "sha1-T8sJmb+fvC/L3SEvbWKbmlbDklk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"braces": "^3.0.1",
|
||||
@@ -4885,7 +4885,7 @@
|
||||
"to-regex-range": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||
"integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-number": "^7.0.0"
|
||||
@@ -5203,7 +5203,7 @@
|
||||
"debug": {
|
||||
"version": "3.2.6",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
||||
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
|
||||
"integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
@@ -5400,14 +5400,12 @@
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
@@ -5422,20 +5420,17 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@@ -5552,8 +5547,7 @@
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
@@ -5565,7 +5559,6 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
@@ -5580,7 +5573,6 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
@@ -5588,14 +5580,12 @@
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.3.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
@@ -5614,7 +5604,6 @@
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
@@ -5695,8 +5684,7 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true
|
||||
"dev": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@@ -5708,7 +5696,6 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@@ -5830,7 +5817,6 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
@@ -6193,7 +6179,7 @@
|
||||
"ignore": {
|
||||
"version": "5.1.4",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
|
||||
"integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
|
||||
"integrity": "sha1-hLez2+ZFUrbvDsqZ9nQ9vsbZet8=",
|
||||
"dev": true
|
||||
},
|
||||
"slash": {
|
||||
@@ -8863,7 +8849,7 @@
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
@@ -13046,13 +13032,13 @@
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
|
||||
"integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
|
||||
"integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
|
||||
@@ -16,12 +16,20 @@ namespace Umbraco.Web.UI.BackOffice
|
||||
{
|
||||
public class Startup
|
||||
{
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
public Startup(IConfiguration configuration)
|
||||
{
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
|
||||
// This method gets called by the runtime. Use this method to add services to the container.
|
||||
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
|
||||
public void ConfigureServices(IServiceCollection services)
|
||||
{
|
||||
services.AddUmbracoConfiguration();
|
||||
services.AddUmbracoRuntimeMinifier(_configuration);
|
||||
services.AddUmbracoCore();
|
||||
services.AddUmbracoWebsite();
|
||||
}
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
@using System.Web.Mvc.Html
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Smidge
|
||||
@using Umbraco.Core
|
||||
@using Umbraco.Web
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web.Controllers
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@@ -13,17 +8,17 @@
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
|
||||
SmidgeHelper
|
||||
.CreateJsBundle(Constants.RuntimeMinification.JsBundles.Default)
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js")
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js")
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js");
|
||||
var runtimeMinifier = Current.RuntimeMinifier;
|
||||
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js", "umbraco");
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js", "umbraco");
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js", "umbraco");
|
||||
|
||||
var success = TempData["ProfileUpdateSuccess"] != null;
|
||||
}
|
||||
|
||||
@*NOTE: This RenderJsHere code should be put on your main template page where the rest of your script tags are placed*@
|
||||
@Current.RuntimeMinifier.RenderJsHere("default-js")
|
||||
@Html.Raw(runtimeMinifier.RenderJsHere("Umbraco"));
|
||||
|
||||
@if (Current.MembershipHelper.IsLoggedIn() && profileModel != null)
|
||||
{
|
||||
|
||||
@@ -1,8 +1,3 @@
|
||||
@using System.Web.Mvc.Html
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Smidge
|
||||
@using Umbraco.Web
|
||||
@using Umbraco.Core
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web.Models
|
||||
@using Umbraco.Web.Controllers
|
||||
@@ -15,15 +10,15 @@
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
|
||||
SmidgeHelper
|
||||
.CreateJsBundle(Constants.RuntimeMinification.JsBundles.Default)
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js")
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js")
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js");
|
||||
var runtimeMinifier = Current.RuntimeMinifier;
|
||||
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js", "umbraco");
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js", "umbraco");
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js", "umbraco");
|
||||
}
|
||||
|
||||
@* NOTE: This RenderJsHere code should be put on your main template page where the rest of your script tags are placed *@
|
||||
@Current.RuntimeMinifier.RenderJsHere("default-js")
|
||||
@Html.Raw(runtimeMinifier.RenderJsHere("Umbraco"))
|
||||
|
||||
@using (Html.BeginUmbracoForm<UmbLoginController>("HandleLogin"))
|
||||
{
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
@using System.Web.Mvc.Html
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Smidge
|
||||
@using Umbraco.Core
|
||||
@using Umbraco.Web
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web.Controllers
|
||||
@inherits Umbraco.Web.Macros.PartialViewMacroPage
|
||||
|
||||
@@ -37,17 +32,17 @@
|
||||
Html.EnableClientValidation();
|
||||
Html.EnableUnobtrusiveJavaScript();
|
||||
|
||||
SmidgeHelper
|
||||
.CreateJsBundle(Constants.RuntimeMinification.JsBundles.Default)
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js")
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js")
|
||||
.RequiresJs("//cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js");
|
||||
var runtimeMinifier = Current.RuntimeMinifier;
|
||||
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js", "umbraco");
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js", "umbraco");
|
||||
runtimeMinifier.RequiresJs("https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.11/jquery.validate.unobtrusive.min.js", "umbraco");
|
||||
|
||||
var success = TempData["FormSuccess"] != null;
|
||||
}
|
||||
|
||||
@*NOTE: This RenderJsHere code should be put on your main template page where the rest of your script tags are placed*@
|
||||
@Current.RuntimeMinifier.RenderJsHere("default-js")
|
||||
@Html.Raw(runtimeMinifier.RenderJsHere("Umbraco"));
|
||||
|
||||
@if (success)
|
||||
{
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
@using Umbraco.Core
|
||||
@using ClientDependency.Core
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Smidge
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web
|
||||
@using Constants = Umbraco.Core.Constants
|
||||
using Umbraco.Core
|
||||
|
||||
@inherits System.Web.Mvc.WebViewPage<Umbraco.Web.Editors.BackOfficeModel>
|
||||
@{
|
||||
Layout = null;
|
||||
|
||||
SmidgeHelper
|
||||
.CreateCssBundle(Constants.RuntimeMinification.CssBundles.Default)
|
||||
.RequiresCss("~/assets/css/umbraco.css", "~/lib/bootstrap-social/bootstrap-social.css", "~/lib/font-awesome/css/font-awesome.min.css");
|
||||
var runtimeMinifier = Current.RuntimeMinifier;
|
||||
|
||||
runtimeMinifier.RequiresCss("assets/css/umbraco.css", "umbraco");
|
||||
runtimeMinifier.RequiresCss("lib/bootstrap-social/bootstrap-social.css", "umbraco");
|
||||
runtimeMinifier.RequiresCss("lib/font-awesome/css/font-awesome.min.css", "umbraco");
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -25,8 +23,7 @@ using Umbraco.Core
|
||||
|
||||
<title>Umbraco</title>
|
||||
|
||||
@Html.RenderCssHere(
|
||||
new BasicPath("Umbraco", Current.IOHelper.ResolveUrl(Model.GlobalSettings.UmbracoPath)))
|
||||
@Html.Raw(runtimeMinifier.RenderJsHere("Umbraco"));
|
||||
|
||||
@*Because we're lazy loading angular js, the embedded cloak style will not be loaded initially, but we need it*@
|
||||
<style>
|
||||
@@ -50,7 +47,7 @@ using Umbraco.Core
|
||||
redirectUrl = Url.Action("AuthorizeUpgrade", "BackOffice")
|
||||
});
|
||||
}
|
||||
@Html.BareMinimumServerVariablesScript(Url, externalLoginUrl, Model.Features, Model.GlobalSettings, Model.UmbracoVersion, Model.ContentSettings, Model.IOHelper, Model.TreeCollection, Model.HttpContextAccessor, Model.HostingEnvironment, Model.RuntimeSettings, Model.SecuritySettings, Current.RuntimeMinifier)
|
||||
@Html.BareMinimumServerVariablesScript(Url, externalLoginUrl, Model.Features, Model.GlobalSettings, Model.UmbracoVersion, Model.ContentSettings, Model.IOHelper, Model.TreeCollection, Model.HttpContextAccessor, Model.HostingEnvironment, Model.RuntimeSettings, Model.SecuritySettings, runtimeMinifier)
|
||||
|
||||
<script type="text/javascript">
|
||||
document.angularReady = function (app) {
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
@using Umbraco.Core
|
||||
@using ClientDependency.Core
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Smidge
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web
|
||||
@using Constants = Umbraco.Core.Constants
|
||||
|
||||
|
||||
@inherits WebViewPage<Umbraco.Web.Editors.BackOfficeModel>
|
||||
|
||||
@@ -19,10 +16,17 @@
|
||||
isDebug = true;
|
||||
}
|
||||
}
|
||||
var runtimeMinifier = Current.RuntimeMinifier;
|
||||
|
||||
SmidgeHelper
|
||||
.CreateCssBundle(Constants.RuntimeMinification.CssBundles.Default)
|
||||
.RequiresCss("~/assets/css/umbraco.css", "~/lib/bootstrap-social/bootstrap-social.css", "~/lib/font-awesome/css/font-awesome.min.css");
|
||||
runtimeMinifier.RequiresCss("assets/css/umbraco.css", "Umbraco");
|
||||
runtimeMinifier.RequiresCss("lib/bootstrap-social/bootstrap-social.css", "Umbraco");
|
||||
runtimeMinifier.RequiresCss("assets/css/umbraco.css", "Umbraco");
|
||||
runtimeMinifier.RequiresCss("lib/font-awesome/css/font-awesome.min.css", "Umbraco");
|
||||
|
||||
// Html
|
||||
// .RequiresCss("assets/css/umbraco.css", "Umbraco")
|
||||
// .RequiresCss("lib/bootstrap-social/bootstrap-social.css", "Umbraco")
|
||||
// .RequiresCss("lib/font-awesome/css/font-awesome.min.css", "Umbraco");
|
||||
}
|
||||
|
||||
<!DOCTYPE html>
|
||||
@@ -39,7 +43,9 @@
|
||||
|
||||
<title ng-bind="$root.locationTitle">Umbraco</title>
|
||||
|
||||
@Current.RuntimeMinifier.RenderCssHere("default-css")
|
||||
@Html.Raw(runtimeMinifier.RenderCssHere("Umbraco"))
|
||||
@* @Html.RenderCssHere(new BasicPath("Umbraco", Current.IOHelper.ResolveUrl(Current.Configs.Global().UmbracoPath))) *@
|
||||
|
||||
</head>
|
||||
<body ng-class="{'touch':touchDevice, 'emptySection':emptySection, 'umb-drawer-is-visible':drawer.show, 'umb-tour-is-visible': tour.show, 'tabbing-active':tabbingActive}" ng-controller="Umbraco.MainController" id="umbracoMainPageBody">
|
||||
|
||||
|
||||
@@ -1,18 +1,12 @@
|
||||
@using Umbraco.Core
|
||||
@using ClientDependency.Core
|
||||
@using ClientDependency.Core.Mvc
|
||||
@using Smidge
|
||||
@using Umbraco.Web.Composing
|
||||
@using Umbraco.Web
|
||||
@using Constants = Umbraco.Core.Constants
|
||||
@using Umbraco.Web.Composing
|
||||
|
||||
@inherits System.Web.Mvc.WebViewPage<Umbraco.Web.Editors.BackOfficePreviewModel>
|
||||
@{
|
||||
var disableDevicePreview = Model.DisableDevicePreview.ToString().ToLowerInvariant();
|
||||
|
||||
SmidgeHelper
|
||||
.CreateCssBundle(Constants.RuntimeMinification.CssBundles.Index)
|
||||
.RequiresCss("~/assets/css/canvasdesigner.css");
|
||||
var runtimeMinifier = Current.RuntimeMinifier;
|
||||
|
||||
runtimeMinifier.RequiresCss("assets/css/canvasdesigner.css", "Umbraco");
|
||||
}
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
@@ -22,7 +16,9 @@
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
<meta name="pinterest" content="nopin" />
|
||||
|
||||
@Current.RuntimeMinifier.RenderCssHere("index-css")
|
||||
|
||||
@Html.Raw(runtimeMinifier.RenderCssHere("Umbraco"))
|
||||
|
||||
|
||||
</head>
|
||||
<body id="canvasdesignerPanel" ng-mouseover="outlinePositionHide()" ng-controller="previewController" ng-class="{'tabbing-active': tabbingActive === true}" ng-click="windowClickHandler($event)">
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ using Umbraco.Core.Runtime;
|
||||
using Umbraco.Web.Composing;
|
||||
using Umbraco.Web.PropertyEditors;
|
||||
|
||||
namespace Umbraco.Web.JavaScript.CDF
|
||||
namespace Umbraco.Web.JavaScript
|
||||
{
|
||||
internal abstract class AssetInitialization
|
||||
{
|
||||
@@ -2,10 +2,12 @@
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Web.Mvc;
|
||||
using ClientDependency.Core;
|
||||
using ClientDependency.Core.CompositeFiles;
|
||||
using ClientDependency.Core.Config;
|
||||
using ClientDependency.Core.Mvc;
|
||||
using Umbraco.Core.Assets;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.IO;
|
||||
@@ -38,33 +40,65 @@ namespace Umbraco.Web.JavaScript.CDF
|
||||
_htmlHelper = new HtmlHelper(new ViewContext(), new ViewPage());
|
||||
}
|
||||
|
||||
public string RequiresCss(string filePath, string bundleName)
|
||||
private DependencyRenderer GetDependencyRenderer
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
//_htmlHelper.ViewContext.GetLoader().RegisterDependency(filePath, pathNameAlias, ClientDependencyType.Css);
|
||||
//return html;
|
||||
get
|
||||
{
|
||||
return (DependencyRenderer) typeof(DependencyRenderer)
|
||||
.GetMethod("TryCreate", BindingFlags.Static |BindingFlags.NonPublic)
|
||||
.Invoke(null, new object[]
|
||||
{
|
||||
_httpContextAccessor.GetRequiredHttpContext(),
|
||||
null
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void RequiresCss(string filePath, string bundleName)
|
||||
{
|
||||
GetDependencyRenderer.RegisterDependency(filePath, bundleName, ClientDependencyType.Css);
|
||||
}
|
||||
|
||||
public string RenderCssHere(string bundleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var path = new BasicPath(bundleName, _ioHelper.ResolveUrl(_globalSettings.UmbracoPath));
|
||||
return typeof(DependencyRenderer)
|
||||
.GetMethod("RenderPlaceholder",
|
||||
BindingFlags.NonPublic | BindingFlags.Instance,
|
||||
null,
|
||||
new []{typeof(ClientDependencyType), typeof(IEnumerable<IClientDependencyPath>)},
|
||||
null)
|
||||
?.Invoke(GetDependencyRenderer, new object[]
|
||||
{
|
||||
ClientDependencyType.Css,
|
||||
new IClientDependencyPath[]{path}
|
||||
}) as string;
|
||||
|
||||
//return new HtmlString(_htmlHelper.ViewContext.GetLoader().RenderPlaceholder(
|
||||
// ClientDependencyType.Css, path));
|
||||
}
|
||||
|
||||
public string RequiresJs(string filePath)
|
||||
public void RequiresJs(string filePath, string bundleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
//_htmlHelper.ViewContext.GetLoader().RegisterDependency(filePath, ClientDependencyType.Javascript);
|
||||
//return _htmlHelper;
|
||||
GetDependencyRenderer.RegisterDependency(filePath, bundleName, ClientDependencyType.Javascript);
|
||||
}
|
||||
|
||||
public string RenderJsHere(string bundleName)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
//return new HtmlString(
|
||||
// _htmlHelper.ViewContext.GetLoader().RenderPlaceholder(
|
||||
// ClientDependencyType.Javascript, new List<IClientDependencyPath>()));
|
||||
var path = new BasicPath(bundleName, _ioHelper.ResolveUrl(_globalSettings.UmbracoPath));
|
||||
return typeof(DependencyRenderer)
|
||||
.GetMethod("RenderPlaceholder",
|
||||
BindingFlags.NonPublic | BindingFlags.Instance,
|
||||
null,
|
||||
new []{typeof(ClientDependencyType), typeof(IEnumerable<IClientDependencyPath>)},
|
||||
null)
|
||||
?.Invoke(GetDependencyRenderer, new object[]
|
||||
{
|
||||
ClientDependencyType.Javascript,
|
||||
new IClientDependencyPath[]{path}
|
||||
}) as string;
|
||||
|
||||
}
|
||||
|
||||
public IEnumerable<string> GetAssetPaths(AssetType assetType, List<IAssetFile> attributes)
|
||||
@@ -153,7 +187,25 @@ namespace Umbraco.Web.JavaScript.CDF
|
||||
private IClientDependencyFile MapAssetFile(IAssetFile assetFile)
|
||||
{
|
||||
var assetFileType = (AssetFile)assetFile;
|
||||
var basicFile = new BasicFile(MapDependencyTypeValue(assetFileType.DependencyType));
|
||||
var basicFile = new BasicFile(MapDependencyTypeValue(assetFileType.DependencyType))
|
||||
{
|
||||
Group = assetFile.Group,
|
||||
Priority = assetFile.Priority,
|
||||
//ForceBundle = assetFile.Bundle, //TODO
|
||||
FilePath = assetFile.FilePath,
|
||||
ForceProvider = assetFile.ForceProvider,
|
||||
PathNameAlias = assetFile.PathNameAlias,
|
||||
};
|
||||
|
||||
foreach (var kvp in assetFile.HtmlAttributes)
|
||||
{
|
||||
basicFile.HtmlAttributes.Add(kvp.Key, kvp.Value);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return basicFile;
|
||||
}
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ using Umbraco.Core.Assets;
|
||||
using Umbraco.Core.Manifest;
|
||||
using Umbraco.Core.Runtime;
|
||||
|
||||
namespace Umbraco.Web.JavaScript.CDF
|
||||
namespace Umbraco.Web.JavaScript
|
||||
{
|
||||
internal class CssInitialization : AssetInitialization
|
||||
{
|
||||
+1
-1
@@ -7,7 +7,7 @@ using Umbraco.Core.Assets;
|
||||
using Umbraco.Core.Manifest;
|
||||
using Umbraco.Core.Runtime;
|
||||
|
||||
namespace Umbraco.Web.JavaScript.CDF
|
||||
namespace Umbraco.Web.JavaScript
|
||||
{
|
||||
/// <summary>
|
||||
/// Reads from all defined manifests and ensures that any of their initialization is output with the
|
||||
@@ -39,6 +39,9 @@
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemGroup>
|
||||
<Reference Include="ClientDependency.Core.Mvc, Version=1.9.3.0, Culture=neutral, PublicKeyToken=null">
|
||||
<HintPath>C:\Users\Berg\.nuget\packages\clientdependency-mvc5\1.9.3\lib\net45\ClientDependency.Core.Mvc.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Data" />
|
||||
@@ -64,6 +67,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ClientDependency" Version="1.9.9" />
|
||||
<PackageReference Include="ClientDependency-Mvc5" Version="1.9.3" />
|
||||
<PackageReference Include="Examine.Core">
|
||||
<Version>2.0.0-alpha.20200128.15</Version>
|
||||
</PackageReference>
|
||||
@@ -145,8 +149,11 @@
|
||||
<Compile Include="Compose\BackOfficeUserAuditEventsComposer.cs" />
|
||||
<Compile Include="Composing\CompositionExtensions\Installer.cs" />
|
||||
<Compile Include="Composing\LightInject\LightInjectContainer.cs" />
|
||||
<Compile Include="JavaScript\AssetInitialization.cs" />
|
||||
<Compile Include="JavaScript\CDF\ClientDependencyRuntimeMinifier.cs" />
|
||||
<Compile Include="JavaScript\CssInitialization.cs" />
|
||||
<Compile Include="JavaScript\JavaScriptHelper.cs" />
|
||||
<Compile Include="JavaScript\JsInitialization.cs" />
|
||||
<Compile Include="Models\NoNodesViewModel.cs" />
|
||||
<Compile Include="Mvc\RenderNoContentController.cs" />
|
||||
<Compile Include="Editors\BackOfficePreviewModel.cs" />
|
||||
@@ -400,8 +407,6 @@
|
||||
<Compile Include="Trees\MenuRenderingEventArgs.cs" />
|
||||
<Compile Include="Trees\TemplatesTreeController.cs" />
|
||||
<Compile Include="Trees\TreeControllerBase.cs" />
|
||||
<Compile Include="JavaScript\CDF\AssetInitialization.cs" />
|
||||
<Compile Include="JavaScript\CDF\CssInitialization.cs" />
|
||||
<Compile Include="JavaScript\CDF\DependencyPathRenderer.cs" />
|
||||
<Compile Include="UmbracoComponentRenderer.cs" />
|
||||
<Compile Include="WebApi\AngularJsonMediaTypeFormatter.cs" />
|
||||
@@ -450,7 +455,6 @@
|
||||
<Compile Include="Trees\ContentTreeController.cs" />
|
||||
<Compile Include="Trees\TreeRenderingEventArgs.cs" />
|
||||
<Compile Include="Trees\UrlHelperExtensions.cs" />
|
||||
<Compile Include="JavaScript\CDF\JsInitialization.cs" />
|
||||
<Compile Include="HttpRequestExtensions.cs" />
|
||||
<Compile Include="HttpUrlHelperExtensions.cs" />
|
||||
<Compile Include="Install\FilePermissionHelper.cs" />
|
||||
|
||||
Reference in New Issue
Block a user