Merge pull request #3715 from sbwalker/dev

split RenderMode and Runtime configuration
This commit is contained in:
Shaun Walker
2024-02-01 09:08:57 -05:00
committed by GitHub
22 changed files with 251 additions and 169 deletions

View File

@ -47,26 +47,26 @@
@((MarkupString)_styleSheets)
<link id="app-stylesheet-page" />
<link id="app-stylesheet-module" />
@if (_renderMode == RenderModes.StaticServer)
@if (_renderMode == RenderModes.Static)
{
<Head />
}
else
{
<Head @rendermode="@RenderMode.GetInteractiveRenderMode((_renderMode), _prerender)" />
<Head @rendermode="@RenderMode.GetInteractiveRenderMode((_runtime), _prerender)" />
}
@((MarkupString)_headResources)
</head>
<body>
@if (string.IsNullOrEmpty(_message))
{
@if (_renderMode == RenderModes.StaticServer)
@if (_renderMode == RenderModes.Static)
{
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="Web" RenderMode="@_renderMode" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" />
<Routes AntiForgeryToken="@_antiForgeryToken" RenderMode="@_renderMode" Runtime="@_runtime" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" />
}
else
{
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="Web" RenderMode="@_renderMode" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" @rendermode="@RenderMode.GetInteractiveRenderMode((_renderMode), _prerender)" />
<Routes AntiForgeryToken="@_antiForgeryToken" RenderMode="@_renderMode" Runtime="@_runtime" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" @rendermode="@RenderMode.GetInteractiveRenderMode((_runtime), _prerender)" />
}
<script src="js/interop.js"></script>
@ -90,7 +90,8 @@
</html>
@code {
private string _renderMode = RenderModes.InteractiveServer;
private string _renderMode = RenderModes.Interactive;
private string _runtime = Runtimes.Server;
private bool _prerender = true;
private int _visitorId = -1;
private string _remoteIPAddress = "";
@ -127,9 +128,10 @@
}
var site = SiteRepository.GetSite(alias.SiteId);
if (site != null && (!site.IsDeleted || url.Contains("admin/site")))
if (site != null && (!site.IsDeleted || url.Contains("admin/site")) && site.RenderMode != RenderModes.Headless)
{
_renderMode = site.RenderMode;
_runtime = site.Runtime;
_prerender = site.Prerender;
Route route = new Route(url, alias.Path);
@ -179,7 +181,7 @@
ManageStyleSheets(resources, alias, theme.ThemeName);
// scripts
if (_renderMode == RenderModes.InteractiveServer)
if (_renderMode == RenderModes.Interactive && _runtime == Runtimes.Server)
{
_reconnectScript = CreateReconnectScript();
}

View File

@ -119,7 +119,7 @@ namespace Oqtane.Controllers
var assemblyList = new List<ClientAssembly>();
var site = _sites.GetSite(alias.SiteId);
if (site != null && (site.RenderMode == "InteractiveWebAssembly" || site.Hybrid))
if (site != null && (site.Runtime == Runtimes.WebAssembly || site.Hybrid))
{
var binFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
@ -201,7 +201,7 @@ namespace Oqtane.Controllers
private byte[] GetZIP(string list, Alias alias)
{
var site = _sites.GetSite(alias.SiteId);
if (site != null && (site.RenderMode == "InteractiveWebAssembly" || site.Hybrid))
if (site != null && (site.Runtime == Runtimes.WebAssembly || site.Hybrid))
{
var binFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

View File

@ -13,8 +13,6 @@ using System.Globalization;
using Microsoft.Extensions.Caching.Memory;
using Oqtane.Extensions;
using System;
using Oqtane.UI;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
namespace Oqtane.Controllers
{
@ -212,7 +210,7 @@ namespace Oqtane.Controllers
site = _sites.UpdateSite(site);
_syncManager.AddSyncEvent(_alias.TenantId, EntityNames.Site, site.SiteId, SyncEventActions.Update);
string action = SyncEventActions.Refresh;
if (current.RenderMode != site.RenderMode)
if (current.RenderMode != site.RenderMode || current.Runtime != site.Runtime)
{
action = SyncEventActions.Reload;
}

View File

@ -46,7 +46,8 @@ namespace Oqtane.Controllers
break;
case "configuration":
systeminfo.Add("InstallationId", _configManager.GetInstallationId());
systeminfo.Add("RenderMode", _configManager.GetSetting("RenderMode", RenderModes.InteractiveServer));
systeminfo.Add("RenderMode", _configManager.GetSetting("RenderMode", RenderModes.Interactive));
systeminfo.Add("Runtime", _configManager.GetSetting("Runtime", Runtimes.Server));
systeminfo.Add("DetailedErrors", _configManager.GetSetting("DetailedErrors", "false"));
systeminfo.Add("Logging:LogLevel:Default", _configManager.GetSetting("Logging:LogLevel:Default", "Information"));
systeminfo.Add("Logging:LogLevel:Notify", _configManager.GetSetting("Logging:LogLevel:Notify", "Error"));

View File

@ -557,6 +557,7 @@ namespace Oqtane.Infrastructure
AdminContainerType = (!string.IsNullOrEmpty(install.DefaultAdminContainer)) ? install.DefaultAdminContainer : Constants.DefaultAdminContainer,
SiteTemplateType = install.SiteTemplate,
RenderMode = (!string.IsNullOrEmpty(install.RenderMode)) ? install.RenderMode : _configManager.GetSection("RenderMode").Value,
Runtime = (!string.IsNullOrEmpty(install.Runtime)) ? install.Runtime : _configManager.GetSection("Runtime").Value,
Prerender = true,
Hybrid = false
};

View File

@ -63,6 +63,9 @@ namespace Oqtane.Infrastructure
case "3.3.0":
Upgrade_3_3_0(tenant, scope);
break;
case "5.1.0":
Upgrade_5_1_0(tenant, scope);
break;
}
}
}
@ -111,7 +114,11 @@ namespace Oqtane.Infrastructure
_configManager.RemoveSetting("Localization:SupportedCultures", true);
if (_configManager.GetSetting("RenderMode", "") == "")
{
_configManager.AddOrUpdateSetting("RenderMode", "ServerPrerendered", true);
_configManager.AddOrUpdateSetting("RenderMode", RenderModes.Interactive, true);
}
if (_configManager.GetSetting("Runtime", "") == "")
{
_configManager.AddOrUpdateSetting("Runtime", Runtimes.Server, true);
}
}
}
@ -349,5 +356,17 @@ namespace Oqtane.Infrastructure
Debug.WriteLine($"Oqtane Error: Error In 3.3.0 Upgrade Logic - {ex}");
}
}
private void Upgrade_5_1_0(Tenant tenant, IServiceScope scope)
{
if (tenant.Name == TenantNames.Master)
{
var rendermode = _configManager.GetSetting("RenderMode", "");
if (rendermode.Contains("Prerendered"))
{
_configManager.AddOrUpdateSetting("RenderMode", rendermode.Replace("Prerendered", ""), true);
}
}
}
}
}

View File

@ -19,15 +19,13 @@ namespace Oqtane.Migrations.Tenant
{
var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
siteEntityBuilder.UpdateColumn("RenderMode", $"'{RenderModes.InteractiveServer}'");
siteEntityBuilder.UpdateColumn("RenderMode", $"'{RenderModes.Interactive}'");
siteEntityBuilder.AddBooleanColumn("Prerender", true);
siteEntityBuilder.UpdateColumn("Prerender", "1", "bool", "");
siteEntityBuilder.AddBooleanColumn("Hybrid", true);
siteEntityBuilder.UpdateColumn("Hybrid", "0", "bool", "");
siteEntityBuilder.DropColumn("Runtime");
siteEntityBuilder.DropColumn("HybridEnabled");
}