summaryrefslogtreecommitdiffabout
path: root/ui-summary.c
authorLars Hjemli <hjemli@gmail.com>2007-05-14 22:07:37 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-05-14 22:07:37 (UTC)
commit495e39677326284ea13b2f6d76195d6800c2a450 (patch) (unidiff)
tree21666895a947bb33c6722b8b453f1f1b5a56f638 /ui-summary.c
parent9927e63f387e6c9328eb3c347ecb0e339f8ac023 (diff)
downloadcgit-495e39677326284ea13b2f6d76195d6800c2a450.zip
cgit-495e39677326284ea13b2f6d76195d6800c2a450.tar.gz
cgit-495e39677326284ea13b2f6d76195d6800c2a450.tar.bz2
Show tag heading even if first tag is of the lightweight kind
The tag printing code waited for valid tags before printing the table heading, but forgot to count unannotated tags. This fixes it. Noticed by Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (limited to 'ui-summary.c') (more/less context) (ignore whitespace changes)
-rw-r--r--ui-summary.c32
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 @@
8 8
9#include "cgit.h" 9#include "cgit.h"
10 10
11static int items; 11static int header;
12 12
13static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1, 13static int cgit_print_branch_cb(const char *refname, const unsigned char *sha1,
14 int flags, void *cb_data) 14 int flags, void *cb_data)
@@ -69,6 +69,15 @@ static void cgit_print_object_ref(struct object *obj)
69 html_link_close(); 69 html_link_close();
70} 70}
71 71
72static void print_tag_header()
73{
74 html("<tr class='nohover'><th class='left'>Tag</th>"
75 "<th class='left'>Created</th>"
76 "<th class='left'>Author</th>"
77 "<th class='left'>Reference</th></tr>\n");
78 header = 1;
79}
80
72static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1, 81static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
73 int flags, void *cb_data) 82 int flags, void *cb_data)
74{ 83{
@@ -85,13 +94,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
85 tag = lookup_tag(sha1); 94 tag = lookup_tag(sha1);
86 if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag))) 95 if (!tag || parse_tag(tag) || !(info = cgit_parse_tag(tag)))
87 return 2; 96 return 2;
88 if (!items) { 97 if (!header)
89 html("<tr class='nohover'><th class='left'>Tag</th>" 98 print_tag_header();
90 "<th class='left'>Created</th>"
91 "<th class='left'>Author</th>"
92 "<th class='left'>Reference</th></tr>\n");
93 }
94 items++;
95 html("<tr><td>"); 99 html("<tr><td>");
96 url = cgit_pageurl(cgit_query_repo, "view", 100 url = cgit_pageurl(cgit_query_repo, "view",
97 fmt("id=%s", sha1_to_hex(sha1))); 101 fmt("id=%s", sha1_to_hex(sha1)));
@@ -108,6 +112,8 @@ static int cgit_print_tag_cb(const char *refname, const unsigned char *sha1,
108 cgit_print_object_ref(tag->tagged); 112 cgit_print_object_ref(tag->tagged);
109 html("</td></tr>\n"); 113 html("</td></tr>\n");
110 } else { 114 } else {
115 if (!header)
116 print_tag_header();
111 html("<tr><td>"); 117 html("<tr><td>");
112 html_txt(buf); 118 html_txt(buf);
113 html("</td><td colspan='2'/><td>"); 119 html("</td><td colspan='2'/><td>");
@@ -139,11 +145,11 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
139 } else if (obj->type != OBJ_BLOB) { 145 } else if (obj->type != OBJ_BLOB) {
140 return 0; 146 return 0;
141 } 147 }
142 if (!items) { 148 if (!header) {
143 html("<table>"); 149 html("<table>");
144 html("<tr><th>Downloads</th></tr>"); 150 html("<tr><th>Downloads</th></tr>");
151 header = 1;
145 } 152 }
146 items++;
147 html("<tr><td>"); 153 html("<tr><td>");
148 url = cgit_pageurl(cgit_query_repo, "blob", 154 url = cgit_pageurl(cgit_query_repo, "blob",
149 fmt("id=%s&path=%s", sha1_to_hex(sha1), 155 fmt("id=%s&path=%s", sha1_to_hex(sha1),
@@ -166,15 +172,15 @@ static void cgit_print_branches()
166 172
167static void cgit_print_tags() 173static void cgit_print_tags()
168{ 174{
169 items = 0; 175 header = 0;
170 for_each_tag_ref(cgit_print_tag_cb, NULL); 176 for_each_tag_ref(cgit_print_tag_cb, NULL);
171} 177}
172 178
173static void cgit_print_archives() 179static void cgit_print_archives()
174{ 180{
175 items = 0; 181 header = 0;
176 for_each_ref(cgit_print_archive_cb, NULL); 182 for_each_ref(cgit_print_archive_cb, NULL);
177 if (items) 183 if (header)
178 html("</table>"); 184 html("</table>");
179} 185}
180 186