This is a rough work-in-progress, but I wanted to get our take on whether or not you'd be interested in this type of functionality:
The index page can be difficult to navigate for really large git servers. This change allows a configuration like: section-collapse=people section-collapse=tests And an index page would only display the "people" and "test" section headers entries (not their repos) with a hyperlink that can be used to drill down into each section. Signed-off-by: Andy Doan <andy.d...@linaro.org> --- cgit.c | 2 ++ cgit.h | 1 + cgitrc.5.txt | 5 +++++ ui-repolist.c | 4 +++- 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/cgit.c b/cgit.c index 9427c4a..abecc64 100644 --- a/cgit.c +++ b/cgit.c @@ -238,6 +238,8 @@ static void config_cb(const char *name, const char *value) scan_tree(expand_macros(value), repo_config); else if (!strcmp(name, "scan-hidden-path")) ctx.cfg.scan_hidden_path = atoi(value); + else if (!strcmp(name, "section-collapse")) + string_list_insert(&ctx.cfg.section_collapse, xstrdup(value)); else if (!strcmp(name, "section-from-path")) ctx.cfg.section_from_path = atoi(value); else if (!strcmp(name, "repository-sort")) diff --git a/cgit.h b/cgit.h index 325432b..5c654be 100644 --- a/cgit.h +++ b/cgit.h @@ -251,6 +251,7 @@ struct cgit_config { int renamelimit; int remove_suffix; int scan_hidden_path; + struct string_list section_collapse; int section_from_path; int snapshots; int section_sort; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index 9fcf445..2762657 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -404,6 +404,11 @@ section:: after this option will inherit the current section name. Default value: none. +section-collapse:: + Name of a section to "collapse" and not display on the index page. + Multiple config entries can be specified and each one will be + collapsed. + section-sort:: Flag which, when set to "1", will sort the sections on the repository listing by name. Set this flag to "0" if the order in the cgitrc file should diff --git a/ui-repolist.c b/ui-repolist.c index 30915df..330f749 100644 --- a/ui-repolist.c +++ b/ui-repolist.c @@ -322,10 +322,12 @@ void cgit_print_repolist(void) strcmp(section, last_section)))) { htmlf("<tr class='nohover'><td colspan='%d' class='reposection'>", columns); - html_txt(section); + htmlf("<a href='%s'>%s</a>", section, section); html("</td></tr>"); last_section = section; } + if (section && string_list_has_string(&ctx.cfg.section_collapse, section)) + continue; htmlf("<tr><td class='%s'>", !sorted && section ? "sublevel-repo" : "toplevel-repo"); cgit_summary_link(ctx.repo->name, ctx.repo->name, NULL, NULL); -- 2.7.4 _______________________________________________ CGit mailing list CGit@lists.zx2c4.com http://lists.zx2c4.com/mailman/listinfo/cgit