- @if (AllowRawHtml)
- {
-
-
- @((MarkupString)" ")
- }
@if (AllowFileManagement)
{
-
@if (AllowFileManagement)
{
@@ -121,6 +114,7 @@
private string _rawhtml = string.Empty;
private string _originalrawhtml = string.Empty;
private string _message = string.Empty;
+ private string _activetab = "Rich";
[Parameter]
public string Content { get; set; }
@@ -163,6 +157,12 @@
_rawhtml = Content;
_originalrawhtml = _rawhtml; // preserve for comparison later
_originalrichhtml = "";
+
+ // Quill wraps content in
tags which can be used as a signal to set the active tab
+ if (!string.IsNullOrEmpty(Content) && !Content.StartsWith("
") && AllowRawHtml)
+ {
+ _activetab = "Raw";
+ }
}
protected override async Task OnAfterRenderAsync(bool firstRender)
@@ -208,19 +208,6 @@
StateHasChanged();
}
- public void RefreshRichText()
- {
- _richhtml = _rawhtml;
- StateHasChanged();
- }
-
- public async Task RefreshRawHtml()
- {
- var interop = new RichTextEditorInterop(JSRuntime);
- _rawhtml = await interop.GetHtml(_editorElement);
- StateHasChanged();
- }
-
public async Task GetHtml()
{
// evaluate raw html content as first priority
diff --git a/Oqtane.Client/Modules/HtmlText/Index.razor b/Oqtane.Client/Modules/HtmlText/Index.razor
index 91efe2bb..ed45443b 100644
--- a/Oqtane.Client/Modules/HtmlText/Index.razor
+++ b/Oqtane.Client/Modules/HtmlText/Index.razor
@@ -4,19 +4,27 @@
@inject IHtmlTextService HtmlTextService
@inject IStringLocalizer Localizer
-@((MarkupString)content)
-
@if (PageState.EditMode)
{
-
-
-
-
+
+}
+
+@((MarkupString)content)
+
+@if (PageState.EditMode && content.Length > 3000)
+{
+
}
@code {
private string content = "";
+ public override string RenderMode => RenderModes.Static;
+
protected override async Task OnParametersSetAsync()
{
try
diff --git a/Oqtane.Client/Modules/HtmlText/Services/HtmlTextService.cs b/Oqtane.Client/Modules/HtmlText/Services/HtmlTextService.cs
index e4dd0174..f2f0674c 100644
--- a/Oqtane.Client/Modules/HtmlText/Services/HtmlTextService.cs
+++ b/Oqtane.Client/Modules/HtmlText/Services/HtmlTextService.cs
@@ -1,5 +1,4 @@
using System.Collections.Generic;
-using System.Linq;
using System.Net.Http;
using System.Threading.Tasks;
using Oqtane.Documentation;
@@ -9,7 +8,7 @@ using Oqtane.Shared;
namespace Oqtane.Modules.HtmlText.Services
{
[PrivateApi("Mark HtmlText classes as private, since it's not very useful in the public docs")]
- public class HtmlTextService : ServiceBase, IHtmlTextService, IService
+ public class HtmlTextService : ServiceBase, IHtmlTextService, IClientService
{
public HtmlTextService(HttpClient http, SiteState siteState) : base(http, siteState) {}
@@ -30,9 +29,9 @@ namespace Oqtane.Modules.HtmlText.Services
return await GetJsonAsync(CreateAuthorizationPolicyUrl($"{ApiUrl}/{htmlTextId}/{moduleId}", EntityNames.Module, moduleId));
}
- public async Task AddHtmlTextAsync(Models.HtmlText htmlText)
+ public async Task AddHtmlTextAsync(Models.HtmlText htmlText)
{
- await PostJsonAsync(CreateAuthorizationPolicyUrl($"{ApiUrl}", EntityNames.Module, htmlText.ModuleId), htmlText);
+ return await PostJsonAsync(CreateAuthorizationPolicyUrl($"{ApiUrl}", EntityNames.Module, htmlText.ModuleId), htmlText);
}
public async Task DeleteHtmlTextAsync(int htmlTextId, int moduleId)
diff --git a/Oqtane.Client/Modules/HtmlText/Services/IHtmlTextService.cs b/Oqtane.Client/Modules/HtmlText/Services/IHtmlTextService.cs
index 7ca069c6..838d5240 100644
--- a/Oqtane.Client/Modules/HtmlText/Services/IHtmlTextService.cs
+++ b/Oqtane.Client/Modules/HtmlText/Services/IHtmlTextService.cs
@@ -13,7 +13,7 @@ namespace Oqtane.Modules.HtmlText.Services
Task GetHtmlTextAsync(int htmlTextId, int moduleId);
- Task AddHtmlTextAsync(Models.HtmlText htmltext);
+ Task AddHtmlTextAsync(Models.HtmlText htmltext);
Task DeleteHtmlTextAsync(int htmlTextId, int moduleId);
}
diff --git a/Oqtane.Client/Modules/HtmlText/Settings.razor b/Oqtane.Client/Modules/HtmlText/Settings.razor
index bc1004a3..f08074c1 100644
--- a/Oqtane.Client/Modules/HtmlText/Settings.razor
+++ b/Oqtane.Client/Modules/HtmlText/Settings.razor
@@ -40,7 +40,7 @@
}
catch (Exception ex)
{
- ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
+ AddModuleMessage(ex.Message, MessageType.Error);
}
}
@@ -55,7 +55,7 @@
}
catch (Exception ex)
{
- ModuleInstance.AddModuleMessage(ex.Message, MessageType.Error);
+ AddModuleMessage(ex.Message, MessageType.Error);
}
}
}
diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs
index 05281844..fee2d4e5 100644
--- a/Oqtane.Client/Modules/ModuleBase.cs
+++ b/Oqtane.Client/Modules/ModuleBase.cs
@@ -37,7 +37,7 @@ namespace Oqtane.Modules
protected Module ModuleState { get; set; }
[Parameter]
- public ModuleInstance ModuleInstance { get; set; }
+ public RenderModeBoundary RenderModeBoundary { get; set; }
// optional interface properties
public virtual SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.View; } set { } } // default security
@@ -50,6 +50,8 @@ namespace Oqtane.Modules
public virtual List Resources { get; set; }
+ public virtual string RenderMode { get { return RenderModes.Interactive; } } // interactive by default
+
// url parameters
public virtual string UrlParametersTemplate { get; set; }
@@ -77,7 +79,7 @@ namespace Oqtane.Modules
{
if (PageState.Page.Resources != null)
{
- resources = PageState.Page.Resources.Where(item => item.ResourceType == ResourceType.Script && item.Level != ResourceLevel.Site && item.Namespace == type.Namespace).ToList();
+ resources = PageState.Page.Resources.Where(item => item.ResourceType == ResourceType.Script && item.Level == ResourceLevel.Module && item.Namespace == type.Namespace).ToList();
}
}
else // modulecontrolbase
@@ -87,22 +89,25 @@ namespace Oqtane.Modules
resources = Resources.Where(item => item.ResourceType == ResourceType.Script).ToList();
}
}
- if (resources != null &&resources.Any())
+ if (resources != null && resources.Any())
{
var interop = new Interop(JSRuntime);
var scripts = new List