diff options
| -rw-r--r-- | ui-summary.c | 32 | 
1 files changed, 19 insertions, 13 deletions
| diff --git a/ui-summary.c b/ui-summary.c index f6120f9..3410e1a 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -8,7 +8,7 @@  #include "cgit.h" -static int items; +static int header;  static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  				int flags, void *cb_data) @@ -69,6 +69,15 @@ static void cgit_print_object_ref(struct object *obj)  	html_link_close();  } +static void print_tag_header() +{ +	html("<tr class='nohover'><th class='left'>Tag</th>" +	     "<th class='left'>Created</th>" +	     "<th class='left'>Author</th>" +	     "<th class='left'>Reference</th></tr>\n"); +	header = 1; +} +  static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,  				int flags, void *cb_data)  { @@ -85,13 +94,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,  		tag = lookup_tag(sha1);  		if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag)))  			return 2; -		if (!items) { -			html("<tr class='nohover'><th class='left'>Tag</th>" -			     "<th class='left'>Created</th>" -			     "<th class='left'>Author</th>" -			     "<th class='left'>Reference</th></tr>\n"); -		} -		items++; +		if (!header) +			print_tag_header();  		html("<tr><td>");  		url = cgit_pageurl(cgit_query_repo, "view",  				   fmt("id=%s", sha1_to_hex(sha1))); @@ -108,6 +112,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,  		cgit_print_object_ref(tag->tagged);  		html("</td></tr>\n");  	} else { +		if (!header) +			print_tag_header();  		html("<tr><td>");  		html_txt(buf);  		html("</td><td colspan='2'/><td>"); @@ -139,11 +145,11 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,  	} else if (obj->type != OBJ_BLOB) {  		return 0;  	} -	if (!items) { +	if (!header) {  		html("<table>");  		html("<tr><th>Downloads</th></tr>"); +		header = 1;  	} -	items++;  	html("<tr><td>");  	url = cgit_pageurl(cgit_query_repo, "blob",  			   fmt("id=%s&path=%s", sha1_to_hex(sha1), @@ -166,15 +172,15 @@ static void cgit_print_branches()  static void cgit_print_tags()  { -	items = 0; +	header = 0;  	for_each_tag_ref(cgit_print_tag_cb, NULL);  }  static void cgit_print_archives()  { -	items = 0; +	header = 0;  	for_each_ref(cgit_print_archive_cb, NULL); -	if (items) +	if (header)  		html("</table>");  } | 
