@using Oqtane.Modules.HtmlText.Services @using Oqtane.Modules.HtmlText.Models @using Oqtane.Modules.Controls @namespace Oqtane.Modules.HtmlText @inherits ModuleBase @inject NavigationManager NavigationManager @inject HttpClient http @inject SiteState sitestate
@if (!RichTextEditorMode) { } else { } Cancel
@code { private string _visibleText = "d-none"; private string _visibleRich; private bool _richTextEditorMode; private RichTextEditor RichTextEditorHtml; private string content; private string createdby; private DateTime createdon; private string modifiedby; private DateTime modifiedon; public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit; public override string Title => "Edit Html/Text"; public bool RichTextEditorMode { get => _richTextEditorMode; set { _richTextEditorMode = value; if (_richTextEditorMode) { _visibleText = "d-none"; _visibleRich = string.Empty; } else { _visibleText = string.Empty; _visibleRich = "d-none"; } } } protected override async Task OnAfterRenderAsync(bool firstRender) { try { if (firstRender) { if (content == null) { RichTextEditorMode = true; await LoadText(); } } } catch (Exception ex) { await logger.LogError(ex, "An Error Occurred Loading Html/Text Content. " + ex.Message); AddModuleMessage(ex.Message, MessageType.Error); } } private async Task LoadText() { var htmltextservice = new HtmlTextService(http, sitestate, NavigationManager); var htmltext = await htmltextservice.GetHtmlTextAsync(ModuleState.ModuleId); if (htmltext != null) { content = htmltext.Content; createdby = htmltext.CreatedBy; createdon = htmltext.CreatedOn; modifiedby = htmltext.ModifiedBy; modifiedon = htmltext.ModifiedOn; if (RichTextEditorMode) { await RichTextEditorHtml.LoadContent(content); StateHasChanged(); } } } private async Task RichTextEditor() { RichTextEditorMode = true; await RichTextEditorHtml.LoadContent(content); StateHasChanged(); } private async Task RawHtmlEditor() { content = await this.RichTextEditorHtml.GetHtml(); RichTextEditorMode = false; StateHasChanged(); } private async Task SaveContent() { if (RichTextEditorMode) { content = await RichTextEditorHtml.GetHtml(); } content = content.Replace(((PageState.Alias.Path == string.Empty) ? "/~" : PageState.Alias.Path) + Constants.ContentUrl, Constants.ContentUrl); try { var htmltextservice = new HtmlTextService(http, sitestate, NavigationManager); var htmltext = await htmltextservice.GetHtmlTextAsync(ModuleState.ModuleId); if (htmltext != null) { htmltext.Content = content; await htmltextservice.UpdateHtmlTextAsync(htmltext); } else { htmltext = new HtmlTextInfo(); htmltext.ModuleId = ModuleState.ModuleId; htmltext.Content = content; await htmltextservice.AddHtmlTextAsync(htmltext); } await logger.LogInformation("Html/Text Content Saved {HtmlText}", htmltext); NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Content {Error}", ex.Message); AddModuleMessage("Error Saving Content", MessageType.Error); } } }