diff --git a/Oqtane.Client/Modules/Admin/Files/Edit.razor b/Oqtane.Client/Modules/Admin/Files/Edit.razor index 668b0ba7..360ac6b6 100644 --- a/Oqtane.Client/Modules/Admin/Files/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Files/Edit.razor @@ -152,7 +152,7 @@ } await FolderService.UpdateFolderOrderAsync(folder.SiteId, folder.FolderId, folder.ParentId); await logger.LogInformation("Folder Saved {Folder}", folder); - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } else { diff --git a/Oqtane.Client/Modules/Admin/Login/Index.razor b/Oqtane.Client/Modules/Admin/Login/Index.razor index f2ffa020..99d297b0 100644 --- a/Oqtane.Client/Modules/Admin/Login/Index.razor +++ b/Oqtane.Client/Modules/Admin/Login/Index.razor @@ -117,7 +117,7 @@ { await logger.LogInformation("Login Successful For Username {Username}", Username); authstateprovider.NotifyAuthenticationChanged(); - NavigationManager.NavigateTo(NavigateUrl(ReturnUrl, Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl(ReturnUrl)); } else { diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor index a051164f..30cfd525 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Add.razor @@ -72,7 +72,7 @@ try { await ModuleDefinitionService.InstallModuleDefinitionsAsync(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor index 68d535cd..f767c33b 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Edit.razor @@ -71,7 +71,7 @@ moduledefinition.Permissions = permissiongrid.GetPermissions(); await ModuleDefinitionService.UpdateModuleDefinitionAsync(moduledefinition); await logger.LogInformation("ModuleDefinition Saved {ModuleDefinition}", moduledefinition); - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor index 3375eb3d..7d40389f 100644 --- a/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor +++ b/Oqtane.Client/Modules/Admin/ModuleDefinitions/Index.razor @@ -78,7 +78,7 @@ else await PackageService.DownloadPackageAsync(moduledefinitionname, version, "Modules"); await ModuleDefinitionService.InstallModuleDefinitionsAsync(); await logger.LogInformation("Module Downloaded {ModuleDefinitionName} {Version}", moduledefinitionname, version); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { @@ -93,7 +93,7 @@ else { await ModuleDefinitionService.DeleteModuleDefinitionAsync(ModuleDefinition.ModuleDefinitionId, ModuleDefinition.SiteId); await logger.LogInformation("Module Deleted {ModuleDefinition}", ModuleDefinition); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/Modules/Import.razor b/Oqtane.Client/Modules/Admin/Modules/Import.razor index 2db62162..56549632 100644 --- a/Oqtane.Client/Modules/Admin/Modules/Import.razor +++ b/Oqtane.Client/Modules/Admin/Modules/Import.razor @@ -33,7 +33,8 @@ try { await ModuleService.ImportModuleAsync(ModuleState.ModuleId, content); - NavigationManager.NavigateTo(NavigateUrl(Reload.Page)); + StateHasChanged(); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/Modules/Settings.razor b/Oqtane.Client/Modules/Admin/Modules/Settings.razor index 14d8f9eb..18659e7e 100644 --- a/Oqtane.Client/Modules/Admin/Modules/Settings.razor +++ b/Oqtane.Client/Modules/Admin/Modules/Settings.razor @@ -115,7 +115,7 @@ moduleType.GetMethod("UpdateSettings").Invoke(settings, null); // method must be public in settings component } - NavigationManager.NavigateTo(NavigateUrl(Reload.Page)); + NavigationManager.NavigateTo(NavigateUrl()); } } diff --git a/Oqtane.Client/Modules/Admin/Pages/Add.razor b/Oqtane.Client/Modules/Admin/Pages/Add.razor index b5de908e..46543bca 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Add.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Add.razor @@ -315,7 +315,7 @@ await PageService.UpdatePageOrderAsync(page.SiteId, page.PageId, page.ParentId); await logger.LogInformation("Page Added {Page}", page); - NavigationManager.NavigateTo(NavigateUrl(page.Path, Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl(page.Path)); } else { diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index 2dc485d2..e0743b13 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -400,7 +400,7 @@ } await logger.LogInformation("Page Saved {Page}", page); - NavigationManager.NavigateTo(NavigateUrl(page.Path, Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl(page.Path)); } else { diff --git a/Oqtane.Client/Modules/Admin/Pages/Index.razor b/Oqtane.Client/Modules/Admin/Pages/Index.razor index bb6e030e..85f9f12f 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Index.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Index.razor @@ -31,7 +31,7 @@ Page.IsDeleted = true; await PageService.UpdatePageAsync(Page); await logger.LogInformation("Page Deleted {Page}", Page); - NavigationManager.NavigateTo(NavigateUrl("admin/pages", Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl("admin/pages")); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor b/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor index 9ba7b95b..72409259 100644 --- a/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor +++ b/Oqtane.Client/Modules/Admin/RecycleBin/Index.razor @@ -117,7 +117,7 @@ await logger.LogInformation("Page Restored {Page}", Page); await Load(); StateHasChanged(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { @@ -134,7 +134,7 @@ await logger.LogInformation("Page Permanently Deleted {Page}", Page); await Load(); StateHasChanged(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index a2d6c815..f88898de 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -329,7 +329,7 @@ await logger.LogInformation("Site Saved {Site}", site); - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } } else diff --git a/Oqtane.Client/Modules/Admin/Sites/Edit.razor b/Oqtane.Client/Modules/Admin/Sites/Edit.razor index 70f5cac0..edd6359f 100644 --- a/Oqtane.Client/Modules/Admin/Sites/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Sites/Edit.razor @@ -243,7 +243,7 @@ await Log(Alias, LogLevel.Information, "Edit", null, "Site Saved {Site}", site); - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } } else diff --git a/Oqtane.Client/Modules/Admin/Sites/Index.razor b/Oqtane.Client/Modules/Admin/Sites/Index.razor index fa71d910..b00730fa 100644 --- a/Oqtane.Client/Modules/Admin/Sites/Index.razor +++ b/Oqtane.Client/Modules/Admin/Sites/Index.razor @@ -61,7 +61,7 @@ else { await AliasService.DeleteAliasAsync(alias.AliasId); } - NavigationManager.NavigateTo(NavigateUrl(Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl()); } else { diff --git a/Oqtane.Client/Modules/Admin/Themes/Add.razor b/Oqtane.Client/Modules/Admin/Themes/Add.razor index 70e03747..08cd3d6e 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Add.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Add.razor @@ -61,7 +61,7 @@ private async Task InstallThemes() { await ThemeService.InstallThemesAsync(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } private async Task DownloadTheme(string packageid, string version) diff --git a/Oqtane.Client/Modules/Admin/Themes/Index.razor b/Oqtane.Client/Modules/Admin/Themes/Index.razor index 501dec1b..09ec9823 100644 --- a/Oqtane.Client/Modules/Admin/Themes/Index.razor +++ b/Oqtane.Client/Modules/Admin/Themes/Index.razor @@ -66,13 +66,13 @@ else await PackageService.DownloadPackageAsync(themename, version, "Themes"); await logger.LogInformation("Theme Downloaded {ThemeName} {Version}", themename, version); await ThemeService.InstallThemesAsync(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } private async Task DeleteTheme(Theme Theme) { await ThemeService.DeleteThemeAsync(Theme.ThemeName); await logger.LogInformation("Theme Deleted {Theme}", Theme); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } } \ No newline at end of file diff --git a/Oqtane.Client/Modules/Admin/Upgrade/Index.razor b/Oqtane.Client/Modules/Admin/Upgrade/Index.razor index d5e4c8a4..5093db2d 100644 --- a/Oqtane.Client/Modules/Admin/Upgrade/Index.razor +++ b/Oqtane.Client/Modules/Admin/Upgrade/Index.razor @@ -47,13 +47,13 @@ private async Task Upgrade() { await InstallationService.Upgrade(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } private async Task Download(string packageid, string version) { await PackageService.DownloadPackageAsync(packageid, version, "Framework"); await InstallationService.Upgrade(); - NavigationManager.NavigateTo(NavigateUrl(Reload.Application)); + NavigationManager.NavigateTo(NavigateUrl()); } } \ No newline at end of file diff --git a/Oqtane.Client/Modules/HtmlText/Edit.razor b/Oqtane.Client/Modules/HtmlText/Edit.razor index c5829d05..ef89a891 100644 --- a/Oqtane.Client/Modules/HtmlText/Edit.razor +++ b/Oqtane.Client/Modules/HtmlText/Edit.razor @@ -189,7 +189,7 @@ await htmltextservice.AddHtmlTextAsync(htmltext); } await logger.LogInformation("Html/Text Content Saved {HtmlText}", htmltext); - NavigationManager.NavigateTo(NavigateUrl(Reload.Page)); + NavigationManager.NavigateTo(NavigateUrl()); } catch (Exception ex) { diff --git a/Oqtane.Shared/Enums/MessageType.cs b/Oqtane.Client/Modules/MessageType.cs similarity index 79% rename from Oqtane.Shared/Enums/MessageType.cs rename to Oqtane.Client/Modules/MessageType.cs index 4610fdf4..a78f95f9 100644 --- a/Oqtane.Shared/Enums/MessageType.cs +++ b/Oqtane.Client/Modules/MessageType.cs @@ -1,4 +1,4 @@ -namespace Oqtane.Shared +namespace Oqtane.Modules { public enum MessageType { diff --git a/Oqtane.Client/Modules/ModuleBase.cs b/Oqtane.Client/Modules/ModuleBase.cs index 690dd4a1..ba0c637b 100644 --- a/Oqtane.Client/Modules/ModuleBase.cs +++ b/Oqtane.Client/Modules/ModuleBase.cs @@ -2,9 +2,9 @@ using Oqtane.Shared; using Oqtane.Models; using System.Threading.Tasks; -using System.Linq; using Oqtane.Services; using System; +using Oqtane.UI; namespace Oqtane.Modules { @@ -49,29 +49,14 @@ namespace Oqtane.Modules return NavigateUrl(PageState.Page.Path); } - public string NavigateUrl(Reload reload) - { - return NavigateUrl(PageState.Page.Path, reload); - } - public string NavigateUrl(string path) { - return NavigateUrl(path, "", Reload.None); - } - - public string NavigateUrl(string path, Reload reload) - { - return NavigateUrl(path, "", reload); + return NavigateUrl(path, ""); } public string NavigateUrl(string path, string parameters) { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, Reload.None); - } - - public string NavigateUrl(string path, string parameters, Reload reload) - { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, reload); + return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters); } public string EditUrl(string action) diff --git a/Oqtane.Client/Services/FileService.cs b/Oqtane.Client/Services/FileService.cs index 265ccb67..89dfee81 100644 --- a/Oqtane.Client/Services/FileService.cs +++ b/Oqtane.Client/Services/FileService.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using Oqtane.Models; using Oqtane.Shared; +using Oqtane.UI; namespace Oqtane.Services { diff --git a/Oqtane.Client/Themes/ContainerBase.cs b/Oqtane.Client/Themes/ContainerBase.cs index 2e55f969..d55b718f 100644 --- a/Oqtane.Client/Themes/ContainerBase.cs +++ b/Oqtane.Client/Themes/ContainerBase.cs @@ -2,8 +2,7 @@ using Microsoft.JSInterop; using Oqtane.Shared; using Oqtane.Models; -using System.Threading.Tasks; -using System.Linq; +using Oqtane.UI; namespace Oqtane.Themes { @@ -30,29 +29,14 @@ namespace Oqtane.Themes return NavigateUrl(PageState.Page.Path); } - public string NavigateUrl(Reload reload) - { - return NavigateUrl(PageState.Page.Path, reload); - } - public string NavigateUrl(string path) { - return NavigateUrl(path, "", Reload.None); - } - - public string NavigateUrl(string path, Reload reload) - { - return NavigateUrl(path, "", reload); + return NavigateUrl(path, ""); } public string NavigateUrl(string path, string parameters) { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, Reload.None); - } - - public string NavigateUrl(string path, string parameters, Reload reload) - { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, reload); + return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters); } public string EditUrl(string action, string parameters) diff --git a/Oqtane.Client/Themes/Controls/ControlPanel.razor b/Oqtane.Client/Themes/Controls/ControlPanel.razor index 070afde9..4f4c7a77 100644 --- a/Oqtane.Client/Themes/Controls/ControlPanel.razor +++ b/Oqtane.Client/Themes/Controls/ControlPanel.razor @@ -29,9 +29,12 @@ + +
+
-
- +
+
@@ -69,10 +72,10 @@
} -
+
-
+
+
-
+
@foreach (KeyValuePair container in _containers) @@ -150,6 +153,8 @@
+
+ @((MarkupString) _message)
@@ -325,7 +330,7 @@ var pageModule = new PageModule { - PageId = (_pageId == "-") ? PageState.Page.PageId : int.Parse(_pageId), + PageId = PageState.Page.PageId, ModuleId = int.Parse(_moduleId), Title = _title }; @@ -361,7 +366,7 @@ _pageId = "-"; _moduleId = "-"; - NavigationManager.NavigateTo(NavigateUrl(Reload.Page)); + NavigationManager.NavigateTo(NavigateUrl()); } else { @@ -386,7 +391,7 @@ { PageState.EditMode = true; } - NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, "edit=" + ((PageState.EditMode) ? "1" : "0"), Reload.Page)); + NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, "edit=" + ((PageState.EditMode) ? "1" : "0"))); } else { @@ -394,7 +399,7 @@ { await PageService.AddPageAsync(PageState.Page.PageId, PageState.User.UserId); PageState.EditMode = true; - NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, "edit=" + ((PageState.EditMode) ? "1" : "0"), Reload.Page)); + NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, "edit=" + ((PageState.EditMode) ? "1" : "0"))); } } } @@ -469,13 +474,13 @@ page.IsDeleted = true; await PageService.UpdatePageAsync(page); await logger.Log(page.PageId, null, PageState.User.UserId, GetType().AssemblyQualifiedName, "ControlPanel", LogFunction.Delete, LogLevel.Information, null, "Page Deleted {Page}", page); - NavigationManager.NavigateTo(NavigateUrl("", Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl("")); } else // personalized page { await PageService.DeletePageAsync(page.PageId); await logger.Log(page.PageId, null, PageState.User.UserId, GetType().AssemblyQualifiedName, "ControlPanel", LogFunction.Delete, LogLevel.Information, null, "Page Deleted {Page}", page); - NavigationManager.NavigateTo(NavigateUrl(Reload.Page)); + NavigationManager.NavigateTo(NavigateUrl()); } } catch (Exception ex) diff --git a/Oqtane.Client/Themes/Controls/Login.razor b/Oqtane.Client/Themes/Controls/Login.razor index c2dff055..7abcebd0 100644 --- a/Oqtane.Client/Themes/Controls/Login.razor +++ b/Oqtane.Client/Themes/Controls/Login.razor @@ -46,7 +46,7 @@ { // client-side Blazor authstateprovider.NotifyAuthenticationChanged(); - NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, "logout", Reload.Site)); + NavigationManager.NavigateTo(NavigateUrl(PageState.Page.Path, "logout")); } } } diff --git a/Oqtane.Client/Themes/Controls/ModuleActions.razor b/Oqtane.Client/Themes/Controls/ModuleActions.razor index 5ca37b44..09355535 100644 --- a/Oqtane.Client/Themes/Controls/ModuleActions.razor +++ b/Oqtane.Client/Themes/Controls/ModuleActions.razor @@ -70,7 +70,7 @@ { PageModule pagemodule = await PageModuleService.GetPageModuleAsync(ModuleState.PageModuleId); - string url = NavigateUrl(Reload.Page); + string url = NavigateUrl(); switch (action) { case "<<": diff --git a/Oqtane.Client/Themes/LayoutBase.cs b/Oqtane.Client/Themes/LayoutBase.cs index 27bac9a6..cd8d92e4 100644 --- a/Oqtane.Client/Themes/LayoutBase.cs +++ b/Oqtane.Client/Themes/LayoutBase.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Components; using Oqtane.Shared; +using Oqtane.UI; namespace Oqtane.Themes { diff --git a/Oqtane.Client/Themes/ThemeBase.cs b/Oqtane.Client/Themes/ThemeBase.cs index f0d05016..2ee51b39 100644 --- a/Oqtane.Client/Themes/ThemeBase.cs +++ b/Oqtane.Client/Themes/ThemeBase.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using Oqtane.Shared; +using Oqtane.UI; using System.Threading.Tasks; namespace Oqtane.Themes @@ -34,29 +35,14 @@ namespace Oqtane.Themes return NavigateUrl(PageState.Page.Path); } - public string NavigateUrl(Reload reload) - { - return NavigateUrl(PageState.Page.Path, reload); - } - public string NavigateUrl(string path) { - return NavigateUrl(path, "", Reload.None); - } - - public string NavigateUrl(string path, Reload reload) - { - return NavigateUrl(path, "", reload); + return NavigateUrl(path, ""); } public string NavigateUrl(string path, string parameters) { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, Reload.None); - } - - public string NavigateUrl(string path, string parameters, Reload reload) - { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, reload); + return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters); } public string EditUrl(int moduleid, string action) diff --git a/Oqtane.Client/Themes/ThemeControlBase.cs b/Oqtane.Client/Themes/ThemeControlBase.cs index baed86cf..13cc1923 100644 --- a/Oqtane.Client/Themes/ThemeControlBase.cs +++ b/Oqtane.Client/Themes/ThemeControlBase.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Components; using Oqtane.Shared; +using Oqtane.UI; namespace Oqtane.Themes { @@ -13,29 +14,14 @@ namespace Oqtane.Themes return NavigateUrl(PageState.Page.Path); } - public string NavigateUrl(Reload reload) - { - return NavigateUrl(PageState.Page.Path, reload); - } - public string NavigateUrl(string path) { - return NavigateUrl(path, "", Reload.None); - } - - public string NavigateUrl(string path, Reload reload) - { - return NavigateUrl(path, "", reload); + return NavigateUrl(path, ""); } public string NavigateUrl(string path, string parameters) { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, Reload.None); - } - - public string NavigateUrl(string path, string parameters, Reload reload) - { - return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters, reload); + return Utilities.NavigateUrl(PageState.Alias.Path, path, parameters); } public string EditUrl(int moduleid, string action) diff --git a/Oqtane.Client/Shared/ContainerBuilder.razor b/Oqtane.Client/UI/ContainerBuilder.razor similarity index 97% rename from Oqtane.Client/Shared/ContainerBuilder.razor rename to Oqtane.Client/UI/ContainerBuilder.razor index 3e2e19ed..01dee688 100644 --- a/Oqtane.Client/Shared/ContainerBuilder.razor +++ b/Oqtane.Client/UI/ContainerBuilder.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI @DynamicComponent diff --git a/Oqtane.Client/Shared/Installer.razor b/Oqtane.Client/UI/Installer.razor similarity index 99% rename from Oqtane.Client/Shared/Installer.razor rename to Oqtane.Client/UI/Installer.razor index 71b5a846..cbaf3952 100644 --- a/Oqtane.Client/Shared/Installer.razor +++ b/Oqtane.Client/UI/Installer.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI @inject NavigationManager NavigationManager @inject IInstallationService InstallationService @inject ISiteService SiteService diff --git a/Oqtane.Client/Shared/Interop.cs b/Oqtane.Client/UI/Interop.cs similarity index 99% rename from Oqtane.Client/Shared/Interop.cs rename to Oqtane.Client/UI/Interop.cs index 82bf37a6..2ab8673e 100644 --- a/Oqtane.Client/Shared/Interop.cs +++ b/Oqtane.Client/UI/Interop.cs @@ -3,7 +3,7 @@ using Microsoft.JSInterop; using System; using System.Threading.Tasks; -namespace Oqtane.Shared +namespace Oqtane.UI { public class Interop { diff --git a/Oqtane.Client/Shared/ModuleInstance.razor b/Oqtane.Client/UI/ModuleInstance.razor similarity index 98% rename from Oqtane.Client/Shared/ModuleInstance.razor rename to Oqtane.Client/UI/ModuleInstance.razor index 8d563405..7487d2de 100644 --- a/Oqtane.Client/Shared/ModuleInstance.razor +++ b/Oqtane.Client/UI/ModuleInstance.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI diff --git a/Oqtane.Client/Shared/PageState.cs b/Oqtane.Client/UI/PageState.cs similarity index 96% rename from Oqtane.Client/Shared/PageState.cs rename to Oqtane.Client/UI/PageState.cs index fc2eec10..e801ad73 100644 --- a/Oqtane.Client/Shared/PageState.cs +++ b/Oqtane.Client/UI/PageState.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using Oqtane.Models; -namespace Oqtane.Shared +namespace Oqtane.UI { public class PageState { diff --git a/Oqtane.Client/Shared/Pane.razor b/Oqtane.Client/UI/Pane.razor similarity index 99% rename from Oqtane.Client/Shared/Pane.razor rename to Oqtane.Client/UI/Pane.razor index e1340677..755d7417 100644 --- a/Oqtane.Client/Shared/Pane.razor +++ b/Oqtane.Client/UI/Pane.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI @inject IUserService UserService @inject IModuleService ModuleService @inject IModuleDefinitionService ModuleDefinitionService diff --git a/Oqtane.Client/Shared/PaneLayout.razor b/Oqtane.Client/UI/PaneLayout.razor similarity index 95% rename from Oqtane.Client/Shared/PaneLayout.razor rename to Oqtane.Client/UI/PaneLayout.razor index 799b15a9..add8cc94 100644 --- a/Oqtane.Client/Shared/PaneLayout.razor +++ b/Oqtane.Client/UI/PaneLayout.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI @DynamicComponent diff --git a/Oqtane.Shared/Enums/Reload.cs b/Oqtane.Client/UI/Reload.cs similarity index 78% rename from Oqtane.Shared/Enums/Reload.cs rename to Oqtane.Client/UI/Reload.cs index 18e8f448..6fb632c6 100644 --- a/Oqtane.Shared/Enums/Reload.cs +++ b/Oqtane.Client/UI/Reload.cs @@ -1,4 +1,4 @@ -namespace Oqtane.Shared +namespace Oqtane.UI { public enum Reload { diff --git a/Oqtane.Client/Shared/RichTextEditorInterop.cs b/Oqtane.Client/UI/RichTextEditorInterop.cs similarity index 98% rename from Oqtane.Client/Shared/RichTextEditorInterop.cs rename to Oqtane.Client/UI/RichTextEditorInterop.cs index 0552df47..50a46e48 100644 --- a/Oqtane.Client/Shared/RichTextEditorInterop.cs +++ b/Oqtane.Client/UI/RichTextEditorInterop.cs @@ -2,7 +2,7 @@ using Microsoft.JSInterop; using System.Threading.Tasks; -namespace Oqtane.Modules.Controls +namespace Oqtane.UI { public static class RichTextEditorInterop { diff --git a/Oqtane.Client/Shared/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor similarity index 99% rename from Oqtane.Client/Shared/SiteRouter.razor rename to Oqtane.Client/UI/SiteRouter.razor index 95518631..b1344e32 100644 --- a/Oqtane.Client/Shared/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI @inject AuthenticationStateProvider AuthenticationStateProvider @inject SiteState SiteState @inject NavigationManager NavigationManager @@ -92,10 +92,6 @@ querystring = ParseQueryString(path); path = path.Substring(0, path.IndexOf("?")); } - if (querystring.ContainsKey("reload")) - { - reload = (Reload)int.Parse(querystring["reload"]); - } if (PageState != null) { diff --git a/Oqtane.Client/Shared/ThemeBuilder.razor b/Oqtane.Client/UI/ThemeBuilder.razor similarity index 96% rename from Oqtane.Client/Shared/ThemeBuilder.razor rename to Oqtane.Client/UI/ThemeBuilder.razor index 145e7449..dd12b058 100644 --- a/Oqtane.Client/Shared/ThemeBuilder.razor +++ b/Oqtane.Client/UI/ThemeBuilder.razor @@ -1,4 +1,4 @@ -@namespace Oqtane.Shared +@namespace Oqtane.UI @inject IJSRuntime jsRuntime @DynamicComponent diff --git a/Oqtane.Client/_Imports.razor b/Oqtane.Client/_Imports.razor index cba766ad..22d11669 100644 --- a/Oqtane.Client/_Imports.razor +++ b/Oqtane.Client/_Imports.razor @@ -16,4 +16,5 @@ @using Oqtane.Services @using Oqtane.Shared @using Oqtane.Themes -@using Oqtane.Themes.Controls \ No newline at end of file +@using Oqtane.Themes.Controls +@using Oqtane.UI \ No newline at end of file diff --git a/Oqtane.Server/Controllers/PageController.cs b/Oqtane.Server/Controllers/PageController.cs index 09025b22..8d3bff3a 100644 --- a/Oqtane.Server/Controllers/PageController.cs +++ b/Oqtane.Server/Controllers/PageController.cs @@ -130,6 +130,7 @@ namespace Oqtane.Controllers page.IsPersonalizable = false; page.UserId = int.Parse(userid); page = _pages.AddPage(page); + _syncManager.AddSyncEvent("Site", page.SiteId); // copy modules List pagemodules = _pageModules.GetPageModules(page.SiteId).ToList(); @@ -173,6 +174,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && _userPermissions.IsAuthorized(User, "Page", Page.PageId, "Edit")) { Page = _pages.UpdatePage(Page); + _syncManager.AddSyncEvent("Site", Page.SiteId); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Updated {Page}", Page); } else @@ -202,6 +204,7 @@ namespace Oqtane.Controllers } order += 2; } + _syncManager.AddSyncEvent("Site", siteid); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Order Updated {SiteId} {PageId} {ParentId}", siteid, pageid, parentid); } else @@ -216,14 +219,16 @@ namespace Oqtane.Controllers [Authorize(Roles = Constants.RegisteredRole)] public void Delete(int id) { - if (_userPermissions.IsAuthorized(User, "Page", id, "Edit")) + Page page = _pages.GetPage(id); + if (_userPermissions.IsAuthorized(User, "Page", page.PageId, "Edit")) { - _pages.DeletePage(id); - _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Page Deleted {PageId}", id); + _pages.DeletePage(page.PageId); + _syncManager.AddSyncEvent("Site", page.SiteId); + _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Page Deleted {PageId}", page.PageId); } else { - _logger.Log(LogLevel.Error, this, LogFunction.Delete, "User Not Authorized To Delete Page {PageId}", id); + _logger.Log(LogLevel.Error, this, LogFunction.Delete, "User Not Authorized To Delete Page {PageId}", page.PageId); HttpContext.Response.StatusCode = 401; } } diff --git a/Oqtane.Server/Controllers/PageModuleController.cs b/Oqtane.Server/Controllers/PageModuleController.cs index c8e54a5d..1e2222cd 100644 --- a/Oqtane.Server/Controllers/PageModuleController.cs +++ b/Oqtane.Server/Controllers/PageModuleController.cs @@ -16,13 +16,15 @@ namespace Oqtane.Controllers private readonly IPageModuleRepository _pageModules; private readonly IModuleRepository _modules; private readonly IUserPermissions _userPermissions; + private readonly ISyncManager _syncManager; private readonly ILogManager _logger; - public PageModuleController(IPageModuleRepository pageModules, IModuleRepository modules, IUserPermissions userPermissions, ILogManager logger) + public PageModuleController(IPageModuleRepository pageModules, IModuleRepository modules, IUserPermissions userPermissions, ISyncManager syncManager, ILogManager logger) { _pageModules = pageModules; _modules = modules; _userPermissions = userPermissions; + _syncManager = syncManager; _logger = logger; } @@ -68,6 +70,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && _userPermissions.IsAuthorized(User, "Page", PageModule.PageId, "Edit")) { PageModule = _pageModules.AddPageModule(PageModule); + _syncManager.AddSyncEvent("Page", PageModule.PageId); _logger.Log(LogLevel.Information, this, LogFunction.Create, "Page Module Added {PageModule}", PageModule); } else @@ -87,6 +90,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid && _userPermissions.IsAuthorized(User, "Module", PageModule.ModuleId, "Edit")) { PageModule = _pageModules.UpdatePageModule(PageModule); + _syncManager.AddSyncEvent("Page", PageModule.PageId); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Module Updated {PageModule}", PageModule); } else @@ -116,6 +120,7 @@ namespace Oqtane.Controllers } order += 2; } + _syncManager.AddSyncEvent("Page", pageid); _logger.Log(LogLevel.Information, this, LogFunction.Update, "Page Module Order Updated {PageId} {Pane}", pageid, pane); } else @@ -134,6 +139,7 @@ namespace Oqtane.Controllers if (_userPermissions.IsAuthorized(User, "Page", pagemodule.PageId, "Edit")) { _pageModules.DeletePageModule(id); + _syncManager.AddSyncEvent("Page", pagemodule.PageId); _logger.Log(LogLevel.Information, this, LogFunction.Delete, "Page Module Deleted {PageModuleId}", id); } else diff --git a/Oqtane.Server/Controllers/SiteController.cs b/Oqtane.Server/Controllers/SiteController.cs index ca4992c2..361da726 100644 --- a/Oqtane.Server/Controllers/SiteController.cs +++ b/Oqtane.Server/Controllers/SiteController.cs @@ -17,13 +17,15 @@ namespace Oqtane.Controllers private readonly ISiteRepository _sites; private readonly ITenantResolver _tenants; private readonly IWebHostEnvironment _environment; + private readonly ISyncManager _syncManager; private readonly ILogManager _logger; - public SiteController(ISiteRepository sites, ITenantResolver tenants, IWebHostEnvironment environment, ILogManager logger) + public SiteController(ISiteRepository sites, ITenantResolver tenants, IWebHostEnvironment environment, ISyncManager syncManager, ILogManager logger) { _sites = sites; _tenants = tenants; _environment = environment; + _syncManager = syncManager; _logger = logger; } @@ -77,6 +79,7 @@ namespace Oqtane.Controllers if (ModelState.IsValid) { Site = _sites.UpdateSite(Site); + _syncManager.AddSyncEvent("Site", Site.SiteId); _logger.Log(Site.SiteId, LogLevel.Information, this, LogFunction.Update, "Site Updated {Site}", Site); } return Site; diff --git a/Oqtane.Server/Controllers/UserController.cs b/Oqtane.Server/Controllers/UserController.cs index e157062e..d75f2921 100644 --- a/Oqtane.Server/Controllers/UserController.cs +++ b/Oqtane.Server/Controllers/UserController.cs @@ -27,9 +27,10 @@ namespace Oqtane.Controllers private readonly ITenantResolver _tenants; private readonly INotificationRepository _notifications; private readonly IFolderRepository _folders; + private readonly ISyncManager _syncManager; private readonly ILogManager _logger; - public UserController(IUserRepository users, IRoleRepository roles, IUserRoleRepository userRoles, UserManager identityUserManager, SignInManager identitySignInManager, ITenantResolver tenants, INotificationRepository notifications, IFolderRepository folders, ILogManager logger) + public UserController(IUserRepository users, IRoleRepository roles, IUserRoleRepository userRoles, UserManager identityUserManager, SignInManager identitySignInManager, ITenantResolver tenants, INotificationRepository notifications, IFolderRepository folders, ISyncManager syncManager, ILogManager logger) { _users = users; _roles = roles; @@ -39,6 +40,7 @@ namespace Oqtane.Controllers _tenants = tenants; _folders = folders; _notifications = notifications; + _syncManager = syncManager; _logger = logger; } @@ -185,6 +187,7 @@ namespace Oqtane.Controllers } } User = _users.UpdateUser(User); + _syncManager.AddSyncEvent("User", User.UserId); User.Password = ""; // remove sensitive information _logger.Log(LogLevel.Information, this, LogFunction.Update, "User Updated {User}", User); } @@ -240,6 +243,7 @@ namespace Oqtane.Controllers user.LastLoginOn = DateTime.Now; user.LastIPAddress = HttpContext.Connection.RemoteIpAddress.ToString(); _users.UpdateUser(user); + _syncManager.AddSyncEvent("User", User.UserId); _logger.Log(LogLevel.Information, this, LogFunction.Security, "User Login Successful {Username}", User.Username); if (SetCookie) { @@ -268,6 +272,7 @@ namespace Oqtane.Controllers public async Task Logout([FromBody] User User) { await HttpContext.SignOutAsync(IdentityConstants.ApplicationScheme); + _syncManager.AddSyncEvent("User", User.UserId); _logger.Log(LogLevel.Information, this, LogFunction.Security, "User Logout {Username}", User.Username); } diff --git a/Oqtane.Shared/Shared/Constants.cs b/Oqtane.Shared/Shared/Constants.cs index 12305ca7..09f5f334 100644 --- a/Oqtane.Shared/Shared/Constants.cs +++ b/Oqtane.Shared/Shared/Constants.cs @@ -5,8 +5,8 @@ public const string PackageId = "Oqtane.Framework"; public const string Version = "0.0.1"; - public const string PageComponent = "Oqtane.Shared.ThemeBuilder, Oqtane.Client"; - public const string ContainerComponent = "Oqtane.Shared.ContainerBuilder, Oqtane.Client"; + public const string PageComponent = "Oqtane.UI.ThemeBuilder, Oqtane.Client"; + public const string ContainerComponent = "Oqtane.UI.ContainerBuilder, Oqtane.Client"; public const string DefaultTheme = "Oqtane.Themes.BlazorTheme.Default, Oqtane.Client"; public const string DefaultLayout = ""; diff --git a/Oqtane.Client/Shared/SiteState.cs b/Oqtane.Shared/Shared/SiteState.cs similarity index 55% rename from Oqtane.Client/Shared/SiteState.cs rename to Oqtane.Shared/Shared/SiteState.cs index 89de8abe..159d29e6 100644 --- a/Oqtane.Client/Shared/SiteState.cs +++ b/Oqtane.Shared/Shared/SiteState.cs @@ -2,7 +2,7 @@ namespace Oqtane.Shared { - // this class is used for passing state between Blazor components and Services + // this class is used for passing state between components and services, or controllers and repositories public class SiteState { public Alias Alias { get; set; } diff --git a/Oqtane.Shared/Shared/Utilities.cs b/Oqtane.Shared/Shared/Utilities.cs index 2bfff132..a4d10ce5 100644 --- a/Oqtane.Shared/Shared/Utilities.cs +++ b/Oqtane.Shared/Shared/Utilities.cs @@ -5,7 +5,7 @@ namespace Oqtane.Shared { public class Utilities { - public static string NavigateUrl(string alias, string path, string parameters, Reload reload) + public static string NavigateUrl(string alias, string path, string parameters) { string url = ""; if (alias != "") @@ -24,10 +24,6 @@ namespace Oqtane.Shared { url += "?" + parameters; } - if (reload != Reload.None) - { - url += ((string.IsNullOrEmpty(parameters)) ? "?" : "&") + "reload=" + ((int)reload).ToString(); - } if (!url.StartsWith("/")) { url = "/" + url; @@ -37,7 +33,7 @@ namespace Oqtane.Shared public static string EditUrl(string alias, string path, int moduleid, string action, string parameters) { - string url = NavigateUrl(alias, path, "", Reload.None); + string url = NavigateUrl(alias, path, ""); if (url == "/") url = ""; if (moduleid != -1) {