diff --git a/src/OrchardCoreContrib.Html/Constants.cs b/src/OrchardCoreContrib.Html/Constants.cs new file mode 100644 index 00000000..639e051d --- /dev/null +++ b/src/OrchardCoreContrib.Html/Constants.cs @@ -0,0 +1,12 @@ +namespace OrchardCoreContrib.Html; + +/// +/// Defines constants used in the Html module. +/// +public class Constants +{ + /// + /// Represents the name of the editor used by the GrapesJS feature. + /// + public const string Editor = "GrapesJS"; +} diff --git a/src/OrchardCoreContrib.Html/Controllers/AdminController.cs b/src/OrchardCoreContrib.Html/Controllers/AdminController.cs index d8aeab6e..561f11cf 100644 --- a/src/OrchardCoreContrib.Html/Controllers/AdminController.cs +++ b/src/OrchardCoreContrib.Html/Controllers/AdminController.cs @@ -1,12 +1,10 @@ using Microsoft.AspNetCore.Mvc; using OrchardCore.Modules; -namespace OrchardCoreContrib.Html.Controllers +namespace OrchardCoreContrib.Html.Controllers; + +[Feature("OrchardCoreContrib.Html.GrapesJS")] +public class AdminController : Controller { - [Feature("OrchardCoreContrib.Html.GrapesJS")] - public class AdminController : Controller - { - [HttpGet] - public ActionResult Index() => View(); - } + public ActionResult Index() => View(); } diff --git a/src/OrchardCoreContrib.Html/Manifest.cs b/src/OrchardCoreContrib.Html/Manifest.cs index 5840a723..980250db 100644 --- a/src/OrchardCoreContrib.Html/Manifest.cs +++ b/src/OrchardCoreContrib.Html/Manifest.cs @@ -5,7 +5,7 @@ Name = "Html", Author = ManifestConstants.Author, Website = ManifestConstants.Website, - Version = "1.2.1" + Version = "1.4.0" )] [assembly: Feature( diff --git a/src/OrchardCoreContrib.Html/OrchardCoreContrib.Html.csproj b/src/OrchardCoreContrib.Html/OrchardCoreContrib.Html.csproj index 6f803a17..957fb241 100644 --- a/src/OrchardCoreContrib.Html/OrchardCoreContrib.Html.csproj +++ b/src/OrchardCoreContrib.Html/OrchardCoreContrib.Html.csproj @@ -2,9 +2,10 @@ true - 1.3.0 + 1.4.0 The Orchard Core Contrib Team + README.md The Html module enables content items to have rich content using Grapes JS. BSD-3-Clause https://github.com/OrchardCoreContrib/OrchardCoreContrib.Modules/tree/main/src/OrchardCoreContrib.Html/README.md @@ -26,6 +27,7 @@ + diff --git a/src/OrchardCoreContrib.Html/README.md b/src/OrchardCoreContrib.Html/README.md index c66d3550..7d9f491b 100644 --- a/src/OrchardCoreContrib.Html/README.md +++ b/src/OrchardCoreContrib.Html/README.md @@ -4,7 +4,7 @@ This module enables content items to have rich content using Grapes JS. ## Version -1.2.1 +1.4.0 ## Category @@ -28,6 +28,7 @@ Content Management | Name | Version | |-------------------------------------------------------------------------------------------------|-------------| +| [`OrchardCoreContrib.Html`](https://www.nuget.org/packages/OrchardCoreContrib.Html/1.4.0) | 1.4.0 | | [`OrchardCoreContrib.Html`](https://www.nuget.org/packages/OrchardCoreContrib.Html/1.3.0) | 1.3.0 | | [`OrchardCoreContrib.Html`](https://www.nuget.org/packages/OrchardCoreContrib.Html/1.2.1) | 1.2.1 | | [`OrchardCoreContrib.Html`](https://www.nuget.org/packages/OrchardCoreContrib.Html/1.2.0) | 1.2.0 | diff --git a/src/OrchardCoreContrib.Html/ResourceManagementOptionsConfiguration.cs b/src/OrchardCoreContrib.Html/ResourceManagementOptionsConfiguration.cs new file mode 100644 index 00000000..673b96de --- /dev/null +++ b/src/OrchardCoreContrib.Html/ResourceManagementOptionsConfiguration.cs @@ -0,0 +1,53 @@ +using Microsoft.Extensions.Options; +using OrchardCore.ResourceManagement; + +namespace OrchardCoreContrib.Html; + +/// +/// Configure the resources that will be used in the module. +/// +public class ResourceManagementOptionsConfiguration : IConfigureOptions +{ + private static readonly ResourceManifest _manifest; + + static ResourceManagementOptionsConfiguration() + { + _manifest = new ResourceManifest(); + + _manifest + .DefineScript("grapes") + .SetUrl("~/OrchardCoreContrib.Html/Scripts/grapes.min.js") + .SetVersion("1.0.0"); + + _manifest + .DefineScript("grapes-preset") + .SetUrl("~/OrchardCoreContrib.Html/Scripts/grapesjs-preset-webpage.min.js") + .SetVersion("1.0.0"); + + _manifest + .DefineScript("grapes-editor") + .SetUrl("~/OrchardCoreContrib.Html/Scripts/grapes-editor.js") + .SetVersion("1.0.0"); + + _manifest + .DefineStyle("grapes") + .SetUrl("~/OrchardCoreContrib.Html/Styles/grapes.min.css") + .SetVersion("1.0.0"); + + _manifest + .DefineStyle("grapes-preset") + .SetUrl("~/OrchardCoreContrib.Html/Styles/grapesjs-preset-webpage.min.css") + .SetVersion("1.0.0"); + + _manifest + .DefineStyle("grapes-editor") + .SetUrl("~/OrchardCoreContrib.Html/Styles/grapes-editor.css") + .SetVersion("1.0.0"); + } + + /// + public void Configure(ResourceManagementOptions options) + { + options.ResourceManifests.Add(_manifest); + } +} diff --git a/src/OrchardCoreContrib.Html/Startup.cs b/src/OrchardCoreContrib.Html/Startup.cs index 6ab7a87d..5b4d5a35 100644 --- a/src/OrchardCoreContrib.Html/Startup.cs +++ b/src/OrchardCoreContrib.Html/Startup.cs @@ -1,23 +1,35 @@ -using System; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Routing; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; using OrchardCore.Modules; using OrchardCore.Mvc.Core.Utilities; +using OrchardCore.ResourceManagement; using OrchardCoreContrib.Html.Controllers; -namespace OrchardCoreContrib.Html +namespace OrchardCoreContrib.Html; + +[Feature("OrchardCoreContrib.Html.GrapesJS")] +public class Startup : StartupBase { - [Feature("OrchardCoreContrib.Html.GrapesJS")] - public class Startup : StartupBase + /// + public override void ConfigureServices(IServiceCollection services) + { + services.AddTransient, ResourceManagementOptionsConfiguration>(); + } + + /// + public override void Configure(IApplicationBuilder builder, IEndpointRouteBuilder routes, IServiceProvider serviceProvider) { - public override void Configure(IApplicationBuilder builder, IEndpointRouteBuilder routes, IServiceProvider serviceProvider) - { - routes.MapAreaControllerRoute( - name: "GrapesJSEditor", - areaName: "OrchardCoreContrib.Html", - pattern: "GrapesJSEditor", - defaults: new { controller = typeof(AdminController).ControllerName(), action = nameof(AdminController.Index) } - ); - } + routes.MapAreaControllerRoute( + name: "GrapesJSEditor", + areaName: "OrchardCoreContrib.Html", + pattern: "GrapesJSEditor", + defaults: new + { + controller = typeof(AdminController).ControllerName(), + action = nameof(AdminController.Index) + } + ); } } diff --git a/src/OrchardCoreContrib.Html/Views/Admin/Index.cshtml b/src/OrchardCoreContrib.Html/Views/Admin/Index.cshtml index 549e585c..696486f9 100644 --- a/src/OrchardCoreContrib.Html/Views/Admin/Index.cshtml +++ b/src/OrchardCoreContrib.Html/Views/Admin/Index.cshtml @@ -2,17 +2,27 @@ Layout = null; } - - - -
-
+ + + - - - + + + + + + + + + +
+
- -
\ No newline at end of file + +
+ + + + \ No newline at end of file diff --git a/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Edit.cshtml b/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Edit.cshtml index 5fb87c3b..3788fbc2 100644 --- a/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Edit.cshtml +++ b/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Edit.cshtml @@ -3,8 +3,6 @@
- - + @T["The body of the content item."]
\ No newline at end of file diff --git a/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Option.cshtml b/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Option.cshtml index 461b2d52..2bd3c201 100644 --- a/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Option.cshtml +++ b/src/OrchardCoreContrib.Html/Views/HtmlBodyPart-GrapeJS.Option.cshtml @@ -1,4 +1,4 @@ @{ string currentEditor = Model.Editor; } - + diff --git a/src/OrchardCoreContrib.Html/Views/_ViewImports.cshtml b/src/OrchardCoreContrib.Html/Views/_ViewImports.cshtml index b1153c1d..babb443b 100644 --- a/src/OrchardCoreContrib.Html/Views/_ViewImports.cshtml +++ b/src/OrchardCoreContrib.Html/Views/_ViewImports.cshtml @@ -5,3 +5,4 @@ @using OrchardCore.ContentManagement.Metadata.Models @using OrchardCore.DisplayManagement @using OrchardCore.Html.ViewModels +@using OrchardCoreContrib.Html