From 76680777ffa659ec4785800a991b62108d2fd435 Mon Sep 17 00:00:00 2001 From: sbwalker Date: Wed, 28 Feb 2024 15:53:31 -0500 Subject: [PATCH] fix theme fallback to use Oqtane themeinfo resources --- Oqtane.Client/Modules/Admin/Site/Index.razor | 14 ++++++++++---- Oqtane.Client/UI/SiteRouter.razor | 8 +++----- Oqtane.Server/Components/App.razor | 8 +++++++- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor index 801a8de5..56df0b3e 100644 --- a/Oqtane.Client/Modules/Admin/Site/Index.razor +++ b/Oqtane.Client/Modules/Admin/Site/Index.razor @@ -98,9 +98,12 @@
@@ -110,9 +113,12 @@
diff --git a/Oqtane.Client/UI/SiteRouter.razor b/Oqtane.Client/UI/SiteRouter.razor index fcff50b3..e37aac51 100644 --- a/Oqtane.Client/UI/SiteRouter.razor +++ b/Oqtane.Client/UI/SiteRouter.razor @@ -364,17 +364,15 @@ page.ThemeType = site.DefaultThemeType; } var theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == page.ThemeType)); - Type themetype = Type.GetType(page.ThemeType); - if (themetype == null || theme == null) + if (theme == null) { // fallback to default Oqtane theme page.ThemeType = Constants.DefaultTheme; - themetype = Type.GetType(Constants.DefaultTheme); theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == page.ThemeType)); } - + Type themetype = Type.GetType(page.ThemeType); string panes = ""; - if (themetype != null && theme != null) + if (themetype != null) { // get resources for theme (ITheme) page.Resources = ManagePageResources(page.Resources, theme.Resources, ResourceLevel.Page, alias, "Themes", Utilities.GetTypeName(theme.ThemeName)); diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor index 9769342b..3301cc3b 100644 --- a/Oqtane.Server/Components/App.razor +++ b/Oqtane.Server/Components/App.razor @@ -556,6 +556,12 @@ { resources = AddResources(resources, theme.Resources, ResourceLevel.Page, alias, "Themes", Utilities.GetTypeName(theme.ThemeName)); } + else + { + // fallback to default Oqtane theme + theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == Constants.DefaultTheme)); + resources = AddResources(resources, theme.Resources, ResourceLevel.Page, alias, "Themes", Utilities.GetTypeName(theme.ThemeName)); + } var type = Type.GetType(themeType); if (type != null) { @@ -594,7 +600,7 @@ var obj = Activator.CreateInstance(moduletype) as IModuleControl; if (obj != null) { - resources = AddResources(resources, obj.Resources, ResourceLevel.Module, alias, "Modules", type.Namespace); + resources = AddResources(resources, obj.Resources, ResourceLevel.Module, alias, "Modules", moduletype.Namespace); } } }