@sr["With great power comes great responsibility. This page is intended for use by developers, for adding javscript and css into the page. Use this page only if you understand what you are doing."]
-
+
+
+ @sr["With great power comes great responsibility. This page is intended for use by developers, for adding javscript and css into the page. Use this page only if you understand what you are doing."]
+
+
+
@sr["Raw JavaScript"]
+
diff --git a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/EditWithTemplateScriptsPartial.cshtml b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/EditWithTemplateScriptsPartial.cshtml
index 820168fe7..d69fd2064 100644
--- a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/EditWithTemplateScriptsPartial.cshtml
+++ b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/EditWithTemplateScriptsPartial.cshtml
@@ -33,4 +33,5 @@
}
+
\ No newline at end of file
diff --git a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/Index.cshtml b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/Index.cshtml
index 7536e1c5b..bbde431bc 100644
--- a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/Index.cshtml
+++ b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/Index.cshtml
@@ -57,6 +57,12 @@
}
+
+ @* User custom inline script - render after all external JS resources *@
+ @if (Model.CurrentPage?.Script != null && !string.IsNullOrWhiteSpace(Model.CurrentPage.Script))
+ {
+
+ }
}
diff --git a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageDetailPartial.cshtml b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageDetailPartial.cshtml
index 20cd8dd50..8694893d1 100644
--- a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageDetailPartial.cshtml
+++ b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageDetailPartial.cshtml
@@ -33,7 +33,7 @@
}
-
+
@if (!Model.CurrentPage.ShowHeading)
{
@@ -77,6 +77,7 @@
@await Component.InvokeAsync("Navigation", new { viewName = "ChildTree", filterName = NamedNavigationFilters.ChildTree, startingNodeKey = "" })
}
+
@if (Model.CurrentPage != null && Model.CanEdit && !Model.ShowingDeleted && !Model.ShowingDraft && !Model.HistoryId.HasValue && Model.CurrentPage.IsPublished)
{
diff --git a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageScriptsPartial.cshtml b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageScriptsPartial.cshtml
index a348ffae0..4574fb621 100644
--- a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageScriptsPartial.cshtml
+++ b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/Views/Page/PageScriptsPartial.cshtml
@@ -1,3 +1,3 @@
@model cloudscribe.SimpleContent.Web.ViewModels.PageViewModel
-
+
\ No newline at end of file
diff --git a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/cloudscribe.SimpleContent.CompiledViews.Bootstrap5.csproj b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/cloudscribe.SimpleContent.CompiledViews.Bootstrap5.csproj
index 137712387..db25a08b1 100644
--- a/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/cloudscribe.SimpleContent.CompiledViews.Bootstrap5.csproj
+++ b/src/cloudscribe.SimpleContent.CompiledViews.Bootstrap5/cloudscribe.SimpleContent.CompiledViews.Bootstrap5.csproj
@@ -2,7 +2,7 @@
Bootstrap 5 pre-compiled views for cloudscribe.SimpleContent.Web
- 8.3.0
+ 8.4.0
net8.0
Joe Audette
true
@@ -12,6 +12,7 @@
Apache-2.0
https://github.com/cloudscribe/cloudscribe.SimpleContent.git
git
+ README.md
@@ -32,4 +33,7 @@
+
+
+
diff --git a/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/README.md b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/README.md
new file mode 100644
index 000000000..8ebbacf03
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/README.md
@@ -0,0 +1,24 @@
+# cloudscribe.SimpleContent.ContentTemplates.Bootstrap4
+
+[](https://www.nuget.org/packages/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4)
+[](https://opensource.org/licenses/Apache-2.0)
+
+Bootstrap 4 content templates for cloudscribe.SimpleContent.
+
+## Installation
+
+```shell
+Install-Package cloudscribe.SimpleContent.ContentTemplates.Bootstrap4
+```
+
+## Usage
+
+Add this package to your ASP.NET Core project to use Bootstrap 4 content templates with SimpleContent.
+
+## Contributing
+
+Contributions are welcome! Please see the [contributing guidelines](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/CONTRIBUTING.md).
+
+## License
+
+Licensed under the Apache 2.0 License. See the [LICENSE](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/LICENSE) file for details.
diff --git a/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4.csproj b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4.csproj
index 188306912..be5d24f11 100644
--- a/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4.csproj
+++ b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4/cloudscribe.SimpleContent.ContentTemplates.Bootstrap4.csproj
@@ -2,7 +2,7 @@
A set of Content Templates for cloudscribe.SimpleContent using Bootstrap 4
- 8.3.0
+ 8.4.0
net8.0
Joe Audette
true
@@ -36,4 +36,7 @@
+
+
+
diff --git a/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/README.md b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/README.md
new file mode 100644
index 000000000..dddb4b621
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/README.md
@@ -0,0 +1,24 @@
+# cloudscribe.SimpleContent.ContentTemplates.Bootstrap5
+
+[](https://www.nuget.org/packages/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5)
+[](https://opensource.org/licenses/Apache-2.0)
+
+Bootstrap 5 content templates for cloudscribe.SimpleContent.
+
+## Installation
+
+```shell
+Install-Package cloudscribe.SimpleContent.ContentTemplates.Bootstrap5
+```
+
+## Usage
+
+Add this package to your ASP.NET Core project to use Bootstrap 5 content templates with SimpleContent.
+
+## Contributing
+
+Contributions are welcome! Please see the [contributing guidelines](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/CONTRIBUTING.md).
+
+## License
+
+Licensed under the Apache 2.0 License. See the [LICENSE](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/LICENSE) file for details.
diff --git a/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5.csproj b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5.csproj
index 485b4947d..9a1a0f67d 100644
--- a/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5.csproj
+++ b/src/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5/cloudscribe.SimpleContent.ContentTemplates.Bootstrap5.csproj
@@ -2,7 +2,7 @@
A set of Content Templates for cloudscribe.SimpleContent using Bootstrap 5
- 8.3.0
+ 8.4.0
net8.0
Joe Audette
true
@@ -48,4 +48,7 @@
+
+
+
diff --git a/src/cloudscribe.SimpleContent.MetaWeblog/README.md b/src/cloudscribe.SimpleContent.MetaWeblog/README.md
new file mode 100644
index 000000000..880e02718
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.MetaWeblog/README.md
@@ -0,0 +1,24 @@
+# cloudscribe.SimpleContent.MetaWeblog
+
+[](https://www.nuget.org/packages/cloudscribe.SimpleContent.MetaWeblog)
+[](https://opensource.org/licenses/Apache-2.0)
+
+MetaWeblog API support for cloudscribe.SimpleContent.
+
+## Installation
+
+```shell
+Install-Package cloudscribe.SimpleContent.MetaWeblog
+```
+
+## Usage
+
+Add this package to enable MetaWeblog API integration in your SimpleContent-based ASP.NET Core project.
+
+## Contributing
+
+Contributions are welcome! Please see the [contributing guidelines](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/CONTRIBUTING.md).
+
+## License
+
+Licensed under the Apache 2.0 License. See the [LICENSE](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/LICENSE) file for details.
diff --git a/src/cloudscribe.SimpleContent.MetaWeblog/cloudscribe.SimpleContent.MetaWeblog.csproj b/src/cloudscribe.SimpleContent.MetaWeblog/cloudscribe.SimpleContent.MetaWeblog.csproj
index 2a908efce..d96d29459 100644
--- a/src/cloudscribe.SimpleContent.MetaWeblog/cloudscribe.SimpleContent.MetaWeblog.csproj
+++ b/src/cloudscribe.SimpleContent.MetaWeblog/cloudscribe.SimpleContent.MetaWeblog.csproj
@@ -2,7 +2,7 @@
cloudscribe.SimpleContent.MetaWeblog Class Library
- 8.3.0
+ 8.4.0
net8.0
Joe Audette
cloudscribe;metaweblog;blog;cms
@@ -12,6 +12,7 @@
https://github.com/cloudscribe/cloudscribe.SimpleContent.git
git
+ README.md
@@ -25,9 +26,11 @@
-
-
-
+
+
+
+
+
+
-
diff --git a/src/cloudscribe.SimpleContent.Models/Blog/Post.cs b/src/cloudscribe.SimpleContent.Models/Blog/Post.cs
index f79bfca05..5374bd3f2 100644
--- a/src/cloudscribe.SimpleContent.Models/Blog/Post.cs
+++ b/src/cloudscribe.SimpleContent.Models/Blog/Post.cs
@@ -96,6 +96,6 @@ public static Post FromIPost(IPost post)
post.CopyTo(p);
return p;
}
-
+ public string Script { get; set; }
}
}
diff --git a/src/cloudscribe.SimpleContent.Models/IContentItem.cs b/src/cloudscribe.SimpleContent.Models/IContentItem.cs
index 1119f5f4c..3a3c31e7a 100644
--- a/src/cloudscribe.SimpleContent.Models/IContentItem.cs
+++ b/src/cloudscribe.SimpleContent.Models/IContentItem.cs
@@ -11,6 +11,6 @@ public interface IContentItem
string Content { get; set; }
DateTime? PubDate { get; set; }
string MetaDescription { get; set; }
-
+ string Script { get; set; }
}
}
diff --git a/src/cloudscribe.SimpleContent.Models/ModelExtensions.cs b/src/cloudscribe.SimpleContent.Models/ModelExtensions.cs
index 0962ab933..7e7532691 100644
--- a/src/cloudscribe.SimpleContent.Models/ModelExtensions.cs
+++ b/src/cloudscribe.SimpleContent.Models/ModelExtensions.cs
@@ -310,6 +310,7 @@ public static void CopyTo(this IPage input, IPage target)
target.ShowCreatedDate = input.ShowCreatedDate;
target.ShowLastModifiedBy = input.ShowLastModifiedBy;
target.ShowLastModifiedDate = input.ShowLastModifiedDate;
+ target.Script = input.Script;
}
///
diff --git a/src/cloudscribe.SimpleContent.Models/Page/IPage.cs b/src/cloudscribe.SimpleContent.Models/Page/IPage.cs
index 78ce9c2c8..72a7f8a74 100644
--- a/src/cloudscribe.SimpleContent.Models/Page/IPage.cs
+++ b/src/cloudscribe.SimpleContent.Models/Page/IPage.cs
@@ -68,5 +68,6 @@ public interface IPage : IContentItem
public bool? ShowCreatedDate { get; set; }
public bool? ShowLastModifiedBy { get; set; }
public bool? ShowLastModifiedDate { get; set; }
+ public string? Script { get; set; }
}
}
\ No newline at end of file
diff --git a/src/cloudscribe.SimpleContent.Models/Page/Page.cs b/src/cloudscribe.SimpleContent.Models/Page/Page.cs
index e0635151c..7e252eee1 100644
--- a/src/cloudscribe.SimpleContent.Models/Page/Page.cs
+++ b/src/cloudscribe.SimpleContent.Models/Page/Page.cs
@@ -101,5 +101,6 @@ public static Page FromIPage(IPage page)
public bool? ShowCreatedDate { get; set; }
public bool? ShowLastModifiedBy { get; set; }
public bool? ShowLastModifiedDate { get; set; }
+ public string? Script { get; set; }
}
}
diff --git a/src/cloudscribe.SimpleContent.Models/Page/PageResource.cs b/src/cloudscribe.SimpleContent.Models/Page/PageResource.cs
index 84f264439..f862b1af1 100644
--- a/src/cloudscribe.SimpleContent.Models/Page/PageResource.cs
+++ b/src/cloudscribe.SimpleContent.Models/Page/PageResource.cs
@@ -31,7 +31,6 @@ public PageResource()
public string Id { get; set; }
public string ContentId { get; set; }
public int Sort { get; set; } = 1;
-
public string Type { get; set; }
public string Environment { get; set; }
public string Url { get; set; }
diff --git a/src/cloudscribe.SimpleContent.Models/README.md b/src/cloudscribe.SimpleContent.Models/README.md
new file mode 100644
index 000000000..dbf5f1dd0
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.Models/README.md
@@ -0,0 +1,24 @@
+# cloudscribe.SimpleContent.Models
+
+[](https://www.nuget.org/packages/cloudscribe.SimpleContent.Models)
+[](https://opensource.org/licenses/Apache-2.0)
+
+Shared models for cloudscribe.SimpleContent CMS and blog engine.
+
+## Installation
+
+```shell
+Install-Package cloudscribe.SimpleContent.Models
+```
+
+## Usage
+
+Reference this package to use shared models for SimpleContent features in your ASP.NET Core project.
+
+## Contributing
+
+Contributions are welcome! Please see the [contributing guidelines](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/CONTRIBUTING.md).
+
+## License
+
+Licensed under the Apache 2.0 License. See the [LICENSE](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/LICENSE) file for details.
diff --git a/src/cloudscribe.SimpleContent.Models/cloudscribe.SimpleContent.Models.csproj b/src/cloudscribe.SimpleContent.Models/cloudscribe.SimpleContent.Models.csproj
index d07359acc..8ee52e024 100644
--- a/src/cloudscribe.SimpleContent.Models/cloudscribe.SimpleContent.Models.csproj
+++ b/src/cloudscribe.SimpleContent.Models/cloudscribe.SimpleContent.Models.csproj
@@ -2,7 +2,7 @@
cloudscribe.SimpleContent.Models Class Library
- 8.3.0
+ 8.4.0
net8.0
Joe Audette
cloudscribe;blog;cms
@@ -11,6 +11,7 @@
https://github.com/cloudscribe/cloudscribe.SimpleContent.git
git
Apache-2.0
+ README.md
@@ -24,9 +25,11 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
+
+
diff --git a/src/cloudscribe.SimpleContent.Security.SimpleAuth/README.md b/src/cloudscribe.SimpleContent.Security.SimpleAuth/README.md
new file mode 100644
index 000000000..cd37f17ee
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.Security.SimpleAuth/README.md
@@ -0,0 +1,24 @@
+# cloudscribe.SimpleContent.Security.SimpleAuth
+
+[](https://www.nuget.org/packages/cloudscribe.SimpleContent.Security.SimpleAuth)
+[](https://opensource.org/licenses/Apache-2.0)
+
+Simple authentication and security integration for cloudscribe.SimpleContent.
+
+## Installation
+
+```shell
+Install-Package cloudscribe.SimpleContent.Security.SimpleAuth
+```
+
+## Usage
+
+Add this package to your ASP.NET Core project to enable simple authentication features in SimpleContent.
+
+## Contributing
+
+Contributions are welcome! Please see the [contributing guidelines](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/CONTRIBUTING.md).
+
+## License
+
+Licensed under the Apache 2.0 License. See the [LICENSE](https://github.com/cloudscribe/cloudscribe.SimpleContent/blob/main/LICENSE) file for details.
diff --git a/src/cloudscribe.SimpleContent.Security.SimpleAuth/cloudscribe.SimpleContent.Security.SimpleAuth.csproj b/src/cloudscribe.SimpleContent.Security.SimpleAuth/cloudscribe.SimpleContent.Security.SimpleAuth.csproj
index 19c95ddcb..70c53d9aa 100644
--- a/src/cloudscribe.SimpleContent.Security.SimpleAuth/cloudscribe.SimpleContent.Security.SimpleAuth.csproj
+++ b/src/cloudscribe.SimpleContent.Security.SimpleAuth/cloudscribe.SimpleContent.Security.SimpleAuth.csproj
@@ -13,6 +13,7 @@
https://github.com/cloudscribe/cloudscribe.SimpleContent.git
git
+ README.md
@@ -25,5 +26,8 @@
-
+
+
+
+
diff --git a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageEntity.cs b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageEntity.cs
index bdc732b18..02cc3bb38 100644
--- a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageEntity.cs
+++ b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageEntity.cs
@@ -233,5 +233,6 @@ public static PageEntity FromIPage(IPage page)
public bool? ShowCreatedDate { get; set; }
public bool? ShowLastModifiedBy { get; set; }
public bool? ShowLastModifiedDate { get; set; }
+ public string Script { get; set; }
}
}
diff --git a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageResourceEntity.cs b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageResourceEntity.cs
index 6de77246e..bf7b4907e 100644
--- a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageResourceEntity.cs
+++ b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PageResourceEntity.cs
@@ -24,9 +24,7 @@ public string PageEntityId
get { return pageEntityId; }
set { pageEntityId = value; }
}
-
public int Sort { get; set; } = 1;
-
public string Type { get; set; }
public string Environment { get; set; }
public string Url { get; set; }
diff --git a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PostEntity.cs b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PostEntity.cs
index 7e4bfbcab..3feae1ad9 100644
--- a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PostEntity.cs
+++ b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/Models/PostEntity.cs
@@ -136,6 +136,6 @@ public static PostEntity FromIPost(IPost post)
post.CopyTo(p);
return p;
}
-
+ public string Script { get; set; }
}
}
diff --git a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/README.md b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/README.md
new file mode 100644
index 000000000..e5a07a330
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/README.md
@@ -0,0 +1,22 @@
+# cloudscribe.SimpleContent.Storage.EFCore.Common
+
+This package provides the base Entity Framework Core implementation for cloudscribe SimpleContent commands and queries. It is intended to be used as a foundational library for database-specific EFCore storage providers within the cloudscribe.SimpleContent ecosystem.
+
+## Features
+- Common command and query logic for EFCore-based storage
+- Designed for extension by MSSQL, MySQL, PostgreSQL, SQLite providers
+- Used internally by other cloudscribe.SimpleContent.Storage.EFCore.* projects
+
+## Usage
+Reference this package from your database-specific provider or application project. Typically, you will not use this package directly, but through one of the database provider packages (e.g., MSSQL, MySQL, PostgreSQL, SQLite).
+
+```
+// Example usage (in your DbContext registration)
+services.AddSimpleContentEFCoreStorage();
+```
+
+## License
+This project is licensed under the Apache-2.0 License. See the LICENSE file for details.
+
+## Repository
+[cloudscribe.SimpleContent on GitHub](https://github.com/cloudscribe/cloudscribe.SimpleContent)
diff --git a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/cloudscribe.SimpleContent.Storage.EFCore.Common.csproj b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/cloudscribe.SimpleContent.Storage.EFCore.Common.csproj
index abb0ad649..57230ec33 100644
--- a/src/cloudscribe.SimpleContent.Storage.EFCore.Common/cloudscribe.SimpleContent.Storage.EFCore.Common.csproj
+++ b/src/cloudscribe.SimpleContent.Storage.EFCore.Common/cloudscribe.SimpleContent.Storage.EFCore.Common.csproj
@@ -2,7 +2,7 @@
base package - Entity Framework Core implementation of cloudscribe SimpleContent commands and queries
- 8.3.0
+ 8.4.0
net8.0
Joe Audette
cloudscribe;commands;queries;ef
@@ -11,11 +11,12 @@
Apache-2.0
https://github.com/cloudscribe/cloudscribe.SimpleContent.git
git
-
+ README.md
+
diff --git a/src/cloudscribe.SimpleContent.Storage.EFCore.MSSQL/Migrations/20250423093650_user-script-20250423.Designer.cs b/src/cloudscribe.SimpleContent.Storage.EFCore.MSSQL/Migrations/20250423093650_user-script-20250423.Designer.cs
new file mode 100644
index 000000000..2376b7a88
--- /dev/null
+++ b/src/cloudscribe.SimpleContent.Storage.EFCore.MSSQL/Migrations/20250423093650_user-script-20250423.Designer.cs
@@ -0,0 +1,1015 @@
+//
+using System;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Metadata;
+using Microsoft.EntityFrameworkCore.Migrations;
+using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
+using cloudscribe.SimpleContent.Storage.EFCore.MSSQL;
+
+#nullable disable
+
+namespace cloudscribe.SimpleContent.Storage.EFCore.MSSQL.Migrations
+{
+ [DbContext(typeof(SimpleContentDbContext))]
+ [Migration("20250423093650_user-script-20250423")]
+ partial class userscript20250423
+ {
+ ///
+ protected override void BuildTargetModel(ModelBuilder modelBuilder)
+ {
+#pragma warning disable 612, 618
+ modelBuilder
+ .HasAnnotation("ProductVersion", "8.0.0")
+ .HasAnnotation("Relational:MaxIdentifierLength", 128);
+
+ SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder);
+
+ modelBuilder.Entity("cloudscribe.SimpleContent.Models.ContentHistory", b =>
+ {
+ b.Property("Id")
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(36)
+ .HasColumnType("uniqueidentifier");
+
+ b.Property("ArchivedBy")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ArchivedUtc")
+ .HasColumnType("datetime2");
+
+ b.Property("Author")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("CategoriesCsv")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Content")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContentId")
+ .IsRequired()
+ .HasMaxLength(36)
+ .HasColumnType("nvarchar(36)");
+
+ b.Property("ContentSource")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ContentType")
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasDefaultValue("html");
+
+ b.Property("CorrelationKey")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("CreatedByUser")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("CreatedUtc")
+ .HasColumnType("datetime2");
+
+ b.Property("DraftAuthor")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("DraftContent")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DraftPubDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DraftSerializedModel")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("IsDraftHx")
+ .HasColumnType("bit");
+
+ b.Property("IsPublished")
+ .HasColumnType("bit");
+
+ b.Property("LastModified")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifiedByUser")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("MetaDescription")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MetaHtml")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MetaJson")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PageOrder")
+ .HasColumnType("int");
+
+ b.Property("ParentId")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ParentSlug")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ProjectId")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("PubDate")
+ .HasColumnType("datetime2");
+
+ b.Property("SerializedModel")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Serializer")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ShowCreatedBy")
+ .HasColumnType("bit");
+
+ b.Property("ShowCreatedDate")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModifiedBy")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModifiedDate")
+ .HasColumnType("bit");
+
+ b.Property("Slug")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("TeaserOverride")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("TemplateKey")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("Title")
+ .IsRequired()
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ViewRoles")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("WasDeleted")
+ .HasColumnType("bit");
+
+ b.HasKey("Id");
+
+ b.HasIndex("ContentId");
+
+ b.HasIndex("ContentSource");
+
+ b.HasIndex("CorrelationKey");
+
+ b.HasIndex("CreatedByUser");
+
+ b.HasIndex("LastModifiedByUser");
+
+ b.HasIndex("Title");
+
+ b.ToTable("cs_ContentHistory", null, t =>
+ {
+ t.HasTrigger("cs_ContentHistory_Trigger");
+ });
+
+ b.HasAnnotation("SqlServer:UseSqlOutputClause", false);
+ });
+
+ modelBuilder.Entity("cloudscribe.SimpleContent.Models.ProjectSettings", b =>
+ {
+ b.Property("Id")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("AboutContent")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("AboutHeading")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("AddBlogToPagesTree")
+ .HasColumnType("bit");
+
+ b.Property("BlogMenuLinksToNewestPost")
+ .HasColumnType("bit");
+
+ b.Property("BlogPageNavComponentVisibility")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("BlogPagePosition")
+ .HasColumnType("int");
+
+ b.Property("BlogPageText")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("CdnUrl")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ChannelCategoriesCsv")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ChannelRating")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("ChannelTimeToLive")
+ .HasColumnType("int");
+
+ b.Property("CommentNotificationEmail")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("CopyrightNotice")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("DaysToComment")
+ .HasColumnType("int");
+
+ b.Property("DefaultContentType")
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasDefaultValue("html");
+
+ b.Property("DefaultFeedItems")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(20);
+
+ b.Property("DefaultPageSlug")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("Description")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DisqusShortName")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("FacebookAppId")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Image")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("IncludePubDateInPostUrls")
+ .HasColumnType("bit");
+
+ b.Property("LanguageCode")
+ .HasMaxLength(10)
+ .HasColumnType("nvarchar(10)");
+
+ b.Property("LocalMediaVirtualPath")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ManagingEditorEmail")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("MaxFeedItems")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(1000);
+
+ b.Property("ModerateComments")
+ .HasColumnType("bit");
+
+ b.Property("PostsPerPage")
+ .HasColumnType("int");
+
+ b.Property("PubDateFormat")
+ .HasMaxLength(75)
+ .HasColumnType("nvarchar(75)");
+
+ b.Property("Publisher")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("PublisherEntityType")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("PublisherLogoHeight")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("PublisherLogoUrl")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("PublisherLogoWidth")
+ .HasMaxLength(20)
+ .HasColumnType("nvarchar(20)");
+
+ b.Property("RecaptchaPrivateKey")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("RecaptchaPublicKey")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("RemoteFeedProcessorUseAgentFragment")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("RemoteFeedUrl")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ShowAboutBox")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(true);
+
+ b.Property("ShowArchivedPosts")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(true);
+
+ b.Property("ShowBlogCategories")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(true);
+
+ b.Property("ShowCreatedBy")
+ .HasColumnType("bit");
+
+ b.Property("ShowCreatedDate")
+ .HasColumnType("bit");
+
+ b.Property("ShowFeaturedPostsOnDefaultPage")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModifiedBy")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModifiedDate")
+ .HasColumnType("bit");
+
+ b.Property("ShowRecentPostsOnDefaultPage")
+ .HasColumnType("bit");
+
+ b.Property("ShowRelatedPosts")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("bit")
+ .HasDefaultValue(true);
+
+ b.Property("ShowTitle")
+ .HasColumnType("bit");
+
+ b.Property("SiteName")
+ .HasMaxLength(200)
+ .HasColumnType("nvarchar(200)");
+
+ b.Property("TeaserMode")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint")
+ .HasDefaultValue((byte)0);
+
+ b.Property("TeaserTruncationLength")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("int")
+ .HasDefaultValue(20);
+
+ b.Property("TeaserTruncationMode")
+ .ValueGeneratedOnAdd()
+ .HasColumnType("tinyint")
+ .HasDefaultValue((byte)0);
+
+ b.Property("TimeZoneId")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Title")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("TwitterCreator")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("TwitterPublisher")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("UseDefaultPageAsRootNode")
+ .HasColumnType("bit");
+
+ b.Property("WebmasterEmail")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.HasKey("Id");
+
+ b.ToTable("cs_ContentProject", null, t =>
+ {
+ t.HasTrigger("cs_ContentProject_Trigger");
+ });
+
+ b.HasAnnotation("SqlServer:UseSqlOutputClause", false);
+ });
+
+ modelBuilder.Entity("cloudscribe.SimpleContent.Storage.EFCore.Models.PageCategory", b =>
+ {
+ b.Property("Value")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("PageEntityId")
+ .HasMaxLength(36)
+ .HasColumnType("nvarchar(36)");
+
+ b.Property("ProjectId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.HasKey("Value", "PageEntityId");
+
+ b.HasIndex("PageEntityId");
+
+ b.HasIndex("ProjectId");
+
+ b.HasIndex("Value");
+
+ b.ToTable("cs_PageCategory", null, t =>
+ {
+ t.HasTrigger("cs_PageCategory_Trigger");
+ });
+
+ b.HasAnnotation("SqlServer:UseSqlOutputClause", false);
+ });
+
+ modelBuilder.Entity("cloudscribe.SimpleContent.Storage.EFCore.Models.PageComment", b =>
+ {
+ b.Property("Id")
+ .HasMaxLength(36)
+ .HasColumnType("nvarchar(36)");
+
+ b.Property("Author")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("Content")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Email")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("Ip")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("IsAdmin")
+ .HasColumnType("bit");
+
+ b.Property("IsApproved")
+ .HasColumnType("bit");
+
+ b.Property("PageEntityId")
+ .HasMaxLength(36)
+ .HasColumnType("nvarchar(36)");
+
+ b.Property("ProjectId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("PubDate")
+ .HasColumnType("datetime2");
+
+ b.Property("UserAgent")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("Website")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.HasKey("Id");
+
+ b.HasIndex("PageEntityId");
+
+ b.HasIndex("ProjectId");
+
+ b.ToTable("cs_PageComment", null, t =>
+ {
+ t.HasTrigger("cs_PageComment_Trigger");
+ });
+
+ b.HasAnnotation("SqlServer:UseSqlOutputClause", false);
+ });
+
+ modelBuilder.Entity("cloudscribe.SimpleContent.Storage.EFCore.Models.PageEntity", b =>
+ {
+ b.Property("Id")
+ .HasMaxLength(36)
+ .HasColumnType("nvarchar(36)");
+
+ b.Property("Author")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("CategoriesCsv")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("Content")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ContentType")
+ .ValueGeneratedOnAdd()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)")
+ .HasDefaultValue("html");
+
+ b.Property("CorrelationKey")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("CreatedByUser")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("CreatedUtc")
+ .HasColumnType("datetime2");
+
+ b.Property("DisableEditor")
+ .HasColumnType("bit");
+
+ b.Property("DraftAuthor")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("DraftContent")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("DraftPubDate")
+ .HasColumnType("datetime2");
+
+ b.Property("DraftSerializedModel")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("ExternalUrl")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("IsPublished")
+ .HasColumnType("bit");
+
+ b.Property("LastModified")
+ .HasColumnType("datetime2");
+
+ b.Property("LastModifiedByUser")
+ .HasMaxLength(100)
+ .HasColumnType("nvarchar(100)");
+
+ b.Property("MenuFilters")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("MenuOnly")
+ .HasColumnType("bit");
+
+ b.Property("MetaDescription")
+ .HasMaxLength(500)
+ .HasColumnType("nvarchar(500)");
+
+ b.Property("MetaHtml")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("MetaJson")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("PageOrder")
+ .HasColumnType("int");
+
+ b.Property("ParentId")
+ .HasMaxLength(36)
+ .HasColumnType("nvarchar(36)");
+
+ b.Property("ParentSlug")
+ .HasMaxLength(255)
+ .HasColumnType("nvarchar(255)");
+
+ b.Property("ProjectId")
+ .IsRequired()
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("PubDate")
+ .HasColumnType("datetime2");
+
+ b.Property("Script")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("SerializedModel")
+ .HasColumnType("nvarchar(max)");
+
+ b.Property("Serializer")
+ .HasMaxLength(50)
+ .HasColumnType("nvarchar(50)");
+
+ b.Property("ShowCategories")
+ .HasColumnType("bit");
+
+ b.Property("ShowComments")
+ .HasColumnType("bit");
+
+ b.Property("ShowCreatedBy")
+ .HasColumnType("bit");
+
+ b.Property("ShowCreatedDate")
+ .HasColumnType("bit");
+
+ b.Property("ShowHeading")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModified")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModifiedBy")
+ .HasColumnType("bit");
+
+ b.Property("ShowLastModifiedDate")
+ .HasColumnType("bit");
+
+ b.Property("ShowMenu")
+ .HasColumnType("bit");
+
+ b.Property("ShowPubDate")
+ .HasColumnType("bit");
+
+ b.Property
@sr["Comments"]
- @foreach (var comment in Model.CurrentPost.Comments) - { - Model.TmpComment = comment; - if (comment.IsApproved || !Model.ProjectSettings.ModerateComments || Model.CanEdit) - { - await Html.RenderPartialAsync("CommentPartial", Model); - } - } -