-rw-r--r-- | ui-shared.c | 51 |
1 files changed, 37 insertions, 14 deletions
diff --git a/ui-shared.c b/ui-shared.c index 15d8254..383b8ac 100644 --- a/ui-shared.c +++ b/ui-shared.c | |||
@@ -102,38 +102,42 @@ static char *repolink(char *title, char *class, char *page, char *head, | |||
102 | html(" class='"); | 102 | html(" class='"); |
103 | html_attr(class); | 103 | html_attr(class); |
104 | html("'"); | 104 | html("'"); |
105 | } | 105 | } |
106 | html(" href='"); | 106 | html(" href='"); |
107 | if (cgit_virtual_root) { | 107 | if (cgit_virtual_root) { |
108 | html_attr(cgit_virtual_root); | 108 | html_attr(cgit_virtual_root); |
109 | if (cgit_virtual_root[strlen(cgit_virtual_root) - 1] != '/') | 109 | if (cgit_virtual_root[strlen(cgit_virtual_root) - 1] != '/') |
110 | html("/"); | 110 | html("/"); |
111 | html_attr(cgit_repo->url); | 111 | html_attr(cgit_repo->url); |
112 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') | 112 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') |
113 | html("/"); | 113 | html("/"); |
114 | html(page); | 114 | if (page) { |
115 | html("/"); | 115 | html(page); |
116 | if (path) | 116 | html("/"); |
117 | html_attr(path); | 117 | if (path) |
118 | html_attr(path); | ||
119 | } | ||
118 | } else { | 120 | } else { |
119 | html(cgit_script_name); | 121 | html(cgit_script_name); |
120 | html("?url="); | 122 | html("?url="); |
121 | html_attr(cgit_repo->url); | 123 | html_attr(cgit_repo->url); |
122 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') | 124 | if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/') |
123 | html("/"); | 125 | html("/"); |
124 | html(page); | 126 | if (page) { |
125 | html("/"); | 127 | html(page); |
126 | if (path) | 128 | html("/"); |
127 | html_attr(path); | 129 | if (path) |
130 | html_attr(path); | ||
131 | } | ||
128 | delim = "&"; | 132 | delim = "&"; |
129 | } | 133 | } |
130 | if (head && strcmp(head, cgit_repo->defbranch)) { | 134 | if (head && strcmp(head, cgit_repo->defbranch)) { |
131 | html(delim); | 135 | html(delim); |
132 | html("h="); | 136 | html("h="); |
133 | html_attr(head); | 137 | html_attr(head); |
134 | delim = "&"; | 138 | delim = "&"; |
135 | } | 139 | } |
136 | return fmt("%s", delim); | 140 | return fmt("%s", delim); |
137 | } | 141 | } |
138 | 142 | ||
139 | static void reporevlink(char *page, char *name, char *title, char *class, | 143 | static void reporevlink(char *page, char *name, char *title, char *class, |
@@ -270,37 +274,56 @@ void cgit_print_docstart(char *title, struct cacheitem *item) | |||
270 | html("<body>\n"); | 274 | html("<body>\n"); |
271 | } | 275 | } |
272 | 276 | ||
273 | void cgit_print_docend() | 277 | void cgit_print_docend() |
274 | { | 278 | { |
275 | html("</td></tr></table>"); | 279 | html("</td></tr></table>"); |
276 | html("</body>\n</html>\n"); | 280 | html("</body>\n</html>\n"); |
277 | } | 281 | } |
278 | 282 | ||
279 | void cgit_print_pageheader(char *title, int show_search) | 283 | void cgit_print_pageheader(char *title, int show_search) |
280 | { | 284 | { |
281 | html("<table id='layout'>"); | 285 | html("<table id='layout'>"); |
282 | html("<tr><td id='header'>"); | 286 | html("<tr><td id='header'><a href='"); |
283 | html(cgit_root_title); | 287 | html_attr(cgit_rooturl()); |
284 | html("</td><td id='logo'>"); | 288 | html("'>"); |
289 | html_txt(cgit_root_title); | ||
290 | html("</a></td><td id='logo'>"); | ||
285 | html("<a href='"); | 291 | html("<a href='"); |
286 | html_attr(cgit_logo_link); | 292 | html_attr(cgit_logo_link); |
287 | htmlf("'><img src='%s' alt='logo'/></a>", cgit_logo); | 293 | htmlf("'><img src='%s' alt='logo'/></a>", cgit_logo); |
288 | html("</td></tr>"); | 294 | html("</td></tr>"); |
289 | html("<tr><td id='crumb'>"); | 295 | html("<tr><td id='crumb'>"); |
290 | htmlf("<a href='%s'>root</a>", cgit_rooturl()); | ||
291 | if (cgit_query_repo) { | 296 | if (cgit_query_repo) { |
292 | htmlf(" : <a href='%s'>", cgit_repourl(cgit_repo->url)); | ||
293 | html_txt(cgit_repo->name); | 297 | html_txt(cgit_repo->name); |
294 | htmlf("</a> : %s", title); | 298 | html(" ("); |
299 | html_txt(cgit_query_head); | ||
300 | html(") : "); | ||
301 | reporevlink(NULL, "summary", NULL, NULL, cgit_query_head, | ||
302 | NULL, NULL); | ||
303 | html(" "); | ||
304 | cgit_log_link("log", NULL, NULL, cgit_query_head, | ||
305 | cgit_query_sha1, cgit_query_path); | ||
306 | html(" "); | ||
307 | cgit_tree_link("files", NULL, NULL, cgit_query_head, | ||
308 | cgit_query_sha1, cgit_query_path); | ||
309 | html(" "); | ||
310 | cgit_commit_link("commit", NULL, NULL, cgit_query_head, | ||
311 | cgit_query_sha1); | ||
312 | html(" "); | ||
313 | cgit_diff_link("diff", NULL, NULL, cgit_query_head, | ||
314 | cgit_query_sha1, cgit_query_sha2, | ||
315 | cgit_query_path); | ||
316 | } else { | ||
317 | html_txt("Index of repositories"); | ||
295 | } | 318 | } |
296 | html("</td>"); | 319 | html("</td>"); |
297 | html("<td id='search'>"); | 320 | html("<td id='search'>"); |
298 | if (show_search) { | 321 | if (show_search) { |
299 | html("<form method='get' action='"); | 322 | html("<form method='get' action='"); |
300 | html_attr(cgit_currurl()); | 323 | html_attr(cgit_currurl()); |
301 | html("'>"); | 324 | html("'>"); |
302 | if (!cgit_virtual_root) { | 325 | if (!cgit_virtual_root) { |
303 | if (cgit_query_repo) | 326 | if (cgit_query_repo) |
304 | html_hidden("r", cgit_query_repo); | 327 | html_hidden("r", cgit_query_repo); |
305 | if (cgit_query_page) | 328 | if (cgit_query_page) |
306 | html_hidden("p", cgit_query_page); | 329 | html_hidden("p", cgit_query_page); |