introducing Site Groups

This commit is contained in:
sbwalker
2026-01-27 16:51:30 -05:00
parent 6006e6f63c
commit 3be2b9c720
51 changed files with 2558 additions and 352 deletions

View File

@@ -41,6 +41,12 @@ namespace Oqtane.Models
/// </summary>
public string Version { get; set; }
[NotMapped]
/// <summary>
/// The primary alias name for the site with this language
/// </summary>
public string AliasName { get; set; }
public Language Clone()
{
return new Language
@@ -50,7 +56,8 @@ namespace Oqtane.Models
Name = Name,
Code = Code,
IsDefault = IsDefault,
Version = Version
Version = Version,
AliasName = AliasName
};
}
}

View File

@@ -26,6 +26,11 @@ namespace Oqtane.Models
/// </summary>
public string TimeZoneId { get; set; }
/// <summary>
/// The default culture for the site (ie. en-US)
/// </summary>
public string CultureCode { get; set; }
/// <summary>
/// Reference to a <see cref="File"/> which has the Logo for this site.
/// Should be an image.
@@ -120,11 +125,6 @@ namespace Oqtane.Models
/// </summary>
public string Version { get; set; }
/// <summary>
/// The home page of the site - the "/" path will be used by default if no home page is specified
/// </summary>
public int? HomePageId { get; set; }
/// <summary>
/// Content to be included in the head of the page
/// </summary>
@@ -217,6 +217,7 @@ namespace Oqtane.Models
SiteId = SiteId,
Name = Name,
TimeZoneId = TimeZoneId,
CultureCode = CultureCode,
LogoFileId = LogoFileId,
FaviconFileId = FaviconFileId,
DefaultThemeType = DefaultThemeType,
@@ -235,7 +236,6 @@ namespace Oqtane.Models
Hybrid = Hybrid,
EnhancedNavigation = EnhancedNavigation,
Version = Version,
HomePageId = HomePageId,
HeadContent = HeadContent,
BodyContent = BodyContent,
IsDeleted = IsDeleted,
@@ -262,6 +262,10 @@ namespace Oqtane.Models
[NotMapped]
[Obsolete("This property is deprecated.", false)]
public string DefaultLayoutType { get; set; }
[NotMapped]
[Obsolete("This property is deprecated.", false)]
public int? HomePageId { get; set; }
#endregion
}
}

View File

@@ -0,0 +1,49 @@
using System;
using System.ComponentModel.DataAnnotations.Schema;
namespace Oqtane.Models
{
public class SiteGroup : ModelBase
{
/// <summary>
/// ID to identify the site group
/// </summary>
public int SiteGroupId { get; set; }
/// <summary>
/// Reference to the <see cref="SiteGroupDefinition"/>.
/// </summary>
public int SiteGroupDefinitionId { get; set; }
/// <summary>
/// Reference to the <see cref="Site"/>.
/// </summary>
public int SiteId { get; set; }
/// <summary>
/// Indicates if content should be synchronized for the site (false = compare, true = update)
/// </summary>
public bool Synchronize { get; set; }
/// <summary>
/// The role who should be notified of changes to the site (non-primary site only)
/// </summary>
public string NotifyRoleName { get; set; }
/// <summary>
/// The last date/time the site was synchronized
/// </summary>
public DateTime? SynchronizedOn { get; set; }
/// <summary>
/// The <see cref="SiteGroupDefinition"/> itself.
/// </summary>
public SiteGroupDefinition SiteGroupDefinition { get; set; }
/// <summary>
/// The primary alias for the site
/// </summary>
[NotMapped]
public string AliasName { get; set; }
}
}

View File

@@ -0,0 +1,35 @@
namespace Oqtane.Models
{
public class SiteGroupDefinition : ModelBase
{
/// <summary>
/// ID to identify the group
/// </summary>
public int SiteGroupDefinitionId { get; set; }
/// <summary>
/// Name of the group
/// </summary>
public string Name { get; set; }
/// <summary>
/// SiteId of the primary site in the group
/// </summary>
public int PrimarySiteId { get; set; }
/// <summary>
/// Indicates if the group supports synchronization
/// </summary>
public bool Synchronization { get; set; }
/// <summary>
/// Specifies if the group needs to be synchronized
/// </summary>
public bool Synchronize { get; set; }
/// <summary>
/// Indicates if the group supports localization
/// </summary>
public bool Localization { get; set; }
}
}

View File

@@ -36,6 +36,11 @@ namespace Oqtane.Models
/// </summary>
public string TimeZoneId { get; set; }
/// <summary>
/// The default culture for the user (ie. en-US)
/// </summary>
public string CultureCode { get; set; }
/// <summary>
/// Reference to a <see cref="File"/> containing the users photo.
/// </summary>
@@ -140,6 +145,7 @@ namespace Oqtane.Models
DisplayName = DisplayName,
Email = Email,
TimeZoneId = TimeZoneId,
CultureCode = CultureCode,
PhotoFileId = PhotoFileId,
LastLoginOn = LastLoginOn,
LastIPAddress = LastIPAddress,