summaryrefslogtreecommitdiffabout
path: root/ui-shared.c
authorLars Hjemli <hjemli@gmail.com>2008-12-07 12:17:21 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-12-07 12:17:21 (UTC)
commitfb2f3f6c29bad733723152893c5246a756e4cada (patch) (unidiff)
tree5b2953c0c116f276ca48beee676a6662b6329d95 /ui-shared.c
parentc6a6aa2186daf39814baa0e71378c2e9e1041002 (diff)
downloadcgit-fb2f3f6c29bad733723152893c5246a756e4cada.zip
cgit-fb2f3f6c29bad733723152893c5246a756e4cada.tar.gz
cgit-fb2f3f6c29bad733723152893c5246a756e4cada.tar.bz2
ui-stats: replace 'enable-stats' setting with 'max-stats'
The new 'max-stats' and 'repo.max-stats' settings makes it possible to define the maximum statistics period, both globally and per repo. Hence, it is now feasible to allow statistics on repositories with a high commit frequency, like linux-2.6, by setting repo.max-stats to e.g. 'month'. 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.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-shared.c b/ui-shared.c
index 0e688a0..97b9d46 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -548,170 +548,170 @@ int print_archive_ref(const char *refname, const unsigned char *sha1,
548 html_link_close(); 548 html_link_close();
549 return 0; 549 return 0;
550} 550}
551 551
552void add_hidden_formfields(int incl_head, int incl_search, char *page) 552void add_hidden_formfields(int incl_head, int incl_search, char *page)
553{ 553{
554 char *url; 554 char *url;
555 555
556 if (!ctx.cfg.virtual_root) { 556 if (!ctx.cfg.virtual_root) {
557 url = fmt("%s/%s", ctx.qry.repo, page); 557 url = fmt("%s/%s", ctx.qry.repo, page);
558 if (ctx.qry.path) 558 if (ctx.qry.path)
559 url = fmt("%s/%s", url, ctx.qry.path); 559 url = fmt("%s/%s", url, ctx.qry.path);
560 html_hidden("url", url); 560 html_hidden("url", url);
561 } 561 }
562 562
563 if (incl_head && ctx.qry.head && ctx.repo->defbranch && 563 if (incl_head && ctx.qry.head && ctx.repo->defbranch &&
564 strcmp(ctx.qry.head, ctx.repo->defbranch)) 564 strcmp(ctx.qry.head, ctx.repo->defbranch))
565 html_hidden("h", ctx.qry.head); 565 html_hidden("h", ctx.qry.head);
566 566
567 if (ctx.qry.sha1) 567 if (ctx.qry.sha1)
568 html_hidden("id", ctx.qry.sha1); 568 html_hidden("id", ctx.qry.sha1);
569 if (ctx.qry.sha2) 569 if (ctx.qry.sha2)
570 html_hidden("id2", ctx.qry.sha2); 570 html_hidden("id2", ctx.qry.sha2);
571 571
572 if (incl_search) { 572 if (incl_search) {
573 if (ctx.qry.grep) 573 if (ctx.qry.grep)
574 html_hidden("qt", ctx.qry.grep); 574 html_hidden("qt", ctx.qry.grep);
575 if (ctx.qry.search) 575 if (ctx.qry.search)
576 html_hidden("q", ctx.qry.search); 576 html_hidden("q", ctx.qry.search);
577 } 577 }
578} 578}
579 579
580char *hc(struct cgit_cmd *cmd, const char *page) 580char *hc(struct cgit_cmd *cmd, const char *page)
581{ 581{
582 return (strcmp(cmd->name, page) ? NULL : "active"); 582 return (strcmp(cmd->name, page) ? NULL : "active");
583} 583}
584 584
585void cgit_print_pageheader(struct cgit_context *ctx) 585void cgit_print_pageheader(struct cgit_context *ctx)
586{ 586{
587 struct cgit_cmd *cmd = cgit_get_cmd(ctx); 587 struct cgit_cmd *cmd = cgit_get_cmd(ctx);
588 588
589 html("<table id='header'>\n"); 589 html("<table id='header'>\n");
590 html("<tr>\n"); 590 html("<tr>\n");
591 html("<td class='logo' rowspan='2'><a href='"); 591 html("<td class='logo' rowspan='2'><a href='");
592 if (ctx->cfg.logo_link) 592 if (ctx->cfg.logo_link)
593 html_attr(ctx->cfg.logo_link); 593 html_attr(ctx->cfg.logo_link);
594 else 594 else
595 html_attr(cgit_rooturl()); 595 html_attr(cgit_rooturl());
596 html("'><img src='"); 596 html("'><img src='");
597 html_attr(ctx->cfg.logo); 597 html_attr(ctx->cfg.logo);
598 html("' alt='cgit logo'/></a></td>\n"); 598 html("' alt='cgit logo'/></a></td>\n");
599 599
600 html("<td class='main'>"); 600 html("<td class='main'>");
601 if (ctx->repo) { 601 if (ctx->repo) {
602 cgit_index_link("index", NULL, NULL, NULL, 0); 602 cgit_index_link("index", NULL, NULL, NULL, 0);
603 html(" : "); 603 html(" : ");
604 cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL); 604 cgit_summary_link(ctx->repo->name, ctx->repo->name, NULL, NULL);
605 html("</td><td class='form'>"); 605 html("</td><td class='form'>");
606 html("<form method='get' action=''>\n"); 606 html("<form method='get' action=''>\n");
607 add_hidden_formfields(0, 1, ctx->qry.page); 607 add_hidden_formfields(0, 1, ctx->qry.page);
608 html("<select name='h' onchange='this.form.submit();'>\n"); 608 html("<select name='h' onchange='this.form.submit();'>\n");
609 for_each_branch_ref(print_branch_option, ctx->qry.head); 609 for_each_branch_ref(print_branch_option, ctx->qry.head);
610 html("</select> "); 610 html("</select> ");
611 html("<input type='submit' name='' value='switch'/>"); 611 html("<input type='submit' name='' value='switch'/>");
612 html("</form>"); 612 html("</form>");
613 } else 613 } else
614 html_txt(ctx->cfg.root_title); 614 html_txt(ctx->cfg.root_title);
615 html("</td></tr>\n"); 615 html("</td></tr>\n");
616 616
617 html("<tr><td class='sub'>"); 617 html("<tr><td class='sub'>");
618 if (ctx->repo) { 618 if (ctx->repo) {
619 html_txt(ctx->repo->desc); 619 html_txt(ctx->repo->desc);
620 html("</td><td class='sub right'>"); 620 html("</td><td class='sub right'>");
621 html_txt(ctx->repo->owner); 621 html_txt(ctx->repo->owner);
622 } else { 622 } else {
623 if (ctx->cfg.root_desc) 623 if (ctx->cfg.root_desc)
624 html_txt(ctx->cfg.root_desc); 624 html_txt(ctx->cfg.root_desc);
625 else if (ctx->cfg.index_info) 625 else if (ctx->cfg.index_info)
626 html_include(ctx->cfg.index_info); 626 html_include(ctx->cfg.index_info);
627 } 627 }
628 html("</td></tr></table>\n"); 628 html("</td></tr></table>\n");
629 629
630 html("<table class='tabs'><tr><td>\n"); 630 html("<table class='tabs'><tr><td>\n");
631 if (ctx->repo) { 631 if (ctx->repo) {
632 cgit_summary_link("summary", NULL, hc(cmd, "summary"), 632 cgit_summary_link("summary", NULL, hc(cmd, "summary"),
633 ctx->qry.head); 633 ctx->qry.head);
634 cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head, 634 cgit_refs_link("refs", NULL, hc(cmd, "refs"), ctx->qry.head,
635 ctx->qry.sha1, NULL); 635 ctx->qry.sha1, NULL);
636 cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head, 636 cgit_log_link("log", NULL, hc(cmd, "log"), ctx->qry.head,
637 NULL, NULL, 0, NULL, NULL); 637 NULL, NULL, 0, NULL, NULL);
638 cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head, 638 cgit_tree_link("tree", NULL, hc(cmd, "tree"), ctx->qry.head,
639 ctx->qry.sha1, NULL); 639 ctx->qry.sha1, NULL);
640 cgit_commit_link("commit", NULL, hc(cmd, "commit"), 640 cgit_commit_link("commit", NULL, hc(cmd, "commit"),
641 ctx->qry.head, ctx->qry.sha1); 641 ctx->qry.head, ctx->qry.sha1);
642 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head, 642 cgit_diff_link("diff", NULL, hc(cmd, "diff"), ctx->qry.head,
643 ctx->qry.sha1, ctx->qry.sha2, NULL); 643 ctx->qry.sha1, ctx->qry.sha2, NULL);
644 if (ctx->repo->enable_stats) 644 if (ctx->repo->max_stats)
645 reporevlink("stats", "stats", NULL, hc(cmd, "stats"), 645 reporevlink("stats", "stats", NULL, hc(cmd, "stats"),
646 ctx->qry.head, NULL, NULL); 646 ctx->qry.head, NULL, NULL);
647 if (ctx->repo->readme) 647 if (ctx->repo->readme)
648 reporevlink("about", "about", NULL, 648 reporevlink("about", "about", NULL,
649 hc(cmd, "about"), ctx->qry.head, NULL, 649 hc(cmd, "about"), ctx->qry.head, NULL,
650 NULL); 650 NULL);
651 html("</td><td class='form'>"); 651 html("</td><td class='form'>");
652 html("<form class='right' method='get' action='"); 652 html("<form class='right' method='get' action='");
653 if (ctx->cfg.virtual_root) 653 if (ctx->cfg.virtual_root)
654 html_url_path(cgit_fileurl(ctx->qry.repo, "log", 654 html_url_path(cgit_fileurl(ctx->qry.repo, "log",
655 ctx->qry.path, NULL)); 655 ctx->qry.path, NULL));
656 html("'>\n"); 656 html("'>\n");
657 add_hidden_formfields(1, 0, "log"); 657 add_hidden_formfields(1, 0, "log");
658 html("<select name='qt'>\n"); 658 html("<select name='qt'>\n");
659 html_option("grep", "log msg", ctx->qry.grep); 659 html_option("grep", "log msg", ctx->qry.grep);
660 html_option("author", "author", ctx->qry.grep); 660 html_option("author", "author", ctx->qry.grep);
661 html_option("committer", "committer", ctx->qry.grep); 661 html_option("committer", "committer", ctx->qry.grep);
662 html("</select>\n"); 662 html("</select>\n");
663 html("<input class='txt' type='text' size='10' name='q' value='"); 663 html("<input class='txt' type='text' size='10' name='q' value='");
664 html_attr(ctx->qry.search); 664 html_attr(ctx->qry.search);
665 html("'/>\n"); 665 html("'/>\n");
666 html("<input type='submit' value='search'/>\n"); 666 html("<input type='submit' value='search'/>\n");
667 html("</form>\n"); 667 html("</form>\n");
668 } else { 668 } else {
669 site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0); 669 site_link(NULL, "index", NULL, hc(cmd, "repolist"), NULL, 0);
670 if (ctx->cfg.root_readme) 670 if (ctx->cfg.root_readme)
671 site_link("about", "about", NULL, hc(cmd, "about"), 671 site_link("about", "about", NULL, hc(cmd, "about"),
672 NULL, 0); 672 NULL, 0);
673 html("</td><td class='form'>"); 673 html("</td><td class='form'>");
674 html("<form method='get' action='"); 674 html("<form method='get' action='");
675 html_attr(cgit_rooturl()); 675 html_attr(cgit_rooturl());
676 html("'>\n"); 676 html("'>\n");
677 html("<input type='text' name='q' size='10' value='"); 677 html("<input type='text' name='q' size='10' value='");
678 html_attr(ctx->qry.search); 678 html_attr(ctx->qry.search);
679 html("'/>\n"); 679 html("'/>\n");
680 html("<input type='submit' value='search'/>\n"); 680 html("<input type='submit' value='search'/>\n");
681 html("</form>"); 681 html("</form>");
682 } 682 }
683 html("</td></tr></table>\n"); 683 html("</td></tr></table>\n");
684 html("<div class='content'>"); 684 html("<div class='content'>");
685} 685}
686 686
687void cgit_print_filemode(unsigned short mode) 687void cgit_print_filemode(unsigned short mode)
688{ 688{
689 if (S_ISDIR(mode)) 689 if (S_ISDIR(mode))
690 html("d"); 690 html("d");
691 else if (S_ISLNK(mode)) 691 else if (S_ISLNK(mode))
692 html("l"); 692 html("l");
693 else if (S_ISGITLINK(mode)) 693 else if (S_ISGITLINK(mode))
694 html("m"); 694 html("m");
695 else 695 else
696 html("-"); 696 html("-");
697 html_fileperm(mode >> 6); 697 html_fileperm(mode >> 6);
698 html_fileperm(mode >> 3); 698 html_fileperm(mode >> 3);
699 html_fileperm(mode); 699 html_fileperm(mode);
700} 700}
701 701
702void cgit_print_snapshot_links(const char *repo, const char *head, 702void cgit_print_snapshot_links(const char *repo, const char *head,
703 const char *hex, int snapshots) 703 const char *hex, int snapshots)
704{ 704{
705 const struct cgit_snapshot_format* f; 705 const struct cgit_snapshot_format* f;
706 char *filename; 706 char *filename;
707 707
708 for (f = cgit_snapshot_formats; f->suffix; f++) { 708 for (f = cgit_snapshot_formats; f->suffix; f++) {
709 if (!(snapshots & f->bit)) 709 if (!(snapshots & f->bit))
710 continue; 710 continue;
711 filename = fmt("%s-%s%s", cgit_repobasename(repo), hex, 711 filename = fmt("%s-%s%s", cgit_repobasename(repo), hex,
712 f->suffix); 712 f->suffix);
713 cgit_snapshot_link(filename, NULL, NULL, (char *)head, 713 cgit_snapshot_link(filename, NULL, NULL, (char *)head,
714 (char *)hex, filename); 714 (char *)hex, filename);
715 html("<br/>"); 715 html("<br/>");
716 } 716 }
717} 717}