diff --git a/services/sites/services.go b/services/sites/services.go index 06afe15..4c974bb 100644 --- a/services/sites/services.go +++ b/services/sites/services.go @@ -129,10 +129,11 @@ func (s *Service) ListAllSitesWithOwners(ctx context.Context) ([]db.SiteWithOwne } type UpdateSiteSettingsParams struct { - SiteID int64 `form:"siteID"` - Name string `form:"name"` - Tagline string `form:"tagline"` - Timezone string `form:"timezone"` + SiteID int64 `form:"siteID"` + Name string `form:"name"` + Tagline string `form:"tagline"` + Timezone string `form:"timezone"` + PostsPerPage int `form:"postsPerPage"` } func (s *Service) UpdateSiteSettings(ctx context.Context, params UpdateSiteSettingsParams) (models.Site, error) { @@ -146,9 +147,17 @@ func (s *Service) UpdateSiteSettings(ctx context.Context, params UpdateSiteSetti return models.Site{}, errors.Wrap(err, "invalid timezone") } + postsPerPage := params.PostsPerPage + if postsPerPage < 1 { + postsPerPage = 1 + } else if postsPerPage > 100 { + postsPerPage = 100 + } + site.Title = params.Name site.Tagline = params.Tagline site.Timezone = params.Timezone + site.PostsPerPage = postsPerPage if err := s.db.SaveSite(ctx, &site); err != nil { return models.Site{}, err diff --git a/views/sitesettings/general.html b/views/sitesettings/general.html index ca3e7a9..6f1833b 100644 --- a/views/sitesettings/general.html +++ b/views/sitesettings/general.html @@ -41,6 +41,13 @@ +
+ +
+ +
Number of posts per page on the generated site.
+
+