[PATCH] noheader: place branch combo on tabs if no header
John Keeping
john at keeping.me.uk
Sat Jun 23 12:50:10 CEST 2018
On Wed, Jun 20, 2018 at 09:17:00PM +0800, Andy Green wrote:
> 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>
This makes noheader=1 a lot more usable!
I wonder if the branch combo should be somewhere to the right of the
main tabs, but I don't feel strongly either way.
Reviewed-by: John Keeping <john at keeping.me.uk>
> ---
> 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"),
More information about the CGit
mailing list