sort repos before subdirectories
This commit is contained in:
parent
56066a65ae
commit
74c80bebcf
20
index.cgi
20
index.cgi
@ -4404,13 +4404,29 @@ sub git_project_list_body {
|
|||||||
$to = $#projects if (!defined $to || $#projects < $to);
|
$to = $#projects if (!defined $to || $#projects < $to);
|
||||||
|
|
||||||
my %order_info = (
|
my %order_info = (
|
||||||
project => { key => 'path', type => 'str' },
|
project => { key => 'path', type => 'file' },
|
||||||
descr => { key => 'descr_long', type => 'str' },
|
descr => { key => 'descr_long', type => 'str' },
|
||||||
owner => { key => 'owner', type => 'str' },
|
owner => { key => 'owner', type => 'str' },
|
||||||
age => { key => 'age', type => 'num' }
|
age => { key => 'age', type => 'num' }
|
||||||
);
|
);
|
||||||
my $oi = $order_info{$order};
|
my $oi = $order_info{$order};
|
||||||
if ($oi->{'type'} eq 'str') {
|
if ($oi->{'type'} eq 'file') {
|
||||||
|
sub cmp_pnames
|
||||||
|
{
|
||||||
|
my @a_p = split(/\//, $a->{$oi->{'key'}});
|
||||||
|
my @b_p = split(/\//, $b->{$oi->{'key'}});
|
||||||
|
for (my $i = 0; ; $i++)
|
||||||
|
{
|
||||||
|
return 0 if ($i > $#a_p && $i > $#b_p);
|
||||||
|
my $c = lc($a_p[$i]) cmp lc($b_p[$i]);
|
||||||
|
return $c if ($i == $#a_p && $i == $#b_p);
|
||||||
|
return -1 if ($i >= $#a_p);
|
||||||
|
return 1 if ($i >= $#b_p);
|
||||||
|
return $c if ($c != 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@projects = sort cmp_pnames @projects;
|
||||||
|
} elsif ($oi->{'type'} eq 'str') {
|
||||||
@projects = sort {lc($a->{$oi->{'key'}}) cmp lc($b->{$oi->{'key'}})} @projects;
|
@projects = sort {lc($a->{$oi->{'key'}}) cmp lc($b->{$oi->{'key'}})} @projects;
|
||||||
} else {
|
} else {
|
||||||
@projects = sort {$a->{$oi->{'key'}} <=> $b->{$oi->{'key'}}} @projects;
|
@projects = sort {$a->{$oi->{'key'}} <=> $b->{$oi->{'key'}}} @projects;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user