From 5e42ab8ccaf8ff52de22e0e11c7f25f6ca728f76 Mon Sep 17 00:00:00 2001 From: Shaun Walker Date: Tue, 24 Nov 2020 16:22:53 -0500 Subject: [PATCH] improve user experience by delegating application restart responsibility to the host user --- .../Modules/Admin/ModuleCreator/Index.razor | 10 +-------- .../Modules/Admin/ModuleDefinitions/Add.razor | 6 ++---- .../Admin/ModuleDefinitions/Index.razor | 8 ++----- .../Modules/Admin/SystemInfo/Index.razor | 21 +++++++++++++++++-- Oqtane.Client/Modules/Admin/Themes/Add.razor | 6 ++---- .../Modules/Admin/Themes/Index.razor | 8 ++----- .../Modules/Controls/ModuleMessage.razor | 2 +- Oqtane.Client/Services/InstallationService.cs | 7 ++++++- .../Interfaces/IInstallationService.cs | 3 ++- .../Controllers/InstallationController.cs | 8 +++++++ .../Controllers/ModuleDefinitionController.cs | 7 +------ Oqtane.Server/Controllers/ThemeController.cs | 6 ++---- .../Infrastructure/InstallationManager.cs | 10 +++------ .../Interfaces/IInstallationManager.cs | 4 ++-- 14 files changed, 53 insertions(+), 53 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor b/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor index 9da0deec..28b1c6e0 100644 --- a/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleCreator/Index.razor @@ -86,23 +86,15 @@ public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; - protected override void OnInitialized() - { - AddModuleMessage("Please Note That Once You Select The Create Module Button The Application Must Restart In Order To Complete The Process. If You Create An External Module You Will Need To Compile The Source Code And Then Relaunch Your Site In Order To Make It Functional.", MessageType.Info); - } - private async Task CreateModule() { try { if (IsValid(_owner) && IsValid(_module) && _template != "-") { - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 5); - var moduleDefinition = new ModuleDefinition { Owner = _owner, Name = _module, Description = _description, Template = _template, Version = _reference }; await ModuleDefinitionService.CreateModuleDefinitionAsync(moduleDefinition, ModuleState.ModuleId); + AddModuleMessage("The Source Code For Your Module Has Been Created And Must Be Compiled In Order To Make It Functional. Once It Has Been Compiled You Must Restart Your Application.", MessageType.Success); } else { diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor index 23bc7a10..22d08ac2 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor @@ -78,14 +78,12 @@ { try { - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 10); await ModuleDefinitionService.InstallModuleDefinitionsAsync(); + AddModuleMessage("Module Installed Successfully. You Must Restart Your Application To Apply These Changes.", MessageType.Success); } catch (Exception ex) { - await logger.LogError(ex, "Error Installating Module"); + await logger.LogError(ex, "Error Installing Module"); } } diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor index 7d5cbd90..da1f58a8 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor @@ -85,10 +85,8 @@ else { await PackageService.DownloadPackageAsync(moduledefinitionname, version, "Modules"); await logger.LogInformation("Module Downloaded {ModuleDefinitionName} {Version}", moduledefinitionname, version); - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 10); await ModuleDefinitionService.InstallModuleDefinitionsAsync(); + AddModuleMessage("Module Installed Successfully. You Must Restart Your Application To Apply These Changes.", MessageType.Success); } catch (Exception ex) { @@ -101,10 +99,8 @@ else { try { - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 10); await ModuleDefinitionService.DeleteModuleDefinitionAsync(moduleDefinition.ModuleDefinitionId, moduleDefinition.SiteId); + AddModuleMessage("Module Deleted Successfully. You Must Restart Your Application To Apply These Changes.", MessageType.Success); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor b/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor index 98c95892..5a1e485a 100644 --- a/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor +++ b/Oqtane.Client/Modules/Admin/SystemInfo/Index.razor @@ -1,6 +1,7 @@ @namespace Oqtane.Modules.Admin.SystemInfo @inherits ModuleBase @inject ISystemService SystemService +@inject IInstallationService InstallationService @inject IStringLocalizer Localizer @@ -53,7 +54,8 @@
-@Localizer["Access Framework API"] +@Localizer["Access Framework API"]  + @code { public override SecurityAccessLevel SecurityAccessLevel => SecurityAccessLevel.Host; @@ -79,4 +81,19 @@ _servertime = systeminfo["servertime"]; } } -} + + private async Task RestartApplication() + { + try + { + ShowProgressIndicator(); + var interop = new Interop(JSRuntime); + await interop.RedirectBrowser(NavigateUrl(""), 10); + await InstallationService.RestartAsync(); + } + catch (Exception ex) + { + await logger.LogError(ex, "Error Restarting Application"); + } + } +} \ No newline at end of file diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor index 6ab6fde3..fa896dd4 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Add.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor @@ -78,14 +78,12 @@ { try { - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 10); await ThemeService.InstallThemesAsync(); + AddModuleMessage("Theme Installed Successfully. You Must Restart Your Application To Apply These Changes.", MessageType.Success); } catch (Exception ex) { - await logger.LogError(ex, "Error Installating Theme"); + await logger.LogError(ex, "Error Installing Theme"); } } diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor index 758dddb4..8b64bff8 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Index.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor @@ -86,10 +86,8 @@ else { await PackageService.DownloadPackageAsync(themename, version, "Themes"); await logger.LogInformation("Theme Downloaded {ThemeName} {Version}", themename, version); - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 10); await ThemeService.InstallThemesAsync(); + AddModuleMessage("Theme Installed Successfully. You Must Restart Your Application To Apply These Changes.", MessageType.Success); } catch (Exception ex) { @@ -102,10 +100,8 @@ else { try { - ShowProgressIndicator(); - var interop = new Interop(JSRuntime); - await interop.RedirectBrowser(NavigateUrl(), 10); await ThemeService.DeleteThemeAsync(Theme.ThemeName); + AddModuleMessage("Theme Deleted Successfully. You Must Restart Your Application To Apply These Changes.", MessageType.Success); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Controls/ModuleMessage.razor b/Oqtane.Client/Modules/Controls/ModuleMessage.razor index ee846b13..04a1056e 100644 --- a/Oqtane.Client/Modules/Controls/ModuleMessage.razor +++ b/Oqtane.Client/Modules/Controls/ModuleMessage.razor @@ -5,7 +5,7 @@ @if (!string.IsNullOrEmpty(_message)) {