Merge pull request #3918 from sbwalker/dev

fix theme fallback to use Oqtane themeinfo resources
This commit is contained in:
Shaun Walker 2024-02-28 15:53:45 -05:00 committed by GitHub
commit 19bd54f425
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 20 additions and 10 deletions

View File

@ -98,10 +98,13 @@
<Label Class="col-sm-3" For="defaultContainer" HelpText="Select the default container for the site" ResourceKey="DefaultContainer">Default Container: </Label> <Label Class="col-sm-3" For="defaultContainer" HelpText="Select the default container for the site" ResourceKey="DefaultContainer">Default Container: </Label>
<div class="col-sm-9"> <div class="col-sm-9">
<select id="defaultContainer" class="form-select" @bind="@_containertype" required> <select id="defaultContainer" class="form-select" @bind="@_containertype" required>
@if (_containers != null)
{
@foreach (var container in _containers) @foreach (var container in _containers)
{ {
<option value="@container.TypeName">@container.Name</option> <option value="@container.TypeName">@container.Name</option>
} }
}
</select> </select>
</div> </div>
</div> </div>
@ -110,10 +113,13 @@
<div class="col-sm-9"> <div class="col-sm-9">
<select id="defaultAdminContainer" class="form-select" @bind="@_admincontainertype" required> <select id="defaultAdminContainer" class="form-select" @bind="@_admincontainertype" required>
<option value="@Constants.DefaultAdminContainer">&lt;@Localizer["DefaultAdminContainer"]&gt;</option> <option value="@Constants.DefaultAdminContainer">&lt;@Localizer["DefaultAdminContainer"]&gt;</option>
@if (_containers != null)
{
@foreach (var container in _containers) @foreach (var container in _containers)
{ {
<option value="@container.TypeName">@container.Name</option> <option value="@container.TypeName">@container.Name</option>
} }
}
</select> </select>
</div> </div>
</div> </div>

View File

@ -364,17 +364,15 @@
page.ThemeType = site.DefaultThemeType; page.ThemeType = site.DefaultThemeType;
} }
var theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == page.ThemeType)); var theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == page.ThemeType));
Type themetype = Type.GetType(page.ThemeType); if (theme == null)
if (themetype == null || theme == null)
{ {
// fallback to default Oqtane theme // fallback to default Oqtane theme
page.ThemeType = Constants.DefaultTheme; page.ThemeType = Constants.DefaultTheme;
themetype = Type.GetType(Constants.DefaultTheme);
theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == page.ThemeType)); theme = site.Themes.FirstOrDefault(item => item.Themes.Any(item => item.TypeName == page.ThemeType));
} }
Type themetype = Type.GetType(page.ThemeType);
string panes = ""; string panes = "";
if (themetype != null && theme != null) if (themetype != null)
{ {
// get resources for theme (ITheme) // get resources for theme (ITheme)
page.Resources = ManagePageResources(page.Resources, theme.Resources, ResourceLevel.Page, alias, "Themes", Utilities.GetTypeName(theme.ThemeName)); page.Resources = ManagePageResources(page.Resources, theme.Resources, ResourceLevel.Page, alias, "Themes", Utilities.GetTypeName(theme.ThemeName));

View File

@ -556,6 +556,12 @@
{ {
resources = AddResources(resources, theme.Resources, ResourceLevel.Page, alias, "Themes", Utilities.GetTypeName(theme.ThemeName)); 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); var type = Type.GetType(themeType);
if (type != null) if (type != null)
{ {
@ -594,7 +600,7 @@
var obj = Activator.CreateInstance(moduletype) as IModuleControl; var obj = Activator.CreateInstance(moduletype) as IModuleControl;
if (obj != null) 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);
} }
} }
} }