Merge branch 'oqtane:dev' into dev
This commit is contained in:
@@ -411,6 +411,18 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@if (_rendermode == RenderModes.Static)
|
||||||
|
{
|
||||||
|
<div class="row mb-1 align-items-center">
|
||||||
|
<Label Class="col-sm-3" For="enhancednavigation" HelpText="Indicates if enhanced navigation should be used with static rendering" ResourceKey="EnhancedNavigation">Enhanced Navigation: </Label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<select id="enhancednavigation" class="form-select" @bind="@_enhancednavigation" required>
|
||||||
|
<option value="True">@SharedLocalizer["Yes"]</option>
|
||||||
|
<option value="False">@SharedLocalizer["No"]</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
}
|
||||||
<div class="row mb-1 align-items-center">
|
<div class="row mb-1 align-items-center">
|
||||||
<Label Class="col-sm-3" For="runtime" HelpText="The render mode for UI components which require interactivity" ResourceKey="Runtime">Interactivity: </Label>
|
<Label Class="col-sm-3" For="runtime" HelpText="The render mode for UI components which require interactivity" ResourceKey="Runtime">Interactivity: </Label>
|
||||||
<div class="col-sm-9">
|
<div class="col-sm-9">
|
||||||
@@ -537,6 +549,7 @@
|
|||||||
private string _defaultalias;
|
private string _defaultalias;
|
||||||
|
|
||||||
private string _rendermode = RenderModes.Interactive;
|
private string _rendermode = RenderModes.Interactive;
|
||||||
|
private string _enhancednavigation = "True";
|
||||||
private string _runtime = Runtimes.Server;
|
private string _runtime = Runtimes.Server;
|
||||||
private string _prerender = "True";
|
private string _prerender = "True";
|
||||||
private string _hybrid = "False";
|
private string _hybrid = "False";
|
||||||
@@ -660,6 +673,7 @@
|
|||||||
|
|
||||||
// hosting model
|
// hosting model
|
||||||
_rendermode = site.RenderMode;
|
_rendermode = site.RenderMode;
|
||||||
|
_enhancednavigation = site.EnhancedNavigation.ToString();
|
||||||
_runtime = site.Runtime;
|
_runtime = site.Runtime;
|
||||||
_prerender = site.Prerender.ToString();
|
_prerender = site.Prerender.ToString();
|
||||||
_hybrid = site.Hybrid.ToString();
|
_hybrid = site.Hybrid.ToString();
|
||||||
@@ -807,13 +821,11 @@
|
|||||||
// hosting model
|
// hosting model
|
||||||
if (UserSecurity.IsAuthorized(PageState.User, RoleNames.Host))
|
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.EnhancedNavigation = bool.Parse(_enhancednavigation);
|
||||||
site.RenderMode = _rendermode;
|
site.Runtime = _runtime;
|
||||||
site.Runtime = _runtime;
|
site.Prerender = bool.Parse(_prerender);
|
||||||
site.Prerender = bool.Parse(_prerender);
|
site.Hybrid = bool.Parse(_hybrid);
|
||||||
site.Hybrid = bool.Parse(_hybrid);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
site = await SiteService.UpdateSiteAsync(site);
|
site = await SiteService.UpdateSiteAsync(site);
|
||||||
|
|||||||
@@ -460,6 +460,11 @@ namespace Oqtane.Modules
|
|||||||
|
|
||||||
public string ReplaceTokens(string content, object obj)
|
public string ReplaceTokens(string content, object obj)
|
||||||
{
|
{
|
||||||
|
// check for null or empty content
|
||||||
|
if (string.IsNullOrEmpty(content))
|
||||||
|
{
|
||||||
|
return content;
|
||||||
|
}
|
||||||
// Using StringBuilder avoids the performance penalty of repeated string allocations
|
// Using StringBuilder avoids the performance penalty of repeated string allocations
|
||||||
// that occur with string.Replace or string concatenation inside loops.
|
// that occur with string.Replace or string concatenation inside loops.
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
|
|||||||
@@ -31,7 +31,7 @@
|
|||||||
<dependency id="MySql.Data" version="9.5.0" exclude="Build,Analyzers" />
|
<dependency id="MySql.Data" version="9.5.0" exclude="Build,Analyzers" />
|
||||||
<dependency id="Pomelo.EntityFrameworkCore.MySql" version="9.0.0" exclude="Build,Analyzers" />
|
<dependency id="Pomelo.EntityFrameworkCore.MySql" version="9.0.0" exclude="Build,Analyzers" />
|
||||||
<dependency id="EFCore.NamingConventions" version="10.0.0-rc.2" exclude="Build,Analyzers" />
|
<dependency id="EFCore.NamingConventions" version="10.0.0-rc.2" exclude="Build,Analyzers" />
|
||||||
<dependency id="Npgsql.EntityFrameworkCore.PostgreSQL" version="10.0.0-rc.2" exclude="Build,Analyzers" />
|
<dependency id="Npgsql.EntityFrameworkCore.PostgreSQL" version="10.0.0" exclude="Build,Analyzers" />
|
||||||
<dependency id="Microsoft.EntityFrameworkCore.Sqlite" version="10.0.0" exclude="Build,Analyzers" />
|
<dependency id="Microsoft.EntityFrameworkCore.Sqlite" version="10.0.0" exclude="Build,Analyzers" />
|
||||||
<dependency id="Microsoft.Data.Sqlite.Core" version="10.0.0" exclude="Build,Analyzers" />
|
<dependency id="Microsoft.Data.Sqlite.Core" version="10.0.0" exclude="Build,Analyzers" />
|
||||||
<dependency id="Microsoft.EntityFrameworkCore.SqlServer" version="10.0.0" exclude="Build,Analyzers" />
|
<dependency id="Microsoft.EntityFrameworkCore.SqlServer" version="10.0.0" exclude="Build,Analyzers" />
|
||||||
|
|||||||
@@ -60,7 +60,7 @@
|
|||||||
}
|
}
|
||||||
@((MarkupString)_headResources)
|
@((MarkupString)_headResources)
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body data-enhance-nav="@_enhancedNavigation.ToString().ToLower()">
|
||||||
@if (string.IsNullOrEmpty(_message))
|
@if (string.IsNullOrEmpty(_message))
|
||||||
{
|
{
|
||||||
@if (_renderMode == RenderModes.Static)
|
@if (_renderMode == RenderModes.Static)
|
||||||
@@ -97,6 +97,7 @@
|
|||||||
private string _renderMode = RenderModes.Interactive;
|
private string _renderMode = RenderModes.Interactive;
|
||||||
private string _runtime = Runtimes.Server;
|
private string _runtime = Runtimes.Server;
|
||||||
private bool _prerender = true;
|
private bool _prerender = true;
|
||||||
|
private bool _enhancedNavigation = true;
|
||||||
private string _fingerprint = "";
|
private string _fingerprint = "";
|
||||||
private int _visitorId = -1;
|
private int _visitorId = -1;
|
||||||
private string _antiForgeryToken = "";
|
private string _antiForgeryToken = "";
|
||||||
@@ -141,6 +142,7 @@
|
|||||||
_renderMode = site.RenderMode;
|
_renderMode = site.RenderMode;
|
||||||
_runtime = site.Runtime;
|
_runtime = site.Runtime;
|
||||||
_prerender = site.Prerender;
|
_prerender = site.Prerender;
|
||||||
|
_enhancedNavigation = site.EnhancedNavigation;
|
||||||
_fingerprint = site.Fingerprint;
|
_fingerprint = site.Fingerprint;
|
||||||
|
|
||||||
var cookieConsentSettings = SettingService.GetSetting(site.Settings, "CookieConsent", string.Empty);
|
var cookieConsentSettings = SettingService.GetSetting(site.Settings, "CookieConsent", string.Empty);
|
||||||
|
|||||||
@@ -265,7 +265,19 @@ namespace Oqtane.Controllers
|
|||||||
_syncManager.AddSyncEvent(_alias, EntityNames.Site, page.SiteId, SyncEventActions.Refresh);
|
_syncManager.AddSyncEvent(_alias, EntityNames.Site, page.SiteId, SyncEventActions.Refresh);
|
||||||
|
|
||||||
// set user personalized page path
|
// set user personalized page path
|
||||||
_settings.AddSetting(new Setting { EntityName = EntityNames.User, EntityId = page.UserId.Value, SettingName = $"PersonalizedPagePath:{page.SiteId}:{parent.PageId}", SettingValue = path, IsPrivate = false });
|
var settingName = $"PersonalizedPagePath:{page.SiteId}:{parent.PageId}";
|
||||||
|
var pathSetting = _settings.GetSetting(EntityNames.User, page.UserId.Value, settingName);
|
||||||
|
if(pathSetting == null)
|
||||||
|
{
|
||||||
|
pathSetting = new Setting { EntityName = EntityNames.User, EntityId = page.UserId.Value, SettingName = settingName, SettingValue = path, IsPrivate = false };
|
||||||
|
_settings.AddSetting(pathSetting);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pathSetting.SettingValue = path;
|
||||||
|
_settings.UpdateSetting(pathSetting);
|
||||||
|
}
|
||||||
|
|
||||||
_syncManager.AddSyncEvent(_alias, EntityNames.User, user.UserId, SyncEventActions.Update);
|
_syncManager.AddSyncEvent(_alias, EntityNames.User, user.UserId, SyncEventActions.Update);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ namespace Oqtane.Managers
|
|||||||
await _identityUserManager.UpdateAsync(identityuser); // security stamp not updated
|
await _identityUserManager.UpdateAsync(identityuser); // security stamp not updated
|
||||||
}
|
}
|
||||||
|
|
||||||
if (bool.Parse(_settings.GetSettingValue(EntityNames.Site, alias.SiteId, "LoginOptions:RequireConfirmedEmail", "true")))
|
if (bool.Parse(_settings.GetSettingValue(EntityNames.Site, alias.SiteId, "LoginOptions:RequireConfirmedEmail", "true")) && !user.IsDeleted)
|
||||||
{
|
{
|
||||||
if (user.EmailConfirmed)
|
if (user.EmailConfirmed)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0" />
|
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="9.0.0" />
|
||||||
<!-- PostgreSQL Database Provider Dependencies -->
|
<!-- PostgreSQL Database Provider Dependencies -->
|
||||||
<PackageReference Include="EFCore.NamingConventions" Version="10.0.0-rc.2" />
|
<PackageReference Include="EFCore.NamingConventions" Version="10.0.0-rc.2" />
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0-rc.2" />
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
|
||||||
<!-- SQLite Database Provider Dependencies -->
|
<!-- SQLite Database Provider Dependencies -->
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.0" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.0" />
|
||||||
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="10.0.0" />
|
<PackageReference Include="Microsoft.Data.Sqlite.Core" Version="10.0.0" />
|
||||||
|
|||||||
@@ -115,6 +115,11 @@ namespace Oqtane.Models
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public bool Hybrid { get; set; }
|
public bool Hybrid { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Indicates if enhanced navigation should be used with static rendering
|
||||||
|
/// </summary>
|
||||||
|
public bool EnhancedNavigation { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Keeps track of site configuration changes and is used by the ISiteMigration interface
|
/// Keeps track of site configuration changes and is used by the ISiteMigration interface
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -222,6 +227,7 @@ namespace Oqtane.Models
|
|||||||
Runtime = Runtime,
|
Runtime = Runtime,
|
||||||
Prerender = Prerender,
|
Prerender = Prerender,
|
||||||
Hybrid = Hybrid,
|
Hybrid = Hybrid,
|
||||||
|
EnhancedNavigation = EnhancedNavigation,
|
||||||
Version = Version,
|
Version = Version,
|
||||||
HomePageId = HomePageId,
|
HomePageId = HomePageId,
|
||||||
HeadContent = HeadContent,
|
HeadContent = HeadContent,
|
||||||
|
|||||||
Reference in New Issue
Block a user