Make "owner" column on index page configurable

This is not really needed for personal sites where all repos belong to
the same person. Since it is pretty useful for shared sites however, it
should be configurable.

Signed-off-by: Florian Pritz <bluewind@xinu.at>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Florian Pritz 2013-02-01 10:59:13 +01:00 committed by Jason A. Donenfeld
parent c6f5bc7264
commit b1e172acca
4 changed files with 20 additions and 7 deletions

3
cgit.c
View File

@ -172,6 +172,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.enable_http_clone = atoi(value); ctx.cfg.enable_http_clone = atoi(value);
else if (!strcmp(name, "enable-index-links")) else if (!strcmp(name, "enable-index-links"))
ctx.cfg.enable_index_links = atoi(value); ctx.cfg.enable_index_links = atoi(value);
else if (!strcmp(name, "enable-index-owner"))
ctx.cfg.enable_index_owner = atoi(value);
else if (!strcmp(name, "enable-commit-graph")) else if (!strcmp(name, "enable-commit-graph"))
ctx.cfg.enable_commit_graph = atoi(value); ctx.cfg.enable_commit_graph = atoi(value);
else if (!strcmp(name, "enable-log-filecount")) else if (!strcmp(name, "enable-log-filecount"))
@ -354,6 +356,7 @@ static void prepare_context(struct cgit_context *ctx)
ctx->cfg.logo = "/cgit.png"; ctx->cfg.logo = "/cgit.png";
ctx->cfg.local_time = 0; ctx->cfg.local_time = 0;
ctx->cfg.enable_http_clone = 1; ctx->cfg.enable_http_clone = 1;
ctx->cfg.enable_index_owner = 1;
ctx->cfg.enable_tree_linenumbers = 1; ctx->cfg.enable_tree_linenumbers = 1;
ctx->cfg.enable_git_config = 0; ctx->cfg.enable_git_config = 0;
ctx->cfg.max_repo_count = 50; ctx->cfg.max_repo_count = 50;

1
cgit.h
View File

@ -203,6 +203,7 @@ struct cgit_config {
int enable_filter_overrides; int enable_filter_overrides;
int enable_http_clone; int enable_http_clone;
int enable_index_links; int enable_index_links;
int enable_index_owner;
int enable_commit_graph; int enable_commit_graph;
int enable_log_filecount; int enable_log_filecount;
int enable_log_linecount; int enable_log_linecount;

View File

@ -120,6 +120,10 @@ enable-index-links::
each repo in the repository index (specifically, to the "summary", each repo in the repository index (specifically, to the "summary",
"commit" and "tree" pages). Default value: "0". "commit" and "tree" pages). Default value: "0".
enable-index-owner::
Flag which, when set to "1", will make cgit display the owner of
each repo in the repository index. Default value: "1".
enable-log-filecount:: enable-log-filecount::
Flag which, when set to "1", will make cgit print the number of Flag which, when set to "1", will make cgit print the number of
modified files for each commit on the repository log page. Default modified files for each commit on the repository log page. Default

View File

@ -110,11 +110,12 @@ void print_sort_header(const char *title, const char *sort)
htmlf("'>%s</a></th>", title); htmlf("'>%s</a></th>", title);
} }
void print_header(int columns) void print_header()
{ {
html("<tr class='nohover'>"); html("<tr class='nohover'>");
print_sort_header("Name", "name"); print_sort_header("Name", "name");
print_sort_header("Description", "desc"); print_sort_header("Description", "desc");
if (ctx.cfg.enable_index_owner)
print_sort_header("Owner", "owner"); print_sort_header("Owner", "owner");
print_sort_header("Idle", "idle"); print_sort_header("Idle", "idle");
if (ctx.cfg.enable_index_links) if (ctx.cfg.enable_index_links)
@ -239,13 +240,15 @@ int sort_repolist(char *field)
void cgit_print_repolist() void cgit_print_repolist()
{ {
int i, columns = 4, hits = 0, header = 0; int i, columns = 3, hits = 0, header = 0;
char *last_section = NULL; char *last_section = NULL;
char *section; char *section;
int sorted = 0; int sorted = 0;
if (ctx.cfg.enable_index_links) if (ctx.cfg.enable_index_links)
columns++; ++columns;
if (ctx.cfg.enable_index_owner)
++columns;
ctx.page.title = ctx.cfg.root_title; ctx.page.title = ctx.cfg.root_title;
cgit_print_http_headers(&ctx); cgit_print_http_headers(&ctx);
@ -271,7 +274,7 @@ void cgit_print_repolist()
if (hits > ctx.qry.ofs + ctx.cfg.max_repo_count) if (hits > ctx.qry.ofs + ctx.cfg.max_repo_count)
continue; continue;
if (!header++) if (!header++)
print_header(columns); print_header();
section = ctx.repo->section; section = ctx.repo->section;
if (section && !strcmp(section, "")) if (section && !strcmp(section, ""))
section = NULL; section = NULL;
@ -294,8 +297,10 @@ void cgit_print_repolist()
html_ntxt(ctx.cfg.max_repodesc_len, ctx.repo->desc); html_ntxt(ctx.cfg.max_repodesc_len, ctx.repo->desc);
html_link_close(); html_link_close();
html("</td><td>"); html("</td><td>");
if (ctx.cfg.enable_index_owner) {
html_txt(ctx.repo->owner); html_txt(ctx.repo->owner);
html("</td><td>"); html("</td><td>");
}
print_modtime(ctx.repo); print_modtime(ctx.repo);
html("</td>"); html("</td>");
if (ctx.cfg.enable_index_links) { if (ctx.cfg.enable_index_links) {