feat: add posts per page setting to site settings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
d7a5d425b8
commit
550ebf728a
|
|
@ -129,10 +129,11 @@ func (s *Service) ListAllSitesWithOwners(ctx context.Context) ([]db.SiteWithOwne
|
||||||
}
|
}
|
||||||
|
|
||||||
type UpdateSiteSettingsParams struct {
|
type UpdateSiteSettingsParams struct {
|
||||||
SiteID int64 `form:"siteID"`
|
SiteID int64 `form:"siteID"`
|
||||||
Name string `form:"name"`
|
Name string `form:"name"`
|
||||||
Tagline string `form:"tagline"`
|
Tagline string `form:"tagline"`
|
||||||
Timezone string `form:"timezone"`
|
Timezone string `form:"timezone"`
|
||||||
|
PostsPerPage int `form:"postsPerPage"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) UpdateSiteSettings(ctx context.Context, params UpdateSiteSettingsParams) (models.Site, error) {
|
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")
|
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.Title = params.Name
|
||||||
site.Tagline = params.Tagline
|
site.Tagline = params.Tagline
|
||||||
site.Timezone = params.Timezone
|
site.Timezone = params.Timezone
|
||||||
|
site.PostsPerPage = postsPerPage
|
||||||
|
|
||||||
if err := s.db.SaveSite(ctx, &site); err != nil {
|
if err := s.db.SaveSite(ctx, &site); err != nil {
|
||||||
return models.Site{}, err
|
return models.Site{}, err
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,13 @@
|
||||||
</datalist>
|
</datalist>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row mb-3">
|
||||||
|
<label for="postsPerPage" class="col-sm-3 col-form-label text-end">Posts Per Page</label>
|
||||||
|
<div class="col-sm-3">
|
||||||
|
<input type="number" class="form-control" id="postsPerPage" name="postsPerPage" value="{{ .site.PostsPerPage }}" min="1" max="100">
|
||||||
|
<div class="form-text">Number of posts per page on the generated site.</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row mb-3">
|
<div class="row mb-3">
|
||||||
<div class="col-sm-3"></div>
|
<div class="col-sm-3"></div>
|
||||||
<div class="col-sm-9"><button type="submit" class="btn btn-primary">Save Settings</button></div>
|
<div class="col-sm-9"><button type="submit" class="btn btn-primary">Save Settings</button></div>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue