From 74d4b6412ef81d6039bc8b85223b01f17a26f707 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 19 Feb 2020 14:50:41 -0500 Subject: [PATCH] Ability to insert image in RichTextEditor --- .../Modules/Controls/RichTextEditor.razor | 54 ++++++++++++++----- .../Repository/ModuleDefinitionRepository.cs | 18 ++++--- 2 files changed, 51 insertions(+), 21 deletions(-) diff --git a/Oqtane.Client/Modules/Controls/RichTextEditor.razor b/Oqtane.Client/Modules/Controls/RichTextEditor.razor index 33f0b7e0..1f49e21d 100644 --- a/Oqtane.Client/Modules/Controls/RichTextEditor.razor +++ b/Oqtane.Client/Modules/Controls/RichTextEditor.razor @@ -2,6 +2,15 @@ @inherits ModuleBase @inject IJSRuntime JSRuntime +@if (filemanagervisible) +{ + + @((MarkupString)@message) +} +
+ +
+
@ToolbarContent
@@ -13,26 +22,24 @@ public RenderFragment ToolbarContent { get; set; } [Parameter] - public bool ReadOnly { get; set; } - = false; + public bool ReadOnly { get; set; } = false; [Parameter] - public string Placeholder { get; set; } - = "Compose an epic..."; + public string Placeholder { get; set; } = "Enter Your Content..."; [Parameter] - public string Theme { get; set; } - = "snow"; + public string Theme { get; set; } = "snow"; [Parameter] - public string DebugLevel { get; set; } - = "info"; + public string DebugLevel { get; set; } = "info"; private ElementReference EditorElement; private ElementReference ToolBar; + bool filemanagervisible = false; + FileManager filemanager; + string message = ""; - protected override async Task - OnAfterRenderAsync(bool firstRender) + protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { @@ -82,10 +89,29 @@ EditorElement, mode); } - public async Task InsertImage(string ImageURL) + public async Task InsertImage() { - await RichTextEditorInterop.InsertImage( - JSRuntime, - EditorElement, ImageURL); + if (filemanagervisible) + { + int fileid = filemanager.GetFileId(); + if (fileid != -1) + { + await RichTextEditorInterop.InsertImage( + JSRuntime, + EditorElement, ContentUrl(fileid)); + filemanagervisible = false; + message = ""; + } + else + { + message = "
You Must Select An Image To Insert
"; + } + } + else + { + filemanagervisible = true; + message = ""; + } + StateHasChanged(); } } \ No newline at end of file diff --git a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs index c1445046..c53c8396 100644 --- a/Oqtane.Server/Repository/ModuleDefinitionRepository.cs +++ b/Oqtane.Server/Repository/ModuleDefinitionRepository.cs @@ -159,7 +159,7 @@ namespace Oqtane.Repository ControlTypeTemplate = ModuleType + "." + Constants.ActionToken + ", " + typename[1], ControlTypeRoutes = "", AssemblyName = assembly.FullName.Split(",")[0], - Permissions = "[{\"PermissionName\":\"Utilize\",\"Permissions\":\"Administrators\"}]" + Permissions = "" }; } else @@ -181,13 +181,17 @@ namespace Oqtane.Repository ControlTypeTemplate = ModuleType + "." + Constants.ActionToken + ", " + typename[1], ControlTypeRoutes = "", AssemblyName = assembly.FullName.Split(",")[0], - Permissions = "[{\"PermissionName\":\"Utilize\",\"Permissions\":\"" + Constants.AdminRole + "\"}]" + Permissions = "" }; - // make non-admin modules available by default to registered users on personalized pages - if (moduledefinition.Categories != "Admin") - { - moduledefinition.Permissions = "[{\"PermissionName\":\"Utilize\",\"Permissions\":\"" + Constants.AdminRole + ";" + Constants.RegisteredRole + "\"}]"; - } + } + // permissions + if (moduledefinition.Categories == "Admin") + { + moduledefinition.Permissions = "[{\"PermissionName\":\"Utilize\",\"Permissions\":\"" + Constants.AdminRole + "\"}]"; + } + else + { + moduledefinition.Permissions = "[{\"PermissionName\":\"Utilize\",\"Permissions\":\"" + Constants.AdminRole + ";" + Constants.RegisteredRole + "\"}]"; } moduledefinitions.Add(moduledefinition); index = moduledefinitions.FindIndex(item => item.ModuleDefinitionName == QualifiedModuleType);