List for cgit developers and users
 help / color / mirror / Atom feed
From: andy at warmcat.com (Andy Green)
Subject: [PATCH] noheader: place branch combo on tabs if no header
Date: Wed, 20 Jun 2018 21:17:00 +0800	[thread overview]
Message-ID: <152950062069.30029.12723213146610945242.stgit@mail.warmcat.com> (raw)
In-Reply-To: <45190b3f-ced1-2b5f-9d3e-c9da90192867@warmcat.com>

noheader=1 stops the static page header from being emitted by
cgit, but along with that, the small form that lets the user
change branch context on the page is also lost.

This isn't actually static since it contains a dynamic list of
branches; it can't be reproduced on the user's external header
static html.  So it seems it doesn't belong to the set of header
things that should be disabled.

This patch relocates the branch selection combo and
form on the left of the tabs line if noheader=1.  It doesn't
change anything if noheader is not set.

Signed-off-by: Andy Green <andy at warmcat.com>
---
 ui-shared.c |   34 ++++++++++++++++++++++++----------
 1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/ui-shared.c b/ui-shared.c
index c9a34fb..082a6f1 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -958,6 +958,19 @@ static void cgit_print_path_crumbs(char *path)
 	ctx.qry.path = old_path;
 }
 
+static void print_branch_combo_form(void)
+{
+	html("<form method='get'>\n");
+	cgit_add_hidden_formfields(0, 1, ctx.qry.page);
+	html("<select name='h' onchange='this.form.submit();'>\n");
+	for_each_branch_ref(print_branch_option, ctx.qry.head);
+	if (ctx.repo->enable_remote_branches)
+		for_each_remote_ref(print_branch_option, ctx.qry.head);
+	html("</select> ");
+	html("<input type='submit' value='switch'/>");
+	html("</form>");
+}
+
 static void print_header(void)
 {
 	char *logo = NULL, *logo_link = NULL;
@@ -991,15 +1004,7 @@ static void print_header(void)
 		cgit_summary_link(ctx.repo->name, ctx.repo->name, NULL, NULL);
 		if (ctx.env.authenticated) {
 			html("</td><td class='form'>");
-			html("<form method='get'>\n");
-			cgit_add_hidden_formfields(0, 1, ctx.qry.page);
-			html("<select name='h' onchange='this.form.submit();'>\n");
-			for_each_branch_ref(print_branch_option, ctx.qry.head);
-			if (ctx.repo->enable_remote_branches)
-				for_each_remote_ref(print_branch_option, ctx.qry.head);
-			html("</select> ");
-			html("<input type='submit' value='switch'/>");
-			html("</form>");
+			print_branch_combo_form();
 		}
 	} else
 		html_txt(ctx.cfg.root_title);
@@ -1023,8 +1028,15 @@ void cgit_print_pageheader(void)
 	if (!ctx.env.authenticated || !ctx.cfg.noheader)
 		print_header();
 
-	html("<table class='tabs'><tr><td>\n");
+	html("<table class='tabs'><tr>\n");
 	if (ctx.env.authenticated && ctx.repo) {
+		if (ctx.cfg.noheader) {
+			html("<td class='form' style='text-align:left'>");
+			print_branch_combo_form();
+			html("</td><td style='text-align:center'>");
+		}
+		html("<td>");
+
 		if (ctx.repo->readme.nr)
 			reporevlink("about", "about", NULL,
 				    hc("about"), ctx.qry.head, NULL,
@@ -1081,6 +1093,8 @@ void cgit_print_pageheader(void)
 		html("</form>\n");
 	} else if (ctx.env.authenticated) {
 		char *currenturl = cgit_currenturl();
+
+		html("<td>");
 		site_link(NULL, "index", NULL, hc("repolist"), NULL, NULL, 0, 1);
 		if (ctx.cfg.root_readme)
 			site_link("about", "about", NULL, hc("about"),



  reply	other threads:[~2018-06-20 13:17 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-20  9:04 repo.desc as raw html? andy
2018-06-20 13:17 ` andy [this message]
2018-06-23 10:50   ` [PATCH] noheader: place branch combo on tabs if no header john
2018-06-21  6:46 ` [PATCH 1/2] config: add root-desc-html and repo.desc-html andy
2018-06-21  6:46 ` [PATCH 2/2] ui-shared: emit root-desc-html and repo.desc-html after their text counterparts andy
2018-06-23 10:28   ` john
2018-06-23 10:33     ` andy
2018-06-23 10:53       ` john
2018-06-23 11:08         ` andy
2018-06-23 16:33           ` john

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=152950062069.30029.12723213146610945242.stgit@mail.warmcat.com \
    --to=cgit@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).