Move OpenGraph property generation to models (#52)
- Add auto-OpenGraph field to web log - Only generate properties for posts/pages without them if this flag is set - Set flag to yes on v3 database migration - Add JSON converter for OpenGraph type - Add tests for models
This commit is contained in:
@@ -1249,36 +1249,41 @@ type SettingsModel = {
|
||||
|
||||
/// <summary>The default location for uploads</summary>
|
||||
Uploads: string
|
||||
|
||||
/// <summary>Whether to automatically apply OpenGraph properties to all pages and posts</summary>
|
||||
AutoOpenGraph: bool
|
||||
} with
|
||||
|
||||
/// <summary>Create a settings model from a web log</summary>
|
||||
/// <param name="webLog">The web log from which this model should be created</param>
|
||||
/// <returns>A populated <c>SettingsModel</c> instance</returns>
|
||||
static member FromWebLog(webLog: WebLog) =
|
||||
{ Name = webLog.Name
|
||||
Slug = webLog.Slug
|
||||
Subtitle = defaultArg webLog.Subtitle ""
|
||||
DefaultPage = webLog.DefaultPage
|
||||
PostsPerPage = webLog.PostsPerPage
|
||||
TimeZone = webLog.TimeZone
|
||||
ThemeId = string webLog.ThemeId
|
||||
AutoHtmx = webLog.AutoHtmx
|
||||
Uploads = string webLog.Uploads }
|
||||
{ Name = webLog.Name
|
||||
Slug = webLog.Slug
|
||||
Subtitle = defaultArg webLog.Subtitle ""
|
||||
DefaultPage = webLog.DefaultPage
|
||||
PostsPerPage = webLog.PostsPerPage
|
||||
TimeZone = webLog.TimeZone
|
||||
ThemeId = string webLog.ThemeId
|
||||
AutoHtmx = webLog.AutoHtmx
|
||||
Uploads = string webLog.Uploads
|
||||
AutoOpenGraph = webLog.AutoOpenGraph }
|
||||
|
||||
/// <summary>Update a web log with settings from the form</summary>
|
||||
/// <param name="webLog">The web log to be updated</param>
|
||||
/// <returns>The web log, updated with the value from this model</returns>
|
||||
member this.Update(webLog: WebLog) =
|
||||
{ webLog with
|
||||
Name = this.Name
|
||||
Slug = this.Slug
|
||||
Subtitle = if this.Subtitle = "" then None else Some this.Subtitle
|
||||
DefaultPage = this.DefaultPage
|
||||
PostsPerPage = this.PostsPerPage
|
||||
TimeZone = this.TimeZone
|
||||
ThemeId = ThemeId this.ThemeId
|
||||
AutoHtmx = this.AutoHtmx
|
||||
Uploads = UploadDestination.Parse this.Uploads }
|
||||
Name = this.Name
|
||||
Slug = this.Slug
|
||||
Subtitle = if this.Subtitle = "" then None else Some this.Subtitle
|
||||
DefaultPage = this.DefaultPage
|
||||
PostsPerPage = this.PostsPerPage
|
||||
TimeZone = this.TimeZone
|
||||
ThemeId = ThemeId this.ThemeId
|
||||
AutoHtmx = this.AutoHtmx
|
||||
Uploads = UploadDestination.Parse this.Uploads
|
||||
AutoOpenGraph = this.AutoOpenGraph }
|
||||
|
||||
|
||||
/// <summary>View model for uploading a file</summary>
|
||||
|
||||
Reference in New Issue
Block a user