@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 { public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Edit; } } public override string Title { get { return "Edit Html/Text"; } } public bool RichTextEditorMode { get => _richTextEditorMode; set { _richTextEditorMode = value; if (_richTextEditorMode) { _visibleText = "d-none"; _visibleRich = ""; } else { _visibleText = ""; _visibleRich = "d-none"; } } } string _visibleText; string _visibleRich; bool _richTextEditorMode; RichTextEditor RichTextEditorHtml; string content; string createdby; DateTime createdon; string modifiedby; DateTime modifiedon; 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() { HtmlTextService htmltextservice = new HtmlTextService(http, sitestate, NavigationManager); HtmlTextInfo 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 == "") ? "/~" : PageState.Alias.Path) + Constants.ContentUrl, Constants.ContentUrl); try { HtmlTextService htmltextservice = new HtmlTextService(http, sitestate, NavigationManager); HtmlTextInfo 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(Reload.Page)); } catch (Exception ex) { await logger.LogError(ex, "Error Saving Content {Error}", ex.Message); AddModuleMessage("Error Saving Content", MessageType.Error); } } }