ui-repolist.c: sort by section name, repo name as default
When no sorting is requested by the client, cgit will now sort by section name followed by repo name. This allows repos to be registered/ discovered independently of their display order. Signed-off-by: Lars Hjemli <hjemli@gmail.com>
This commit is contained in:
parent
3939854578
commit
63816ec597
@ -136,6 +136,18 @@ static int cmp(const char *s1, const char *s2)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sort_section(const void *a, const void *b)
|
||||||
|
{
|
||||||
|
const struct cgit_repo *r1 = a;
|
||||||
|
const struct cgit_repo *r2 = b;
|
||||||
|
int result;
|
||||||
|
|
||||||
|
result = cmp(r1->section, r2->section);
|
||||||
|
if (!result)
|
||||||
|
result = cmp(r1->name, r2->name);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
static int sort_name(const void *a, const void *b)
|
static int sort_name(const void *a, const void *b)
|
||||||
{
|
{
|
||||||
const struct cgit_repo *r1 = a;
|
const struct cgit_repo *r1 = a;
|
||||||
@ -178,6 +190,7 @@ struct sortcolumn {
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct sortcolumn sortcolumn[] = {
|
struct sortcolumn sortcolumn[] = {
|
||||||
|
{"section", sort_section},
|
||||||
{"name", sort_name},
|
{"name", sort_name},
|
||||||
{"desc", sort_desc},
|
{"desc", sort_desc},
|
||||||
{"owner", sort_owner},
|
{"owner", sort_owner},
|
||||||
@ -219,6 +232,8 @@ 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
|
||||||
|
sort_repolist("section");
|
||||||
|
|
||||||
html("<table summary='repository list' class='list nowrap'>");
|
html("<table summary='repository list' class='list nowrap'>");
|
||||||
for (i=0; i<cgit_repolist.count; i++) {
|
for (i=0; i<cgit_repolist.count; i++) {
|
||||||
|
Loading…
Reference in New Issue
Block a user