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:
71
ui-shared.c
71
ui-shared.c
@ -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(") : ");
|
||||
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'>");
|
||||
|
Reference in New Issue
Block a user