104 lines
3.8 KiB
Plaintext
104 lines
3.8 KiB
Plaintext
@using Oqtane.Modules.HtmlText.Services
|
|
@using Oqtane.Modules.HtmlText.Models
|
|
@using Oqtane.Modules.Controls
|
|
@namespace Oqtane.Modules.HtmlText
|
|
@inherits ModuleBase
|
|
@inject IHtmlTextService HtmlTextService
|
|
@inject ISettingService SettingService
|
|
@inject NavigationManager NavigationManager
|
|
@inject IStringLocalizer<Edit> Localizer
|
|
@inject IStringLocalizer<SharedResources> SharedLocalizer
|
|
|
|
@if (_content != null)
|
|
{
|
|
<RichTextEditor Content="@_content" AllowFileManagement="@_allowfilemanagement" @ref="@RichTextEditorHtml"></RichTextEditor>
|
|
<button type="button" class="btn btn-success" @onclick="SaveContent">@SharedLocalizer["Save"]</button>
|
|
<NavLink class="btn btn-secondary" href="@NavigateUrl()">@SharedLocalizer["Cancel"]</NavLink>
|
|
@if (!string.IsNullOrEmpty(_content))
|
|
{
|
|
<br />
|
|
<br />
|
|
<AuditInfo CreatedBy="@_createdby" CreatedOn="@_createdon" ModifiedBy="@_modifiedby" ModifiedOn="@_modifiedon"></AuditInfo>
|
|
}
|
|
}
|
|
|
|
@code {
|
|
public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Edit;
|
|
|
|
public override string Title => "Edit Html/Text";
|
|
|
|
public override List<Resource> Resources => new List<Resource>()
|
|
{
|
|
new Resource { ResourceType = ResourceType.Stylesheet, Url = ModulePath() + "Module.css" },
|
|
new Resource { ResourceType = ResourceType.Stylesheet, Url = "css/quill/quill.bubble.css" },
|
|
new Resource { ResourceType = ResourceType.Stylesheet, Url = "css/quill/quill.snow.css" }
|
|
};
|
|
|
|
private RichTextEditor RichTextEditorHtml;
|
|
private bool _allowfilemanagement;
|
|
private string _content = null;
|
|
private string _createdby;
|
|
private DateTime _createdon;
|
|
private string _modifiedby;
|
|
private DateTime _modifiedon;
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
try
|
|
{
|
|
_allowfilemanagement = bool.Parse(SettingService.GetSetting(ModuleState.Settings, "AllowFileManagement", "true"));
|
|
|
|
var htmltext = await HtmlTextService.GetHtmlTextAsync(ModuleState.ModuleId);
|
|
if (htmltext != null)
|
|
{
|
|
_content = htmltext.Content;
|
|
_content = Utilities.FormatContent(_content, PageState.Alias, "render");
|
|
_createdby = htmltext.CreatedBy;
|
|
_createdon = htmltext.CreatedOn;
|
|
_modifiedby = htmltext.ModifiedBy;
|
|
_modifiedon = htmltext.ModifiedOn;
|
|
}
|
|
else
|
|
{
|
|
_content = string.Empty;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
await logger.LogError(ex, "Error Loading Content {Error}", ex.Message);
|
|
AddModuleMessage(Localizer["Error.Content.Load"], MessageType.Error);
|
|
}
|
|
}
|
|
|
|
private async Task SaveContent()
|
|
{
|
|
string content = await RichTextEditorHtml.GetHtml();
|
|
content = Utilities.FormatContent(content, PageState.Alias, "save");
|
|
|
|
try
|
|
{
|
|
var htmltext = await HtmlTextService.GetHtmlTextAsync(ModuleState.ModuleId);
|
|
if (htmltext != null)
|
|
{
|
|
htmltext.Content = content;
|
|
await HtmlTextService.UpdateHtmlTextAsync(htmltext);
|
|
}
|
|
else
|
|
{
|
|
htmltext = new HtmlText();
|
|
htmltext.ModuleId = ModuleState.ModuleId;
|
|
htmltext.Content = content;
|
|
await HtmlTextService.AddHtmlTextAsync(htmltext);
|
|
}
|
|
|
|
await logger.LogInformation("Content Saved {HtmlText}", htmltext);
|
|
NavigationManager.NavigateTo(NavigateUrl());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
await logger.LogError(ex, "Error Saving Content {Error}", ex.Message);
|
|
AddModuleMessage(Localizer["Error.Content.Save"], MessageType.Error);
|
|
}
|
|
}
|
|
}
|