Paging #4

Merged
lmika merged 13 commits from feature/pages-and-paging into main 2026-03-22 05:23:54 +00:00
2 changed files with 20 additions and 4 deletions
Showing only changes of commit 550ebf728a - Show all commits

View file

@ -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

View file

@ -41,6 +41,13 @@
</datalist>
</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="col-sm-3"></div>
<div class="col-sm-9"><button type="submit" class="btn btn-primary">Save Settings</button></div>