-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
@@ -117,8 +117,9 @@ 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; @@ -11,8 +11,12 @@ ## 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 @@ -25,8 +25,9 @@ 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; @@ -145,8 +146,10 @@ void cgit_global_config_cb(const char *name, const char *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); diff --git a/ui-repolist.c b/ui-repolist.c index 4f820a8..c735368 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -43,34 +43,41 @@ static void print_modtime(struct repoinfo *repo) } 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; } @@ -84,15 +91,19 @@ void cgit_print_repolist(struct cacheitem *item) 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(); } |