-rw-r--r-- | ui-summary.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ui-summary.c b/ui-summary.c index 97f1b57..016fea2 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -157,69 +157,82 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1, } html("<tr><td>"); url = cgit_pageurl(cgit_query_repo, "blob", fmt("id=%s&path=%s", sha1_to_hex(fileid), buf)); html_link_open(url, NULL, NULL); html_txt(buf); html_link_close(); html("</td></tr>"); return 0; } +static void print_refs_link(char *path) +{ + html("<tr class='nohover'><td colspan='4'>"); + cgit_refs_link("[...]", NULL, NULL, cgit_query_head, NULL, path); + html("</td></tr>"); +} + void cgit_print_branches(int maxcount) { struct reflist list; int i; html("<tr class='nohover'><th class='left'>Branch</th>" "<th class='left'>Idle</th>" "<th class='left'>Author</th>" "<th class='left'>Head commit</th></tr>\n"); list.refs = NULL; list.alloc = list.count = 0; for_each_branch_ref(cgit_refs_cb, &list); if (maxcount == 0 || maxcount > list.count) maxcount = list.count; if (maxcount < list.count) { qsort(list.refs, list.count, sizeof(*list.refs), cmp_branch_age); qsort(list.refs, maxcount, sizeof(*list.refs), cmp_ref_name); } for(i=0; i<maxcount; i++) cgit_print_branch(list.refs[i]); + + if (maxcount < list.count) + print_refs_link("heads"); } void cgit_print_tags(int maxcount) { struct reflist list; int i; header = 0; list.refs = NULL; list.alloc = list.count = 0; for_each_tag_ref(cgit_refs_cb, &list); if (list.count == 0) return; qsort(list.refs, list.count, sizeof(*list.refs), cmp_tag_age); if (!maxcount) maxcount = list.count; else if (maxcount > list.count) maxcount = list.count; print_tag_header(); for(i=0; i<maxcount; i++) print_tag(list.refs[i]); + + if (maxcount < list.count) + print_refs_link("tags"); } static void cgit_print_archives() { header = 0; for_each_ref(cgit_print_archive_cb, NULL); if (header) html("</table>"); } void cgit_print_summary() { |