-
+
+ @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)