From 2f5d1cebb032e58c619f90679bbcf2bb5580cb71 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Wed, 7 Jun 2023 10:50:25 -0400 Subject: [PATCH] fix to allow Theme Settings to be supported in Page Management --- Oqtane.Client/Modules/Admin/Pages/Edit.razor | 83 +++++++++---------- .../OqtaneTheme/Themes/ThemeSettings.razor | 35 ++++---- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Pages/Edit.razor b/Oqtane.Client/Modules/Admin/Pages/Edit.razor index 11a065c8..1933bfe6 100644 --- a/Oqtane.Client/Modules/Admin/Pages/Edit.razor +++ b/Oqtane.Client/Modules/Admin/Pages/Edit.razor @@ -193,39 +193,35 @@ } - @if (_page.UserId == null) - { - - @if (_permissions != null) - { -
-
- -
+ + @if (_permissions != null) + { +
+
+
- } - - - @if (_pageModules != null) - { - -
-   -   - @Localizer["ModuleTitle"] - @Localizer["ModuleDefinition"] -
- - - - @context.Title - @context.ModuleDefinition?.Name - -
- } -
- - } +
+ } +
+ + @if (_pageModules != null) + { + +
+   +   + @Localizer["ModuleTitle"] + @Localizer["ModuleDefinition"] +
+ + + + @context.Title + @context.ModuleDefinition?.Name + +
+ } +
@if (_themeSettingsType != null) { @@ -499,23 +495,20 @@ private void ThemeSettings() { _themeSettingsType = null; - if (!string.IsNullOrEmpty(PageState.ReturnUrl)) // can only be displayed if invoked from Control Panel + var theme = PageState.Site.Themes.FirstOrDefault(item => item.Themes.Any(themecontrol => themecontrol.TypeName.Equals(_themetype))); + if (theme != null && !string.IsNullOrEmpty(theme.ThemeSettingsType)) { - var theme = PageState.Site.Themes.FirstOrDefault(item => item.Themes.Any(themecontrol => themecontrol.TypeName.Equals(_themetype))); - if (theme != null && !string.IsNullOrEmpty(theme.ThemeSettingsType)) + _themeSettingsType = Type.GetType(theme.ThemeSettingsType); + if (_themeSettingsType != null) { - _themeSettingsType = Type.GetType(theme.ThemeSettingsType); - if (_themeSettingsType != null) + ThemeSettingsComponent = builder => { - ThemeSettingsComponent = builder => - { - builder.OpenComponent(0, _themeSettingsType); - builder.AddComponentReferenceCapture(1, inst => { _themeSettings = Convert.ChangeType(inst, _themeSettingsType); }); - builder.CloseComponent(); - }; - } - _refresh = true; + builder.OpenComponent(0, _themeSettingsType); + builder.AddComponentReferenceCapture(1, inst => { _themeSettings = Convert.ChangeType(inst, _themeSettingsType); }); + builder.CloseComponent(); + }; } + _refresh = true; } } diff --git a/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor b/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor index 25f03f45..ca6c5d9c 100644 --- a/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor +++ b/Oqtane.Client/Themes/OqtaneTheme/Themes/ThemeSettings.razor @@ -52,17 +52,23 @@
@code { - private string resourceType = "Oqtane.Themes.OqtaneTheme.ThemeSettings, Oqtane.Client"; // for localization - private string _scope = "page"; - private string _login = "-"; - private string _register = "-"; - private string _footer = "-"; + private int pageId = -1; + private string resourceType = "Oqtane.Themes.OqtaneTheme.ThemeSettings, Oqtane.Client"; // for localization + private string _scope = "page"; + private string _login = "-"; + private string _register = "-"; + private string _footer = "-"; - protected override async Task OnInitializedAsync() - { - try - { - await LoadSettings(); + protected override async Task OnInitializedAsync() + { + if (PageState.QueryString.ContainsKey("id")) + { + pageId = int.Parse(PageState.QueryString["id"]); + } + + try + { + await LoadSettings(); } catch (Exception ex) { @@ -82,10 +88,11 @@ } else { - var settings = SettingService.MergeSettings(PageState.Site.Settings, PageState.Page.Settings); + var settings = await SettingService.GetPageSettingsAsync(pageId); + settings = SettingService.MergeSettings(PageState.Site.Settings, settings); _login = SettingService.GetSetting(settings, GetType().Namespace + ":Login", "-"); _register = SettingService.GetSetting(settings, GetType().Namespace + ":Register", "-"); - _footer = SettingService.GetSetting(settings, GetType().Namespace + ":Footer", "-"); + _footer = SettingService.GetSetting(settings, GetType().Namespace + ":Footer", "-"); } await Task.Yield(); } @@ -128,7 +135,7 @@ } else { - var settings = await SettingService.GetPageSettingsAsync(PageState.Page.PageId); + var settings = await SettingService.GetPageSettingsAsync(pageId); if (_login != "-") { settings = SettingService.SetSetting(settings, GetType().Namespace + ":Login", _login); @@ -141,7 +148,7 @@ { settings = SettingService.SetSetting(settings, GetType().Namespace + ":Footer", _footer); } - await SettingService.UpdatePageSettingsAsync(settings, PageState.Page.PageId); + await SettingService.UpdatePageSettingsAsync(settings, pageId); } } catch (Exception ex)