summaryrefslogtreecommitdiffabout
path: root/ui-shared.c
Unidiff
Diffstat (limited to 'ui-shared.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 95dfeb4..4f28512 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -370,4 +370,10 @@ void cgit_patch_link(char *name, char *title, char *class, char *head,
370} 370}
371 371
372void cgit_stats_link(char *name, char *title, char *class, char *head,
373 char *path)
374{
375 reporevlink("stats", name, title, class, head, NULL, path);
376}
377
372void cgit_object_link(struct object *obj) 378void cgit_object_link(struct object *obj)
373{ 379{
@@ -558,5 +564,5 @@ int print_archive_ref(const char *refname, const unsigned char *sha1,
558} 564}
559 565
560void add_hidden_formfields(int incl_head, int incl_search, char *page) 566void cgit_add_hidden_formfields(int incl_head, int incl_search, char *page)
561{ 567{
562 char *url; 568 char *url;
@@ -588,7 +594,9 @@ void add_hidden_formfields(int incl_head, int incl_search, char *page)
588} 594}
589 595
596const char *fallback_cmd = "repolist";
597
590char *hc(struct cgit_cmd *cmd, const char *page) 598char *hc(struct cgit_cmd *cmd, const char *page)
591{ 599{
592 return (strcmp(cmd->name, page) ? NULL : "active"); 600 return (strcmp(cmd ? cmd->name : fallback_cmd, page) ? NULL : "active");
593} 601}
594 602
@@ -597,4 +605,7 @@ void cgit_print_pageheader(struct cgit_context *ctx)
597 struct cgit_cmd *cmd = cgit_get_cmd(ctx); 605 struct cgit_cmd *cmd = cgit_get_cmd(ctx);
598 606
607 if (!cmd && ctx->repo)
608 fallback_cmd = "summary";
609
599 html("<table id='header'>\n"); 610 html("<table id='header'>\n");
600 html("<tr>\n"); 611 html("<tr>\n");
@@ -615,5 +626,5 @@ void cgit_print_pageheader(struct cgit_context *ctx)
615 html("</td><td class='form'>"); 626 html("</td><td class='form'>");
616 html("<form method='get' action=''>\n"); 627 html("<form method='get' action=''>\n");
617 add_hidden_formfields(0, 1, ctx->qry.page); 628 cgit_add_hidden_formfields(0, 1, ctx->qry.page);
618 html("<select name='h' onchange='this.form.submit();'>\n"); 629 html("<select name='h' onchange='this.form.submit();'>\n");
619 for_each_branch_ref(print_branch_option, ctx->qry.head); 630 for_each_branch_ref(print_branch_option, ctx->qry.head);
@@ -652,4 +663,7 @@ void cgit_print_pageheader(struct cgit_context *ctx)
652 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, 663 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head,
653 ctx->qry.sha1, ctx->qry.sha2, NULL); 664 ctx->qry.sha1, ctx->qry.sha2, NULL);
665 if (ctx->repo->max_stats)
666 cgit_stats_link("stats", NULL, hc(cmd, "stats"),
667 ctx->qry.head, NULL);
654 if (ctx->repo->readme) 668 if (ctx->repo->readme)
655 reporevlink("about", "about", NULL, 669 reporevlink("about", "about", NULL,
@@ -662,5 +676,5 @@ void cgit_print_pageheader(struct cgit_context *ctx)
662 ctx->qry.path, NULL)); 676 ctx->qry.path, NULL));
663 html("'>\n"); 677 html("'>\n");
664 add_hidden_formfields(1, 0, "log"); 678 cgit_add_hidden_formfields(1, 0, "log");
665 html("<select name='qt'>\n"); 679 html("<select name='qt'>\n");
666 html_option("grep", "log msg", ctx->qry.grep); 680 html_option("grep", "log msg", ctx->qry.grep);