From: Mark Jamsek Subject: Re: gotwebd: customize the number of tags/commits in summary page To: Omar Polo Cc: gameoftrees@openbsd.org Date: Fri, 29 Dec 2023 19:48:25 +1100 Omar Polo wrote: > i'm playing with some layout changes over at my instance, and it > occurred to me that we don't have any knobs to change the number of tags > and commits showed in the summary page. Since we allow to change the > number of these per-page (although only via a single knob) and we also > changed the defaults over time, I don't think it's bad to allow to > change these. > > opinions? oks? Good idea. ok for me btw, I really like what you've been doing at your instance. I admittedly preferred it an iteration or two back when the branch and tag sections weren't in a second column, but even still I think where you're going with the styling is not only aesthetically nicer but more functional in the sense that more information is viewable without drilling down or scrolling yet without looking cluttered. > diff /home/op/w/got > commit - e83a9e2aae680ffbdfb86afc896276d7010ce907 > path + /home/op/w/got > blob - e3dca64b089f1e1e0d76ef5826837a9f3b31cf50 > file + gotwebd/gotweb.c > --- gotwebd/gotweb.c > +++ gotwebd/gotweb.c > @@ -346,11 +346,11 @@ gotweb_process_request(struct request *c) > error->msg); > goto err; > } > - error = got_get_repo_commits(c, D_MAXSLCOMMDISP); > + error = got_get_repo_commits(c, srv->summary_commits_display); > if (error) > goto err; > qs->action = TAGS; > - error = got_get_repo_tags(c, D_MAXSLTAGDISP); > + error = got_get_repo_tags(c, srv->summary_tags_display); > if (error) { > log_warnx("%s: got_get_repo_tags: %s", __func__, > error->msg); > blob - 0a41fb98df13059fc8f142e386a1d099a8d24de9 > file + gotwebd/gotwebd.conf.5 > --- gotwebd/gotwebd.conf.5 > +++ gotwebd/gotwebd.conf.5 > @@ -156,6 +156,10 @@ Set the displayed site name title. > Set the displayed site owner. > .It Ic show_site_owner Ar on | off > Toggle display of the site owner. > +.It Ic summary_commits_display Ar number > +The maximum number of commits to show in the summary page. > +.It Ic summary_tags_display Ar number > +The maximum number of tags to show in the summary page. > .El > .Sh FILES > .Bl -tag -width Ds -compact > @@ -198,6 +202,9 @@ server "localhost-unix" { > #max_repos 0 > #max_repos_display 25 > #max_commits_display 25 > + > + #summary_commits_display 10 > + #summary_tags_display 3 > } > > # Example server context for FCGI over TCP connections: > blob - 23dfd5628aac5e91500730e48a91ab1fb553f397 > file + gotwebd/gotwebd.h > --- gotwebd/gotwebd.h > +++ gotwebd/gotwebd.h > @@ -301,6 +301,8 @@ struct server { > size_t max_repos; > size_t max_repos_display; > size_t max_commits_display; > + size_t summary_commits_display; > + size_t summary_tags_display; > > int show_site_owner; > int show_repo_owner; > blob - 207d9f20026688bdc8849f0125e73b94a285504e > file + gotwebd/parse.y > --- gotwebd/parse.y > +++ gotwebd/parse.y > @@ -113,6 +113,7 @@ typedef struct { > %token MAX_REPOS_DISPLAY REPOS_PATH MAX_COMMITS_DISPLAY ON ERROR > %token SHOW_SITE_OWNER SHOW_REPO_CLONEURL PORT PREFORK RESPECT_EXPORTOK > %token UNIX_SOCKET UNIX_SOCKET_NAME SERVER CHROOT CUSTOM_CSS SOCKET > +%token SUMMARY_COMMITS_DISPLAY SUMMARY_TAGS_DISPLAY > > %token STRING > %token NUMBER > @@ -408,6 +409,22 @@ serveropts1 : REPOS_PATH STRING { > } > new_srv->max_commits_display = $2; > } > + | SUMMARY_COMMITS_DISPLAY NUMBER { > + if ($2 < 1) { > + yyerror("summary_commits_display is too small:" > + " %lld", $2); > + YYERROR; > + } > + new_srv->summary_commits_display = $2; > + } > + | SUMMARY_TAGS_DISPLAY NUMBER { > + if ($2 < 1) { > + yyerror("summary_tags_display is too small:" > + " %lld", $2); > + YYERROR; > + } > + new_srv->summary_tags_display = $2; > + } > ; > > serveropts2 : serveropts2 serveropts1 nl > @@ -478,6 +495,8 @@ lookup(char *s) > { "site_name", SITE_NAME }, > { "site_owner", SITE_OWNER }, > { "socket", SOCKET }, > + { "summary_commits_display", SUMMARY_COMMITS_DISPLAY }, > + { "summary_tags_display", SUMMARY_TAGS_DISPLAY }, > { "unix_socket", UNIX_SOCKET }, > { "unix_socket_name", UNIX_SOCKET_NAME }, > }; > @@ -909,6 +928,8 @@ conf_new_server(const char *name) > > srv->max_repos_display = D_MAXREPODISP; > srv->max_commits_display = D_MAXCOMMITDISP; > + srv->summary_commits_display = D_MAXSLCOMMDISP; > + srv->summary_tags_display = D_MAXSLTAGDISP; > srv->max_repos = D_MAXREPO; > > srv->unix_socket = 1; -- Mark Jamsek GPG: F2FF 13DE 6A06 C471 CA80 E6E2 2930 DC66 86EE CF68