summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2007-06-17 22:18:42 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-06-18 06:29:53 (UTC)
commitb8be028a309381b83abe924f5e8e01cf02b121a2 (patch) (unidiff)
tree669b8ac253e8cc1d8568723167764f5428ae5d83
parent4a0be586662843382ecfa53af34a13b291312bc0 (diff)
downloadcgit-b8be028a309381b83abe924f5e8e01cf02b121a2.zip
cgit-b8be028a309381b83abe924f5e8e01cf02b121a2.tar.gz
cgit-b8be028a309381b83abe924f5e8e01cf02b121a2.tar.bz2
Add more menuitems on repo pages
In an attempt to get better usability, a set of 'semistatic' menuitems are added to the page header on all pages except the repository index. The menuitems (summary, log, files, commit and diff) honours the current branch and revision. To switch the current branch one can use the branch links on the summary page. The backlink to the repository index page is now available by clicking the static page heading. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--cgit.css14
-rw-r--r--ui-shared.c51
2 files changed, 49 insertions, 16 deletions
diff --git a/cgit.css b/cgit.css
index cda437e..9c79c32 100644
--- a/cgit.css
+++ b/cgit.css
@@ -92,12 +92,20 @@ td#header {
92 font-size: 150%; 92 font-size: 150%;
93 font-weight: bold; 93 font-weight: bold;
94 padding: 0.2em 0.5em; 94 padding: 0.2em 0.5em;
95 vertical-align: text-bottom; 95 vertical-align: text-bottom;
96} 96}
97 97
98td#header a {
99 color: #666;
100}
101
102td#header a:hoved {
103 text-decoration: underline;
104}
105
98td#logo { 106td#logo {
99 text-align: right; 107 text-align: right;
100 vertical-align: middle; 108 vertical-align: middle;
101 padding-right: 0.5em; 109 padding-right: 0.5em;
102} 110}
103 111
@@ -113,17 +121,19 @@ td#crumb {
113 font-weight: bold; 121 font-weight: bold;
114} 122}
115 123
116td#crumb a { 124td#crumb a {
117 color: #ccc; 125 color: #ccc;
118 background-color: #666; 126 background-color: #666;
127 padding: 0em 0.5em 0em 0.5em;
119} 128}
120 129
121td#crumb a:hover { 130td#crumb a:hover {
122 color: #eee; 131 color: #666;
123 background-color: #666; 132 background-color: #ccc;
133 text-decoration: none;
124} 134}
125 135
126td#search { 136td#search {
127 text-align: right; 137 text-align: right;
128 vertical-align: middle; 138 vertical-align: middle;
129 padding-right: 0.5em; 139 padding-right: 0.5em;
diff --git a/ui-shared.c b/ui-shared.c
index 15d8254..383b8ac 100644
--- a/ui-shared.c
+++ b/ui-shared.c
@@ -108,26 +108,30 @@ static char *repolink(char *title, char *class, char *page, char *head,
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 = "&amp;"; 132 delim = "&amp;";
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);
@@ -276,25 +280,44 @@ void cgit_print_docend()
276 html("</body>\n</html>\n"); 280 html("</body>\n</html>\n");
277} 281}
278 282
279void cgit_print_pageheader(char *title, int show_search) 283void 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(") : &nbsp;");
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());