diff --git a/Oqtane.Client/Modules/HtmlText/Edit.razor b/Oqtane.Client/Modules/HtmlText/Edit.razor
index 9ad9628b..384a27b4 100644
--- a/Oqtane.Client/Modules/HtmlText/Edit.razor
+++ b/Oqtane.Client/Modules/HtmlText/Edit.razor
@@ -31,8 +31,8 @@
|
|
|
- @SharedLocalizer["CreatedOn"] |
- @SharedLocalizer["CreatedBy"] |
+ @Localizer["CreatedOn"] |
+ @Localizer["CreatedBy"] |
|
diff --git a/Oqtane.Client/Modules/HtmlText/Settings.razor b/Oqtane.Client/Modules/HtmlText/Settings.razor
index 783e1180..85413e55 100644
--- a/Oqtane.Client/Modules/HtmlText/Settings.razor
+++ b/Oqtane.Client/Modules/HtmlText/Settings.razor
@@ -16,6 +16,12 @@
+
@@ -26,12 +32,14 @@
private bool validated = false;
private string _dynamictokens;
+ private string _versions = "5";
protected override void OnInitialized()
{
try
{
_dynamictokens = SettingService.GetSetting(ModuleState.Settings, "DynamicTokens", "false");
+ _versions = SettingService.GetSetting(ModuleState.Settings, "Versions", "3");
}
catch (Exception ex)
{
@@ -45,6 +53,10 @@
{
var settings = await SettingService.GetModuleSettingsAsync(ModuleState.ModuleId);
settings = SettingService.SetSetting(settings, "DynamicTokens", _dynamictokens);
+ if (int.TryParse(_versions, out int versions) && versions >= 0 && versions <= 9)
+ {
+ settings = SettingService.SetSetting(settings, "Versions", versions.ToString());
+ }
await SettingService.UpdateModuleSettingsAsync(settings, ModuleState.ModuleId);
}
catch (Exception ex)
diff --git a/Oqtane.Client/Resources/Modules/HtmlText/Settings.resx b/Oqtane.Client/Resources/Modules/HtmlText/Settings.resx
index 68a539c0..f72cd586 100644
--- a/Oqtane.Client/Resources/Modules/HtmlText/Settings.resx
+++ b/Oqtane.Client/Resources/Modules/HtmlText/Settings.resx
@@ -123,4 +123,10 @@
Dynamic Tokens?
+
+ The number of content versions to preserve (note that zero means unlimited)
+
+
+ Versions:
+
\ No newline at end of file
diff --git a/Oqtane.Server/Modules/HtmlText/Repository/HtmlTextRepository.cs b/Oqtane.Server/Modules/HtmlText/Repository/HtmlTextRepository.cs
index 53688d4c..2f999602 100644
--- a/Oqtane.Server/Modules/HtmlText/Repository/HtmlTextRepository.cs
+++ b/Oqtane.Server/Modules/HtmlText/Repository/HtmlTextRepository.cs
@@ -1,7 +1,9 @@
-using System.Linq;
-using Oqtane.Documentation;
using System.Collections.Generic;
+using System.Linq;
using Microsoft.EntityFrameworkCore;
+using Oqtane.Documentation;
+using Oqtane.Repository;
+using Oqtane.Shared;
namespace Oqtane.Modules.HtmlText.Repository
{
@@ -18,10 +20,12 @@ namespace Oqtane.Modules.HtmlText.Repository
public class HtmlTextRepository : IHtmlTextRepository, ITransientService
{
private readonly IDbContextFactory _factory;
+ private readonly ISettingRepository _settingRepository;
- public HtmlTextRepository(IDbContextFactory factory)
+ public HtmlTextRepository(IDbContextFactory factory, ISettingRepository settingRepository)
{
_factory = factory;
+ _settingRepository = settingRepository;
}
public IEnumerable GetHtmlTexts(int moduleId)
@@ -39,6 +43,17 @@ namespace Oqtane.Modules.HtmlText.Repository
public Models.HtmlText AddHtmlText(Models.HtmlText htmlText)
{
using var db = _factory.CreateDbContext();
+
+ var versions = int.Parse(_settingRepository.GetSettingValue(EntityNames.Module, htmlText.ModuleId, "Versions", "3"));
+ if (versions > 0)
+ {
+ var htmlTexts = db.HtmlText.Where(item => item.ModuleId == htmlText.ModuleId).OrderByDescending(item => item.CreatedOn).ToList();
+ for (int i = versions - 1; i < htmlTexts.Count; i++)
+ {
+ db.HtmlText.Remove(htmlTexts[i]);
+ }
+ }
+
db.HtmlText.Add(htmlText);
db.SaveChanges();
return htmlText;