summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.h2
-rw-r--r--ui-shared.c6
-rw-r--r--ui-summary.c13
3 files changed, 21 insertions, 0 deletions
diff --git a/cgit.h b/cgit.h
index d9a15f4..f8f0316 100644
--- a/cgit.h
+++ b/cgit.h
@@ -233,12 +233,14 @@ extern const char *cgit_repobasename(const char *reponame);
233extern void cgit_tree_link(char *name, char *title, char *class, char *head, 233extern void cgit_tree_link(char *name, char *title, char *class, char *head,
234 char *rev, char *path); 234 char *rev, char *path);
235extern void cgit_log_link(char *name, char *title, char *class, char *head, 235extern void cgit_log_link(char *name, char *title, char *class, char *head,
236 char *rev, char *path, int ofs); 236 char *rev, char *path, int ofs);
237extern void cgit_commit_link(char *name, char *title, char *class, char *head, 237extern void cgit_commit_link(char *name, char *title, char *class, char *head,
238 char *rev); 238 char *rev);
239extern void cgit_refs_link(char *name, char *title, char *class, char *head,
240 char *rev, char *path);
239extern void cgit_snapshot_link(char *name, char *title, char *class, 241extern void cgit_snapshot_link(char *name, char *title, char *class,
240 char *head, char *rev, char *archivename); 242 char *head, char *rev, char *archivename);
241extern void cgit_diff_link(char *name, char *title, char *class, char *head, 243extern void cgit_diff_link(char *name, char *title, char *class, char *head,
242 char *new_rev, char *old_rev, char *path); 244 char *new_rev, char *old_rev, char *path);
243 245
244extern void cgit_object_link(struct object *obj); 246extern void cgit_object_link(struct object *obj);
diff --git a/ui-shared.c b/ui-shared.c
index 5c5bcf3..e4bb98f 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -224,12 +224,18 @@ void cgit_commit_link(char *name, char *title, char *class, char *head,
224 name[cgit_max_msg_len - 2] = '.'; 224 name[cgit_max_msg_len - 2] = '.';
225 name[cgit_max_msg_len - 3] = '.'; 225 name[cgit_max_msg_len - 3] = '.';
226 } 226 }
227 reporevlink("commit", name, title, class, head, rev, NULL); 227 reporevlink("commit", name, title, class, head, rev, NULL);
228} 228}
229 229
230void cgit_refs_link(char *name, char *title, char *class, char *head,
231 char *rev, char *path)
232{
233 reporevlink("refs", name, title, class, head, rev, path);
234}
235
230void cgit_snapshot_link(char *name, char *title, char *class, char *head, 236void cgit_snapshot_link(char *name, char *title, char *class, char *head,
231 char *rev, char *archivename) 237 char *rev, char *archivename)
232{ 238{
233 reporevlink("snapshot", name, title, class, head, rev, archivename); 239 reporevlink("snapshot", name, title, class, head, rev, archivename);
234} 240}
235 241
diff --git a/ui-summary.c b/ui-summary.c
index 97f1b57..016fea2 100644
--- a/ui-summary.c
+++ b/ui-summary.c
@@ -163,12 +163,19 @@ static int cgit_print_archive_cb(const char *refname, const unsigned char *sha1,
163 html_txt(buf); 163 html_txt(buf);
164 html_link_close(); 164 html_link_close();
165 html("</td></tr>"); 165 html("</td></tr>");
166 return 0; 166 return 0;
167} 167}
168 168
169static void print_refs_link(char *path)
170{
171 html("<tr class='nohover'><td colspan='4'>");
172 cgit_refs_link("[...]", NULL, NULL, cgit_query_head, NULL, path);
173 html("</td></tr>");
174}
175
169void cgit_print_branches(int maxcount) 176void cgit_print_branches(int maxcount)
170{ 177{
171 struct reflist list; 178 struct reflist list;
172 int i; 179 int i;
173 180
174 html("<tr class='nohover'><th class='left'>Branch</th>" 181 html("<tr class='nohover'><th class='left'>Branch</th>"
@@ -187,12 +194,15 @@ void cgit_print_branches(int maxcount)
187 qsort(list.refs, list.count, sizeof(*list.refs), cmp_branch_age); 194 qsort(list.refs, list.count, sizeof(*list.refs), cmp_branch_age);
188 qsort(list.refs, maxcount, sizeof(*list.refs), cmp_ref_name); 195 qsort(list.refs, maxcount, sizeof(*list.refs), cmp_ref_name);
189 } 196 }
190 197
191 for(i=0; i<maxcount; i++) 198 for(i=0; i<maxcount; i++)
192 cgit_print_branch(list.refs[i]); 199 cgit_print_branch(list.refs[i]);
200
201 if (maxcount < list.count)
202 print_refs_link("heads");
193} 203}
194 204
195void cgit_print_tags(int maxcount) 205void cgit_print_tags(int maxcount)
196{ 206{
197 struct reflist list; 207 struct reflist list;
198 int i; 208 int i;
@@ -208,12 +218,15 @@ void cgit_print_tags(int maxcount)
208 maxcount = list.count; 218 maxcount = list.count;
209 else if (maxcount > list.count) 219 else if (maxcount > list.count)
210 maxcount = list.count; 220 maxcount = list.count;
211 print_tag_header(); 221 print_tag_header();
212 for(i=0; i<maxcount; i++) 222 for(i=0; i<maxcount; i++)
213 print_tag(list.refs[i]); 223 print_tag(list.refs[i]);
224
225 if (maxcount < list.count)
226 print_refs_link("tags");
214} 227}
215 228
216static void cgit_print_archives() 229static void cgit_print_archives()
217{ 230{
218 header = 0; 231 header = 0;
219 for_each_ref(cgit_print_archive_cb, NULL); 232 for_each_ref(cgit_print_archive_cb, NULL);