HtmlText null exception fix

HtmlText Mode switch fix
Control panel fix

(cherry picked from commit b7d2cd06001a3d6a2f8a01e1261795b7da0eb461)
This commit is contained in:
Pavel Vesely 2020-03-05 22:12:01 +01:00
parent 2c51c71527
commit ff18059b06
4 changed files with 22 additions and 8 deletions

View File

@ -70,8 +70,8 @@ else
public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Edit; } } public override SecurityAccessLevel SecurityAccessLevel { get { return SecurityAccessLevel.Edit; } }
public override string Title { get { return "Edit Html/Text"; } } public override string Title { get { return "Edit Html/Text"; } }
RichTextEditor RichTextEditorHtml;
bool RichTextEditorMode = true; bool RichTextEditorMode = true;
RichTextEditor RichTextEditorHtml;
string content; string content;
string createdby; string createdby;
DateTime createdon; DateTime createdon;
@ -117,13 +117,20 @@ else
private async Task RichTextEditor() private async Task RichTextEditor()
{ {
RichTextEditorMode = true; RichTextEditorMode = true;
await LoadText(); //TODO: maybe exists better solution than delay. Without this editor becomes corrupted.
await Task.Delay(100);
await RichTextEditorHtml.LoadContent(content);
StateHasChanged();
} }
private async Task RawHTMLEditor() private async Task RawHTMLEditor()
{ {
if (RichTextEditorMode)
{
content = await this.RichTextEditorHtml.GetHTML();
}
RichTextEditorMode = false; RichTextEditorMode = false;
await LoadText(); // await LoadText();
} }
private async Task SaveContent() private async Task SaveContent()

View File

@ -1,3 +1,5 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Net.Http; using System.Net.Http;
using Microsoft.AspNetCore.Components; using Microsoft.AspNetCore.Components;
@ -31,8 +33,10 @@ namespace Oqtane.Modules.HtmlText.Services
HtmlTextInfo htmltext; HtmlTextInfo htmltext;
try try
{ {
// exception handling is required because GetJsonAsync() returns an error if no content exists for the ModuleId ( https://github.com/aspnet/AspNetCore/issues/14041 ) //because GetJsonAsync() returns an error if no content exists for the ModuleId ( https://github.com/aspnet/AspNetCore/issues/14041 )
htmltext = await _http.GetJsonAsync<HtmlTextInfo>(apiurl + "/" + ModuleId.ToString() + "?entityid=" + ModuleId.ToString()); //null value is transfered as empty list
var htmltextList = await _http.GetJsonAsync<List<HtmlTextInfo>>(apiurl + "/" + ModuleId.ToString() + "?entityid=" + ModuleId.ToString());
htmltext = htmltextList.FirstOrDefault();
} }
catch catch
{ {

View File

@ -317,7 +317,7 @@
} }
PageModule pagemodule = new PageModule(); PageModule pagemodule = new PageModule();
pagemodule.PageId = (pageid != "-") ? PageState.Page.PageId : int.Parse(pageid); pagemodule.PageId = (pageid == "-") ? PageState.Page.PageId : int.Parse(pageid);
pagemodule.ModuleId = int.Parse(moduleid); pagemodule.ModuleId = int.Parse(moduleid);
pagemodule.Title = title; pagemodule.Title = title;
if (pagemodule.Title == "") if (pagemodule.Title == "")

View File

@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Http;
using Oqtane.Infrastructure; using Oqtane.Infrastructure;
using Oqtane.Shared; using Oqtane.Shared;
using System; using System;
using System.Collections.Generic;
namespace Oqtane.Modules.HtmlText.Controllers namespace Oqtane.Modules.HtmlText.Controllers
{ {
@ -29,22 +30,24 @@ namespace Oqtane.Modules.HtmlText.Controllers
// GET api/<controller>/5 // GET api/<controller>/5
[HttpGet("{id}")] [HttpGet("{id}")]
[Authorize(Policy = "ViewModule")] [Authorize(Policy = "ViewModule")]
public HtmlTextInfo Get(int id) public List<HtmlTextInfo> Get(int id)
{ {
var list = new List<HtmlTextInfo>();
try try
{ {
HtmlTextInfo HtmlText = null; HtmlTextInfo HtmlText = null;
if (_entityId == id) if (_entityId == id)
{ {
HtmlText = _htmlText.GetHtmlText(id); HtmlText = _htmlText.GetHtmlText(id);
list.Add(HtmlText);
} }
return HtmlText;
} }
catch (Exception ex) catch (Exception ex)
{ {
_logger.Log(LogLevel.Error, this, LogFunction.Read, ex, "Get Error {Error}", ex.Message); _logger.Log(LogLevel.Error, this, LogFunction.Read, ex, "Get Error {Error}", ex.Message);
throw; throw;
} }
return list;
} }
// POST api/<controller> // POST api/<controller>