From db73052ee58c0de12aa51ac6e9e19b26a2fbc209 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Wed, 8 Feb 2023 14:45:20 -0500 Subject: [PATCH] allow system log to be cleared --- .../Modules/Admin/SystemInfo/Index.razor | 53 ++++++++++++------- .../Modules/Admin/SystemInfo/Index.resx | 9 ++++ Oqtane.Server/Controllers/SystemController.cs | 21 +++++++- .../03030201_AddFolderFileIsDeletedColumns.cs | 4 +- Oqtane.Shared/Models/File.cs | 2 +- Oqtane.Shared/Models/Folder.cs | 2 +- 6 files changed, 67 insertions(+), 24 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor b/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor index fc1160df..239d3e9b 100644 --- a/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor +++ b/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor @@ -156,6 +156,8 @@ +

+

@@ -222,24 +224,39 @@ } private async Task SaveConfig() - { - try - { - var settings = new Dictionary(); - settings.Add("DetailedErrors", _detailederrors); - settings.Add("Logging:LogLevel:Default", _logginglevel); - settings.Add("Logging:LogLevel:Notify", _notificationlevel); - settings.Add("UseSwagger", _swagger); - settings.Add("PackageService", _packageservice); - await SystemService.UpdateSystemInfoAsync(settings); - AddModuleMessage(Localizer["Success.UpdateConfig.Restart"], MessageType.Success); - } - catch (Exception ex) - { - await logger.LogError(ex, "Error Saving Configuration"); - AddModuleMessage(Localizer["Error.UpdateConfig"], MessageType.Error); - } - } + { + try + { + var settings = new Dictionary(); + settings.Add("DetailedErrors", _detailederrors); + settings.Add("Logging:LogLevel:Default", _logginglevel); + settings.Add("Logging:LogLevel:Notify", _notificationlevel); + settings.Add("UseSwagger", _swagger); + settings.Add("PackageService", _packageservice); + await SystemService.UpdateSystemInfoAsync(settings); + AddModuleMessage(Localizer["Success.UpdateConfig.Restart"], MessageType.Success); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Saving Configuration"); + AddModuleMessage(Localizer["Error.UpdateConfig"], MessageType.Error); + } + } + + private async Task ClearLog() + { + try + { + await SystemService.UpdateSystemInfoAsync("Log", "Clear"); + _log = string.Empty; + AddModuleMessage(Localizer["Success.ClearLog"], MessageType.Success); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Clearing Log"); + AddModuleMessage(Localizer["Error.ClearLog"], MessageType.Error); + } + } private async Task RestartApplication() { diff --git a/Oqtane.Client/Resources/Modules/Admin/SystemInfo/Index.resx b/Oqtane.Client/Resources/Modules/Admin/SystemInfo/Index.resx index fc84a50a..c5c328cd 100644 --- a/Oqtane.Client/Resources/Modules/Admin/SystemInfo/Index.resx +++ b/Oqtane.Client/Resources/Modules/Admin/SystemInfo/Index.resx @@ -285,4 +285,13 @@ System log information for current day + + Clear + + + System Log Has Been Successfully Cleared + + + Ann Error Occurred Clearing The System Log + \ No newline at end of file diff --git a/Oqtane.Server/Controllers/SystemController.cs b/Oqtane.Server/Controllers/SystemController.cs index 6e77094d..e6fb098c 100644 --- a/Oqtane.Server/Controllers/SystemController.cs +++ b/Oqtane.Server/Controllers/SystemController.cs @@ -84,7 +84,7 @@ namespace Oqtane.Controllers { foreach(KeyValuePair kvp in settings) { - _configManager.AddOrUpdateSetting(kvp.Key, kvp.Value, false); + UpdateSetting(kvp.Key, kvp.Value); } } @@ -93,7 +93,24 @@ namespace Oqtane.Controllers [Authorize(Roles = RoleNames.Host)] public void Put(string key, object value) { - _configManager.AddOrUpdateSetting(key, value, false); + UpdateSetting(key, value); + } + + private void UpdateSetting(string key, object value) + { + switch (key) + { + case "Log": + string path = Path.Combine(_environment.ContentRootPath, "Content", "Log", "error.log"); + if (System.IO.File.Exists(path)) + { + System.IO.File.Delete(path); + } + break; + default: + _configManager.AddOrUpdateSetting(key, value, false); + break; + } } } } diff --git a/Oqtane.Server/Migrations/Tenant/03030201_AddFolderFileIsDeletedColumns.cs b/Oqtane.Server/Migrations/Tenant/03030201_AddFolderFileIsDeletedColumns.cs index d012a5b7..ad954a7d 100644 --- a/Oqtane.Server/Migrations/Tenant/03030201_AddFolderFileIsDeletedColumns.cs +++ b/Oqtane.Server/Migrations/Tenant/03030201_AddFolderFileIsDeletedColumns.cs @@ -20,10 +20,10 @@ namespace Oqtane.Migrations.Tenant if (ActiveDatabase.Name != "Sqlite") { var folderEntityBuilder = new FolderEntityBuilder(migrationBuilder, ActiveDatabase); - folderEntityBuilder.AddBooleanColumn("IsDeleted"); + folderEntityBuilder.AddBooleanColumn("IsDeleted", true); var fileEntityBuilder = new FileEntityBuilder(migrationBuilder, ActiveDatabase); - fileEntityBuilder.AddBooleanColumn("IsDeleted"); + fileEntityBuilder.AddBooleanColumn("IsDeleted", true); } } diff --git a/Oqtane.Shared/Models/File.cs b/Oqtane.Shared/Models/File.cs index 9fdae1a0..e90b6af1 100644 --- a/Oqtane.Shared/Models/File.cs +++ b/Oqtane.Shared/Models/File.cs @@ -58,7 +58,7 @@ namespace Oqtane.Models /// /// Deprecated - not used /// - public bool IsDeleted { get; set; } + public bool? IsDeleted { get; set; } /// /// Object reference to the object. diff --git a/Oqtane.Shared/Models/Folder.cs b/Oqtane.Shared/Models/Folder.cs index f6530c23..90bf87bd 100644 --- a/Oqtane.Shared/Models/Folder.cs +++ b/Oqtane.Shared/Models/Folder.cs @@ -62,7 +62,7 @@ namespace Oqtane.Models /// /// Deprecated - not used /// - public bool IsDeleted { get; set; } + public bool? IsDeleted { get; set; } /// /// TODO: todoc what would this contain?