Merge pull request #3715 from sbwalker/dev
split RenderMode and Runtime configuration
This commit is contained in:
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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"));
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user