summaryrefslogtreecommitdiffabout
path: root/ui-shared.c
authorLars Hjemli <hjemli@gmail.com>2009-01-27 19:16:37 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2009-01-27 19:16:37 (UTC)
commit7710178e45dee61e85ea77c4221309ce8c086f95 (patch) (unidiff)
tree281c5251777308f18c05d323183b28470445f4bc /ui-shared.c
parente78186dcb63ec67a38dddfcd8f91d2108583320b (diff)
parentb54ef9749c083afd86573112fad3b3ed8ee2d0e4 (diff)
downloadcgit-7710178e45dee61e85ea77c4221309ce8c086f95.zip
cgit-7710178e45dee61e85ea77c4221309ce8c086f95.tar.gz
cgit-7710178e45dee61e85ea77c4221309ce8c086f95.tar.bz2
Merge branch 'lh/stats'
Conflicts: cgit.c cgit.css cgit.h ui-tree.c Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-shared.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-shared.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/ui-shared.c b/ui-shared.c
index fba1ba6..4f28512 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -366,12 +366,18 @@ void cgit_diff_link(char *name, char *title, char *class, char *head,
366void cgit_patch_link(char *name, char *title, char *class, char *head, 366void cgit_patch_link(char *name, char *title, char *class, char *head,
367 char *rev) 367 char *rev)
368{ 368{
369 reporevlink("patch", name, title, class, head, rev, NULL); 369 reporevlink("patch", name, title, class, head, rev, NULL);
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{
374 char *page, *shortrev, *fullrev, *name; 380 char *page, *shortrev, *fullrev, *name;
375 381
376 fullrev = sha1_to_hex(obj->sha1); 382 fullrev = sha1_to_hex(obj->sha1);
377 shortrev = xstrdup(fullrev); 383 shortrev = xstrdup(fullrev);
@@ -554,13 +560,13 @@ int print_archive_ref(const char *refname, const unsigned char *sha1,
554 html_link_open(url, NULL, "menu"); 560 html_link_open(url, NULL, "menu");
555 html_txt(strlpart(buf, 20)); 561 html_txt(strlpart(buf, 20));
556 html_link_close(); 562 html_link_close();
557 return 0; 563 return 0;
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;
563 569
564 if (!ctx.cfg.virtual_root) { 570 if (!ctx.cfg.virtual_root) {
565 url = fmt("%s/%s", ctx.qry.repo, page); 571 url = fmt("%s/%s", ctx.qry.repo, page);
566 if (ctx.qry.path) 572 if (ctx.qry.path)
@@ -616,13 +622,13 @@ void cgit_print_pageheader(struct cgit_context *ctx)
616 if (ctx->repo) { 622 if (ctx->repo) {
617 cgit_index_link("index", NULL, NULL, NULL, 0); 623 cgit_index_link("index", NULL, NULL, NULL, 0);
618 html(" : "); 624 html(" : ");
619 cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL); 625 cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL);
620 html("</td><td class='form'>"); 626 html("</td><td class='form'>");
621 html("<form method='get' action=''>\n"); 627 html("<form method='get' action=''>\n");
622 add_hidden_formfields(0, 1, ctx->qry.page); 628 cgit_add_hidden_formfields(0, 1, ctx->qry.page);
623 html("<select name='h' onchange='this.form.submit();'>\n"); 629 html("<select name='h' onchange='this.form.submit();'>\n");
624 for_each_branch_ref(print_branch_option, ctx->qry.head); 630 for_each_branch_ref(print_branch_option, ctx->qry.head);
625 html("</select> "); 631 html("</select> ");
626 html("<input type='submit' name='' value='switch'/>"); 632 html("<input type='submit' name='' value='switch'/>");
627 html("</form>"); 633 html("</form>");
628 } else 634 } else
@@ -653,23 +659,26 @@ void cgit_print_pageheader(struct cgit_context *ctx)
653 cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, 659 cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head,
654 ctx->qry.sha1, NULL); 660 ctx->qry.sha1, NULL);
655 cgit_commit_link("commit", NULL, hc(cmd, "commit"), 661 cgit_commit_link("commit", NULL, hc(cmd, "commit"),
656 ctx->qry.head, ctx->qry.sha1); 662 ctx->qry.head, ctx->qry.sha1);
657 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, 663 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head,
658 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);
659 if (ctx->repo->readme) 668 if (ctx->repo->readme)
660 reporevlink("about", "about", NULL, 669 reporevlink("about", "about", NULL,
661 hc(cmd, "about"), ctx->qry.head, NULL, 670 hc(cmd, "about"), ctx->qry.head, NULL,
662 NULL); 671 NULL);
663 html("</td><td class='form'>"); 672 html("</td><td class='form'>");
664 html("<form class='right' method='get' action='"); 673 html("<form class='right' method='get' action='");
665 if (ctx->cfg.virtual_root) 674 if (ctx->cfg.virtual_root)
666 html_url_path(cgit_fileurl(ctx->qry.repo, "log", 675 html_url_path(cgit_fileurl(ctx->qry.repo, "log",
667 ctx->qry.path, NULL)); 676 ctx->qry.path, NULL));
668 html("'>\n"); 677 html("'>\n");
669 add_hidden_formfields(1, 0, "log"); 678 cgit_add_hidden_formfields(1, 0, "log");
670 html("<select name='qt'>\n"); 679 html("<select name='qt'>\n");
671 html_option("grep", "log msg", ctx->qry.grep); 680 html_option("grep", "log msg", ctx->qry.grep);
672 html_option("author", "author", ctx->qry.grep); 681 html_option("author", "author", ctx->qry.grep);
673 html_option("committer", "committer", ctx->qry.grep); 682 html_option("committer", "committer", ctx->qry.grep);
674 html("</select>\n"); 683 html("</select>\n");
675 html("<input class='txt' type='text' size='10' name='q' value='"); 684 html("<input class='txt' type='text' size='10' name='q' value='");