diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2007-01-17 01:10:39 +0100 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2007-01-17 01:10:39 +0100 | 
| commit | 23734c5a2b607dca2d634cafdc63202a687f26d3 (patch) | |
| tree | a8c240e9299936ffad6dbab335175af51372f32c | |
| parent | a69061fdb7380d73715aeb3a0da6e91a24df90e4 (diff) | |
| download | cgit-23734c5a2b607dca2d634cafdc63202a687f26d3.tar.gz cgit-23734c5a2b607dca2d634cafdc63202a687f26d3.tar.bz2 cgit-23734c5a2b607dca2d634cafdc63202a687f26d3.zip | |
Extend repo summary with tag list
Show all tags in the repo below the branch list.
Signed-off-by: Lars Hjemli <hjemli@gmail.com>
| -rw-r--r-- | cgit.css | 8 | ||||
| -rw-r--r-- | ui-summary.c | 74 | 
2 files changed, 72 insertions, 10 deletions
| @@ -8,9 +8,9 @@ body {  h2 { -	font-size: 100%; +	font-size: 120%;  	font-weight: bold; -	margin-bottom: 0.1em; +	margin-bottom: 0.5em;  }  a { @@ -33,9 +33,13 @@ table.list tr {  table.list tr:hover {  	background: #eeb;  } +table.list tr.nohover:hover { +	background: white; +}  table.list th {  	font-weight: normal;  	background: #ddd; +	border-top: solid 1px #aaa;  	border-bottom: solid 1px #aaa;  	padding: 0.1em 0.5em 0.1em 0.5em;  	vertical-align: baseline; diff --git a/ui-summary.c b/ui-summary.c index de95053..1591632 100644 --- a/ui-summary.c +++ b/ui-summary.c @@ -15,6 +15,7 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  	struct commitinfo *info;  	char buf[256], *url; +	strncpy(buf, refname, sizeof(buf));  	commit = lookup_commit(sha1);  	if (commit && !parse_commit(commit)){  		info = cgit_parse_commit(commit); @@ -22,26 +23,72 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  		url = cgit_pageurl(cgit_query_repo, "log",   				   fmt("h=%s", refname));  		html_link_open(url, NULL, NULL); -		strncpy(buf, refname, sizeof(buf));  		html_txt(buf);  		html_link_close();  		html("</td><td>");  		cgit_print_date(commit->date);  		html("</td><td>"); +		html_txt(info->author); +		html("</td><td>");  		url = cgit_pageurl(cgit_query_repo, "commit",   				   fmt("id=%s", sha1_to_hex(sha1)));  		html_link_open(url, NULL, NULL);  		html_ntxt(80, info->subject);  		html_link_close(); -		html("</td><td>"); -		html_txt(info->author);  		html("</td></tr>\n");  		cgit_free_commitinfo(info);  	} else {  		html("<tr><td>");  		html_txt(buf); +		html("</td><td colspan='3'>"); +		htmlf("*** bad ref %s ***", sha1_to_hex(sha1)); +		html("</td></tr>\n"); +	} +	return 0; +} + +static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1, +				int flags, void *cb_data) +{ +	struct tag *tag; +	struct taginfo *info; +	char buf[256], *page, *url; + +	strncpy(buf, refname, sizeof(buf)); +	tag = lookup_tag(sha1); +	if (tag && !parse_tag(tag) && (info = cgit_parse_tag(tag))){ +		html("<tr><td>"); +		url = cgit_pageurl(cgit_query_repo, "view",  +				   fmt("id=%s", sha1_to_hex(sha1))); +		html_link_open(url, NULL, NULL); +		html_txt(buf); +		html_link_close(); +		html("</td><td>"); +		if (info->tagger_date > 0) +			cgit_print_date(info->tagger_date);  		html("</td><td>"); -		htmlf("*** bad ref %s", sha1_to_hex(sha1)); +		if (info->tagger) +			html(info->tagger); +		html("</td><td>"); +		if (tag->tagged->type == OBJ_COMMIT) +			page = "commit"; +		else if (tag->tagged->type == OBJ_TREE) +			page = "tree"; +		else +			page = "view"; +		 +		url = cgit_pageurl(cgit_query_repo, page,  +				   fmt("id=%s", sha1_to_hex(tag->tagged->sha1))); +		html_link_open(url, NULL, NULL); +		htmlf("%s %s", type_names[tag->tagged->type],  +		      sha1_to_hex(tag->tagged->sha1)); +		html_link_close(); +		html("</td></tr>\n"); +	} else { +		html("<tr><td>"); +		html_txt(buf); +		html("</td><td colspan='3'>"); +		htmlf("*** bad ref %s ***", sha1_to_hex(sha1));  		html("</td></tr>\n");  	}  	return 0; @@ -49,13 +96,20 @@ static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,  static void cgit_print_branches()  { -	html("<table class='list nowrap'>");  	html("<tr><th class='left'>Branch</th>"  	     "<th class='left'>Updated</th>" -	     "<th class='left'>Commit subject</th>" -	     "<th class='left'>Author</th></tr>\n"); +	     "<th class='left'>Author</th>" +	     "<th class='left'>Head commit</th></tr>\n");  	for_each_branch_ref(cgit_print_branch_cb, NULL); -	html("</table>"); +} + +static void cgit_print_tags() +{ +	html("<tr><th class='left'>Tag</th>" +	     "<th class='left'>Created</th>" +	     "<th class='left'>Author</th>" +	     "<th class='left'>Reference</th></tr>\n"); +	for_each_tag_ref(cgit_print_tag_cb, NULL);  }  void cgit_print_summary() @@ -63,5 +117,9 @@ void cgit_print_summary()  	html("<h2>");  	html_txt("Repo summary page");  	html("</h2>"); +	html("<table class='list nowrap'>");  	cgit_print_branches(); +	html("<tr class='nohover'><td colspan='4'> </td></tr>"); +	cgit_print_tags(); +	html("</table>");  } | 
