Merge branch 'lh/menu'

* lh/menu:
  Add ofs argument to cgit_log_link and use it in ui-log.c
  Add trim_end() and use it to remove trailing slashes from repo paths
  Do not include current path in the "tree" menu link
  Add setting to enable/disable extra links on index page
  Change S/L/T to summary/log/tree
  Change "files" to "tree"
  Include querystring as part of cached filename for repo summary page
  Add more menuitems on repo pages
This commit is contained in:
Lars Hjemli
2007-06-29 20:32:08 +02:00
11 changed files with 145 additions and 53 deletions

View File

@ -111,20 +111,24 @@ static char *repolink(char *title, char *class, char *page, char *head,
html_attr(cgit_repo->url);
if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/')
html("/");
html(page);
html("/");
if (path)
html_attr(path);
if (page) {
html(page);
html("/");
if (path)
html_attr(path);
}
} else {
html(cgit_script_name);
html("?url=");
html_attr(cgit_repo->url);
if (cgit_repo->url[strlen(cgit_repo->url) - 1] != '/')
html("/");
html(page);
html("/");
if (path)
html_attr(path);
if (page) {
html(page);
html("/");
if (path)
html_attr(path);
}
delim = "&";
}
if (head && strcmp(head, cgit_repo->defbranch)) {
@ -159,9 +163,25 @@ void cgit_tree_link(char *name, char *title, char *class, char *head,
}
void cgit_log_link(char *name, char *title, char *class, char *head,
char *rev, char *path)
char *rev, char *path, int ofs)
{
reporevlink("log", name, title, class, head, rev, path);
char *delim;
delim = repolink(title, class, "log", head, path);
if (rev && strcmp(rev, cgit_query_head)) {
html(delim);
html("id=");
html_attr(rev);
delim = "&";
}
if (ofs > 0) {
html(delim);
html("ofs=");
htmlf("%d", ofs);
}
html("'>");
html_txt(name);
html("</a>");
}
void cgit_commit_link(char *name, char *title, char *class, char *head,
@ -279,19 +299,38 @@ void cgit_print_docend()
void cgit_print_pageheader(char *title, int show_search)
{
html("<table id='layout'>");
html("<tr><td id='header'>");
html(cgit_root_title);
html("</td><td id='logo'>");
html("<tr><td id='header'><a href='");
html_attr(cgit_rooturl());
html("'>");
html_txt(cgit_root_title);
html("</a></td><td id='logo'>");
html("<a href='");
html_attr(cgit_logo_link);
htmlf("'><img src='%s' alt='logo'/></a>", cgit_logo);
html("</td></tr>");
html("<tr><td id='crumb'>");
htmlf("<a href='%s'>root</a>", cgit_rooturl());
if (cgit_query_repo) {
htmlf(" : <a href='%s'>", cgit_repourl(cgit_repo->url));
html_txt(cgit_repo->name);
htmlf("</a> : %s", title);
html(" (");
html_txt(cgit_query_head);
html(") : &nbsp;");
reporevlink(NULL, "summary", NULL, NULL, cgit_query_head,
NULL, NULL);
html(" ");
cgit_log_link("log", NULL, NULL, cgit_query_head,
cgit_query_sha1, cgit_query_path, 0);
html(" ");
cgit_tree_link("tree", NULL, NULL, cgit_query_head,
cgit_query_sha1, NULL);
html(" ");
cgit_commit_link("commit", NULL, NULL, cgit_query_head,
cgit_query_sha1);
html(" ");
cgit_diff_link("diff", NULL, NULL, cgit_query_head,
cgit_query_sha1, cgit_query_sha2,
cgit_query_path);
} else {
html_txt("Index of repositories");
}
html("</td>");
html("<td id='search'>");