ui-repolist: Add "section-sort" flag to control section sorting.

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 be preserved. Default value: "1".

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Tobias Bieniek 2012-10-09 20:53:29 +02:00 committed by Jason A. Donenfeld
parent 521e10c884
commit 7a4e7c8ffb
4 changed files with 13 additions and 3 deletions

3
cgit.c
View File

@ -233,6 +233,8 @@ void config_cb(const char *name, const char *value)
ctx.cfg.section_from_path = atoi(value); ctx.cfg.section_from_path = atoi(value);
else if (!strcmp(name, "repository-sort")) else if (!strcmp(name, "repository-sort"))
ctx.cfg.repository_sort = xstrdup(value); ctx.cfg.repository_sort = xstrdup(value);
else if (!strcmp(name, "section-sort"))
ctx.cfg.section_sort = atoi(value);
else if (!strcmp(name, "source-filter")) else if (!strcmp(name, "source-filter"))
ctx.cfg.source_filter = new_filter(value, SOURCE); ctx.cfg.source_filter = new_filter(value, SOURCE);
else if (!strcmp(name, "summary-log")) else if (!strcmp(name, "summary-log"))
@ -361,6 +363,7 @@ static void prepare_context(struct cgit_context *ctx)
ctx->cfg.script_name = CGIT_SCRIPT_NAME; ctx->cfg.script_name = CGIT_SCRIPT_NAME;
ctx->cfg.section = ""; ctx->cfg.section = "";
ctx->cfg.repository_sort = "name"; ctx->cfg.repository_sort = "name";
ctx->cfg.section_sort = 1;
ctx->cfg.summary_branches = 10; ctx->cfg.summary_branches = 10;
ctx->cfg.summary_log = 10; ctx->cfg.summary_log = 10;
ctx->cfg.summary_tags = 10; ctx->cfg.summary_tags = 10;

1
cgit.h
View File

@ -226,6 +226,7 @@ struct cgit_config {
int scan_hidden_path; int scan_hidden_path;
int section_from_path; int section_from_path;
int snapshots; int snapshots;
int section_sort;
int summary_branches; int summary_branches;
int summary_log; int summary_log;
int summary_tags; int summary_tags;

View File

@ -72,7 +72,7 @@ cache-static-ttl::
case-sensitive-sort:: case-sensitive-sort::
Sort items in the repo list case sensitively. Default value: "1". Sort items in the repo list case sensitively. Default value: "1".
See also: repository-sort. See also: repository-sort, section-sort.
clone-prefix:: clone-prefix::
Space-separated list of common prefixes which, when combined with a Space-separated list of common prefixes which, when combined with a
@ -332,7 +332,13 @@ repository-sort::
The way in which repositories in each section are sorted. Valid values The way in which repositories in each section are sorted. Valid values
are "name" for sorting by the repo name or "age" for sorting by the are "name" for sorting by the repo name or "age" for sorting by the
most recently updated repository. Default value: "name". See also: most recently updated repository. Default value: "name". See also:
section, case-sensitive-sort. section, case-sensitive-sort, section-sort.
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
be preserved. Default value: "1". See also: section,
case-sensitive-sort, repository-sort.
section-from-path:: section-from-path::
A number which, if specified before scan-path, specifies how many A number which, if specified before scan-path, specifies how many

View File

@ -257,7 +257,7 @@ void cgit_print_repolist()
if(ctx.qry.sort) if(ctx.qry.sort)
sorted = sort_repolist(ctx.qry.sort); sorted = sort_repolist(ctx.qry.sort);
else else if (ctx.cfg.section_sort)
sort_repolist("section"); sort_repolist("section");
html("<table summary='repository list' class='list nowrap'>"); html("<table summary='repository list' class='list nowrap'>");