diff options
| author | Lars Hjemli <hjemli@gmail.com> | 2007-06-29 20:32:08 +0200 | 
|---|---|---|
| committer | Lars Hjemli <hjemli@gmail.com> | 2007-06-29 20:32:08 +0200 | 
| commit | 16a3d2779ccd56bf7954d98da547247d8796544b (patch) | |
| tree | 86d2ed41adc3de842c7518d614ea49ca0200e4d2 /ui-shared.c | |
| parent | Add version info from git-describe (diff) | |
| parent | Add ofs argument to cgit_log_link and use it in ui-log.c (diff) | |
| download | cgit-16a3d2779ccd56bf7954d98da547247d8796544b.tar.gz cgit-16a3d2779ccd56bf7954d98da547247d8796544b.tar.bz2 cgit-16a3d2779ccd56bf7954d98da547247d8796544b.zip | |
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
Diffstat (limited to '')
| -rw-r--r-- | ui-shared.c | 71 | 
1 files changed, 55 insertions, 16 deletions
| diff --git a/ui-shared.c b/ui-shared.c index 110c696..d4376ce 100644 --- a/ui-shared.c +++ b/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'>"); | 
