"GOT", but the "O" is a cute, smiling pufferfish. Index | Thread | Search

From:
Tracey Emery <tracey@traceyemery.net>
Subject:
Re: gotwebd: foldable briefs?
To:
Omar Polo <op@omarpolo.com>
Cc:
gameoftrees@openbsd.org
Date:
Fri, 1 Dec 2023 13:23:48 -0700

Download raw body.

Thread
On Fri, Dec 01, 2023 at 08:55:17PM +0100, Omar Polo wrote:
> I'm a bit unsure about this.  It's nice since it makes the full commit
> message accessible in the briefs pages, and doesn't depend on javascript
> (just a plain <details> tag.)  Most (all?) text browsers however don't
> understand it and so this diffs adds some "noise" (the three dots) to
> the briefs page.
> 
> I have this too on my instance:
> <https://got.omarpolo.com/?action=summary&path=got.git>
> 
> (the aria-hidden attribute is just to make screen reader & co ignoring
> the three dots that are only decorative.)

I don't mind this. It could be handy. Let's wait for more feedback.

> 
> diff /home/op/w/got
> commit - 227f81a40643e9c82bb019336421e17e914d015a
> path + /home/op/w/got
> blob - c6f473ced0d7b7454f210dfaa119b63cd96d2ba4
> file + gotwebd/files/htdocs/gotwebd/gotweb.css
> --- gotwebd/files/htdocs/gotwebd/gotweb.css
> +++ gotwebd/files/htdocs/gotwebd/gotweb.css
> @@ -213,6 +213,24 @@ header.subtitle h2 {
>  	}
>  }
>  
> +.briefs_log summary {
> +	display: inline;
> +	cursor: pointer;
> +}
> +
> +.briefs_toggle {
> +	display: inline-block;
> +	padding: 3px 4px;
> +	border: 1px solid #222;
> +	border-radius: 3px;
> +	user-select: none;
> +}
> +
> +/* work around .commits being unusable here */
> +.briefs_log > p {
> +	white-space: pre-wrap;
> +}
> +
>  .tag_age, .tag_name, .tag_log {
>  	display: inline-block;
>  	vertical-align: middle;
> blob - 9e76331c9d3706b7909ec6ab013b194bc66801cc
> file + gotwebd/pages.tmpl
> --- gotwebd/pages.tmpl
> +++ gotwebd/pages.tmpl
> @@ -347,7 +347,7 @@ nextsep(char *s, char **t)
>  	struct repo_commit	*rc;
>  	struct repo_dir		*repo_dir = t->repo_dir;
>  	struct gotweb_url	 diff_url, patch_url, tree_url;
> -	char			*tmp;
> +	char			*tmp, *body;
>  
>  	diff_url = (struct gotweb_url){
>  		.action = DIFF,
> @@ -385,9 +385,12 @@ nextsep(char *s, char **t)
>  	if (tmp)
>  		*tmp = '\0';
>  
> -	tmp = strchr(rc->commit_msg, '\n');
> -	if (tmp)
> -		*tmp = '\0';
> +	body = strchr(rc->commit_msg, '\n');
> +	if (body) {
> +		*body++ = '\0';
> +		while (*body == '\n')
> +		      body++;
> +	}
>      !}
>      <div class='brief'>
>        <p class='brief_meta'>
> @@ -399,15 +402,33 @@ nextsep(char *s, char **t)
>            {{ rc->committer }}
>          </span>
>        </p>
> -      <p class="briefs_log">
> -        <a href="{{ render gotweb_render_url(tp->tp_arg, &diff_url) }}">
> -          {{ rc->commit_msg }}
> -        </a>
> -        {{ if rc->refs_str }}
> -          {{ " " }} <span class="refs_str">({{ rc->refs_str }})</span>
> -        {{ end }}
> -        </a>
> -      </p>
> +      {{ if body && *body != '\0' }}
> +        <details class="briefs_log">
> +          <summary>
> +            <a href="{{ render gotweb_render_url(tp->tp_arg, &diff_url) }}">
> +              {{ rc->commit_msg }}
> +            </a>
> +            {{ if rc->refs_str }}
> +              {{ " " }} <span class="refs_str">({{ rc->refs_str }})</span>
> +            {{ end }}
> +            {{ " " }}
> +            <span class="briefs_toggle" aria-hidden="true">
> +              {{ " ⋅⋅⋅ " }}
> +            </span>
> +          </summary>
> +          {{ "\n" }}
> +          <p>{{ body }}</p>
> +        </details>
> +      {{ else }}
> +        <p class="briefs_log">
> +          <a href="{{ render gotweb_render_url(tp->tp_arg, &diff_url) }}">
> +            {{ rc->commit_msg }}
> +          </a>
> +          {{ if rc->refs_str }}
> +            {{ " " }} <span class="refs_str">({{ rc->refs_str }})</span>
> +          {{ end }}
> +        </p>
> +      {{ end }}
>      </div>
>      <div class="navs_wrapper">
>        <div class="navs">
>