From 9b74262c763a2b274ae6eb99954102575c0b264a Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Mon, 18 May 2020 09:47:37 -0400 Subject: [PATCH] Added support for module resource management --- Oqtane.Client/Modules/HtmlText/Edit.razor | 24 ++- Oqtane.Client/Modules/HtmlText/Index.razor | 10 ++ Oqtane.Client/Modules/ModuleBase.cs | 4 + .../Themes/BlazorTheme/Default.razor | 2 +- .../Themes/Controls/ControlPanel.razor | 4 +- .../Themes/Controls/ModuleActionsBase.cs | 2 +- .../Themes/OqtaneTheme/Default.razor | 2 +- Oqtane.Client/UI/SiteRouter.razor | 137 ++++++++++-------- Oqtane.Client/UI/ThemeBuilder.razor | 14 +- Oqtane.Server/Pages/_Host.cshtml | 5 - .../Oqtane.Modules.HtmlText/Module.css | 1 + Oqtane.Server/wwwroot/js/interop.js | 48 ------ Oqtane.Server/wwwroot/js/quill-interop.js | 50 +++++++ Oqtane.Server/wwwroot/js/site.js | 1 - Oqtane.Shared/Interfaces/IModuleControl.cs | 5 +- Oqtane.Shared/Models/Page.cs | 2 +- 16 files changed, 183 insertions(+), 128 deletions(-) create mode 100644 Oqtane.Server/wwwroot/Modules/Oqtane.Modules.HtmlText/Module.css create mode 100644 Oqtane.Server/wwwroot/js/quill-interop.js delete mode 100644 Oqtane.Server/wwwroot/js/site.js diff --git a/Oqtane.Client/Modules/HtmlText/Edit.razor b/Oqtane.Client/Modules/HtmlText/Edit.razor index c9c94bc7..442aee36 100644 --- a/Oqtane.Client/Modules/HtmlText/Edit.razor +++ b/Oqtane.Client/Modules/HtmlText/Edit.razor @@ -20,6 +20,26 @@ } @code { + public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; + + public override string Title => "Edit Html/Text"; + + public override List Resources + { + get + { + List resources = new List(); + resources.Add(new Resource { ResourceType = ResourceType.Stylesheet, Url = ModulePath() + "Module.css", Integrity = "", CrossOrigin = "" }); + // the following resources should be declared in the RichTextEditor component however the framework currently only supports resource management for modules and themes + resources.Add(new Resource { ResourceType = ResourceType.Stylesheet, Url = "css/quill/quill1.3.6.bubble.css", Integrity = "", CrossOrigin = "" }); + resources.Add(new Resource { ResourceType = ResourceType.Stylesheet, Url = "css/quill/quill1.3.6.snow.css", Integrity = "", CrossOrigin = "" }); + resources.Add(new Resource { ResourceType = ResourceType.Script, Url = "js/quill1.3.6.min.js", Integrity = "", CrossOrigin = "" }); + resources.Add(new Resource { ResourceType = ResourceType.Script, Url = "js/quill-blot-formatter.min.js", Integrity = "", CrossOrigin = "" }); + resources.Add(new Resource { ResourceType = ResourceType.Script, Url = "js/quill-interop.js", Integrity = "", CrossOrigin = "" }); + return resources; + } + } + private RichTextEditor RichTextEditorHtml; private string _content = null; private string _createdby; @@ -27,10 +47,6 @@ private string _modifiedby; private DateTime _modifiedon; - public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; - - public override string Title => "Edit Html/Text"; - protected override async Task OnInitializedAsync() { try diff --git a/Oqtane.Client/Modules/HtmlText/Index.razor b/Oqtane.Client/Modules/HtmlText/Index.razor index 6821c425..5d18e498 100644 --- a/Oqtane.Client/Modules/HtmlText/Index.razor +++ b/Oqtane.Client/Modules/HtmlText/Index.razor @@ -11,6 +11,16 @@ } @code { + public override List Resources + { + get + { + List resources = new List(); + resources.Add(new Resource { ResourceType = ResourceType.Stylesheet, Url = ModulePath() + "Module.css", Integrity = "", CrossOrigin = "" }); + return resources; + } + } + private string content = ""; protected override async Task OnParametersSetAsync() diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index 188da769..9da4a090 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -6,6 +6,7 @@ using Oqtane.Services; using System; using Oqtane.Enums; using Oqtane.UI; +using System.Collections.Generic; namespace Oqtane.Modules { @@ -37,6 +38,9 @@ namespace Oqtane.Modules public virtual bool UseAdminContainer { get { return true; } } + public virtual List Resources { get; set; } + + // path method public string ModulePath() diff --git a/Oqtane.Client/Themes/BlazorTheme/Default.razor b/Oqtane.Client/Themes/BlazorTheme/Default.razor index 2ed0d1fb..a51a130c 100644 --- a/Oqtane.Client/Themes/BlazorTheme/Default.razor +++ b/Oqtane.Client/Themes/BlazorTheme/Default.razor @@ -33,7 +33,7 @@ get { List resources = new List(); - resources.Add(new Resource { ResourceType = ResourceType.Stylesheet, Url = "Themes/" + GetType().Namespace + "/Theme.css", Integrity = "", CrossOrigin = "" }); + resources.Add(new Resource { ResourceType = ResourceType.Stylesheet, Url = ThemePath() + "Theme.css", Integrity = "", CrossOrigin = "" }); return resources; } } diff --git a/Oqtane.Client/Themes/Controls/ControlPanel.razor b/Oqtane.Client/Themes/Controls/ControlPanel.razor index ec463657..e80ca085 100644 --- a/Oqtane.Client/Themes/Controls/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/ControlPanel.razor @@ -149,7 +149,7 @@