diff --git a/Oqtane.Client/Modules/Admin/Site/Index.razor b/Oqtane.Client/Modules/Admin/Site/Index.razor
index 525f45df..59e10be5 100644
--- a/Oqtane.Client/Modules/Admin/Site/Index.razor
+++ b/Oqtane.Client/Modules/Admin/Site/Index.razor
@@ -411,6 +411,18 @@
+ @if (_rendermode == RenderModes.Static)
+ {
+
@@ -537,6 +549,7 @@
private string _defaultalias;
private string _rendermode = RenderModes.Interactive;
+ private string _enhancednavigation = "True";
private string _runtime = Runtimes.Server;
private string _prerender = "True";
private string _hybrid = "False";
@@ -660,6 +673,7 @@
// hosting model
_rendermode = site.RenderMode;
+ _enhancednavigation = site.EnhancedNavigation.ToString();
_runtime = site.Runtime;
_prerender = site.Prerender.ToString();
_hybrid = site.Hybrid.ToString();
@@ -807,13 +821,11 @@
// hosting model
if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
{
- if (site.RenderMode != _rendermode || site.Runtime != _runtime || site.Prerender != bool.Parse(_prerender) || site.Hybrid != bool.Parse(_hybrid))
- {
- site.RenderMode = _rendermode;
- site.Runtime = _runtime;
- site.Prerender = bool.Parse(_prerender);
- site.Hybrid = bool.Parse(_hybrid);
- }
+ site.RenderMode = _rendermode;
+ site.EnhancedNavigation = bool.Parse(_enhancednavigation);
+ site.Runtime = _runtime;
+ site.Prerender = bool.Parse(_prerender);
+ site.Hybrid = bool.Parse(_hybrid);
}
site = await SiteService.UpdateSiteAsync(site);
diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor
index 333ed42f..0082e669 100644
--- a/Oqtane.Server/Components/App.razor
+++ b/Oqtane.Server/Components/App.razor
@@ -60,7 +60,7 @@
}
@((MarkupString)_headResources)
-
+
@if (string.IsNullOrEmpty(_message))
{
@if (_renderMode == RenderModes.Static)
@@ -97,6 +97,7 @@
private string _renderMode = RenderModes.Interactive;
private string _runtime = Runtimes.Server;
private bool _prerender = true;
+ private bool _enhancedNavigation = true;
private string _fingerprint = "";
private int _visitorId = -1;
private string _antiForgeryToken = "";
@@ -141,6 +142,7 @@
_renderMode = site.RenderMode;
_runtime = site.Runtime;
_prerender = site.Prerender;
+ _enhancedNavigation = site.EnhancedNavigation;
_fingerprint = site.Fingerprint;
var cookieConsentSettings = SettingService.GetSetting(site.Settings, "CookieConsent", string.Empty);
diff --git a/Oqtane.Server/Migrations/Tenant/10000101_AddSiteEnhancedNavigation.cs b/Oqtane.Server/Migrations/Tenant/10000101_AddSiteEnhancedNavigation.cs
new file mode 100644
index 00000000..b119c2ee
--- /dev/null
+++ b/Oqtane.Server/Migrations/Tenant/10000101_AddSiteEnhancedNavigation.cs
@@ -0,0 +1,29 @@
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Oqtane.Databases.Interfaces;
+using Oqtane.Migrations.EntityBuilders;
+using Oqtane.Repository;
+
+namespace Oqtane.Migrations.Tenant
+{
+ [DbContext(typeof(TenantDBContext))]
+ [Migration("Tenant.10.00.01.01")]
+ public class AddSiteEnhancedNavigation : MultiDatabaseMigration
+ {
+ public AddSiteEnhancedNavigation(IDatabase database) : base(database)
+ {
+ }
+
+ protected override void Up(MigrationBuilder migrationBuilder)
+ {
+ var siteEntityBuilder = new SiteEntityBuilder(migrationBuilder, ActiveDatabase);
+ siteEntityBuilder.AddBooleanColumn("EnhancedNavigation", true);
+ siteEntityBuilder.UpdateData("EnhancedNavigation", true);
+ }
+
+ protected override void Down(MigrationBuilder migrationBuilder)
+ {
+ // not implemented
+ }
+ }
+}
diff --git a/Oqtane.Shared/Models/Site.cs b/Oqtane.Shared/Models/Site.cs
index e674be2e..a00fa5b1 100644
--- a/Oqtane.Shared/Models/Site.cs
+++ b/Oqtane.Shared/Models/Site.cs
@@ -115,6 +115,11 @@ namespace Oqtane.Models
///
public bool Hybrid { get; set; }
+ ///
+ /// Indicates if enhanced navigation should be used with static rendering
+ ///
+ public bool EnhancedNavigation { get; set; }
+
///
/// Keeps track of site configuration changes and is used by the ISiteMigration interface
///
@@ -222,6 +227,7 @@ namespace Oqtane.Models
Runtime = Runtime,
Prerender = Prerender,
Hybrid = Hybrid,
+ EnhancedNavigation = EnhancedNavigation,
Version = Version,
HomePageId = HomePageId,
HeadContent = HeadContent,