-rw-r--r-- | cgit.h | 1 | ||||
-rw-r--r-- | cgitrc | 4 | ||||
-rw-r--r-- | shared.c | 3 | ||||
-rw-r--r-- | ui-repolist.c | 25 |
4 files changed, 26 insertions, 7 deletions
@@ -109,24 +109,25 @@ extern char *cgit_css; extern char *cgit_logo; extern char *cgit_index_header; extern char *cgit_logo_link; extern char *cgit_module_link; extern char *cgit_agefile; extern char *cgit_virtual_root; extern char *cgit_script_name; extern char *cgit_cache_root; extern char *cgit_repo_group; extern int cgit_nocache; extern int cgit_snapshots; +extern int cgit_enable_index_links; extern int cgit_enable_log_filecount; extern int cgit_enable_log_linecount; extern int cgit_max_lock_attempts; extern int cgit_cache_root_ttl; extern int cgit_cache_repo_ttl; extern int cgit_cache_dynamic_ttl; extern int cgit_cache_static_ttl; extern int cgit_cache_max_create_time; extern int cgit_summary_log; extern int cgit_max_msg_len; extern int cgit_max_repodesc_len; @@ -3,24 +3,28 @@ ## ## Uncomment and set to 1 to deactivate caching of generated pages. Mostly ## usefull for testing. #nocache=0 ## Enable/disable snapshots by default. This can be overridden per repo #snapshots=0 +## Enable/disable extra links to summary/log/tree per repo on index page +#enable-index-links=0 + + ## Enable/disable display of 'number of files changed' in log view #enable-log-filecount=0 ## Enable/disable display of 'number of lines changed' in log view #enable-log-linecount=0 ## Enable/disable display of HEAD shortlog in summary view. Set it to maximum ## number of commits that should be displayed #summary-log=0 @@ -17,24 +17,25 @@ char *cgit_css = "/cgit.css"; char *cgit_logo = "/git-logo.png"; char *cgit_index_header = NULL; char *cgit_logo_link = "http://www.kernel.org/pub/software/scm/git/docs/"; char *cgit_module_link = "./?repo=%s&page=commit&id=%s"; char *cgit_agefile = "info/web/last-modified"; char *cgit_virtual_root = NULL; char *cgit_script_name = CGIT_SCRIPT_NAME; char *cgit_cache_root = "/var/cache/cgit"; char *cgit_repo_group = NULL; int cgit_nocache = 0; int cgit_snapshots = 0; +int cgit_enable_index_links = 0; int cgit_enable_log_filecount = 0; int cgit_enable_log_linecount = 0; int cgit_max_lock_attempts = 5; int cgit_cache_root_ttl = 5; int cgit_cache_repo_ttl = 5; int cgit_cache_dynamic_ttl = 5; int cgit_cache_static_ttl = -1; int cgit_cache_max_create_time = 5; int cgit_summary_log = 0; int cgit_max_msg_len = 60; int cgit_max_repodesc_len = 60; @@ -137,24 +138,26 @@ void cgit_global_config_cb(const char *name, const char *value) else if (!strcmp(name, "index-header")) cgit_index_header = xstrdup(value); else if (!strcmp(name, "logo-link")) cgit_logo_link = xstrdup(value); else if (!strcmp(name, "module-link")) cgit_module_link = xstrdup(value); else if (!strcmp(name, "virtual-root")) cgit_virtual_root = xstrdup(value); else if (!strcmp(name, "nocache")) cgit_nocache = atoi(value); else if (!strcmp(name, "snapshots")) cgit_snapshots = atoi(value); + else if (!strcmp(name, "enable-index-links")) + cgit_enable_index_links = atoi(value); else if (!strcmp(name, "enable-log-filecount")) cgit_enable_log_filecount = atoi(value); else if (!strcmp(name, "enable-log-linecount")) cgit_enable_log_linecount = atoi(value); else if (!strcmp(name, "cache-root")) cgit_cache_root = xstrdup(value); else if (!strcmp(name, "cache-root-ttl")) cgit_cache_root_ttl = atoi(value); else if (!strcmp(name, "cache-repo-ttl")) cgit_cache_repo_ttl = atoi(value); else if (!strcmp(name, "cache-static-ttl")) cgit_cache_static_ttl = atoi(value); diff --git a/ui-repolist.c b/ui-repolist.c index 4f820a8..c735368 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -35,64 +35,75 @@ static void print_modtime(struct repoinfo *repo) cgit_print_age(read_agefile(path), -1, NULL); return; } path = fmt("%s/refs/heads/%s", repo->path, repo->defbranch); if (stat(path, &s) != 0) return; cgit_print_age(s.st_mtime, -1, NULL); } void cgit_print_repolist(struct cacheitem *item) { - int i; + int i, columns = 4; char *last_group = NULL; + if (cgit_enable_index_links) + columns++; + cgit_print_docstart(cgit_root_title, item); cgit_print_pageheader(cgit_root_title, 0); html("<table class='list nowrap'>"); if (cgit_index_header) { - html("<tr class='nohover'><td colspan='5' class='include-block'>"); + htmlf("<tr class='nohover'><td colspan='%d' class='include-block'>", + columns); html_include(cgit_index_header); html("</td></tr>"); } html("<tr class='nohover'>" "<th class='left'>Name</th>" "<th class='left'>Description</th>" "<th class='left'>Owner</th>" - "<th class='left'>Idle</th>" - "<th>Links</th></tr>\n"); + "<th class='left'>Idle</th>"); + if (cgit_enable_index_links) + html("<th>Links</th>"); + html("</tr>\n"); for (i=0; i<cgit_repolist.count; i++) { cgit_repo = &cgit_repolist.repos[i]; if ((last_group == NULL && cgit_repo->group != NULL) || (last_group != NULL && cgit_repo->group == NULL) || (last_group != NULL && cgit_repo->group != NULL && strcmp(cgit_repo->group, last_group))) { - html("<tr class='nohover'><td colspan='4' class='repogroup'>"); + htmlf("<tr class='nohover'><td colspan='%d' class='repogroup'>", + columns); html_txt(cgit_repo->group); html("</td></tr>"); last_group = cgit_repo->group; } htmlf("<tr><td class='%s'>", cgit_repo->group ? "sublevel-repo" : "toplevel-repo"); html_link_open(cgit_repourl(cgit_repo->url), NULL, NULL); html_txt(cgit_repo->name); html_link_close(); html("</td><td>"); html_ntxt(cgit_max_repodesc_len, cgit_repo->desc); html("</td><td>"); html_txt(cgit_repo->owner); html("</td><td>"); print_modtime(cgit_repo); - html("</td><td>"); + html("</td>"); + if (cgit_enable_index_links) { + html("<td>"); html_link_open(cgit_repourl(cgit_repo->url), NULL, "button"); html("summary</a>"); cgit_log_link("log", NULL, "button", NULL, NULL, NULL); cgit_tree_link("tree", NULL, "button", NULL, NULL, NULL); - html("</td></tr>\n"); + html("</td>"); + } + html("</tr>\n"); } html("</table>"); cgit_print_docend(); } |