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,9 +98,12 @@
<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">
<select id="defaultContainer" class="form-select" @bind="@_containertype" required>
@foreach (var container in _containers)
@if (_containers != null)
{
<option value="@container.TypeName">@container.Name</option>
@foreach (var container in _containers)
{
<option value="@container.TypeName">@container.Name</option>
}
}
</select>
</div>
@ -110,9 +113,12 @@
<div class="col-sm-9">
<select id="defaultAdminContainer" class="form-select" @bind="@_admincontainertype" required>
<option value="@Constants.DefaultAdminContainer">&lt;@Localizer["DefaultAdminContainer"]&gt;</option>
@foreach (var container in _containers)
@if (_containers != null)
{
<option value="@container.TypeName">@container.Name</option>
@foreach (var container in _containers)
{
<option value="@container.TypeName">@container.Name</option>
}
}
</select>
</div>

View File

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

View File

@ -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);
}
}
}