gitweb: Refactoring git_project_list

Slightly reworking git_project_list, including moving setting $order,
as it is used only in this action. Mostly reindent.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Jakub Narebski 2006-08-01 02:59:12 +02:00 committed by Junio C Hamano
parent 5d1acf4da0
commit 6326b60cfd

View File

@ -81,14 +81,6 @@ if (defined $action) {
} }
} }
our $order = $cgi->param('o');
if (defined $order) {
if ($order =~ m/[^0-9a-zA-Z_]/) {
undef $order;
die_error(undef, "Invalid order parameter.");
}
}
our $project = ($cgi->param('p') || $ENV{'PATH_INFO'}); our $project = ($cgi->param('p') || $ENV{'PATH_INFO'});
if (defined $project) { if (defined $project) {
$project =~ s|^/||; $project =~ s|/$||; $project =~ s|^/||; $project =~ s|/$||;
@ -1297,10 +1289,15 @@ sub git_logo {
} }
sub git_project_list { sub git_project_list {
my $order = $cgi->param('o');
if (defined $order && $order !~ m/project|descr|owner|age/) {
die_error(undef, "Invalid order parameter '$order'.");
}
my @list = git_read_projects(); my @list = git_read_projects();
my @projects; my @projects;
if (!@list) { if (!@list) {
die_error(undef, "No project found."); die_error(undef, "No projects found.");
} }
foreach my $pr (@list) { foreach my $pr (@list) {
my $head = git_read_head($pr->{'path'}); my $head = git_read_head($pr->{'path'});
@ -1322,6 +1319,7 @@ sub git_project_list {
} }
push @projects, $pr; push @projects, $pr;
} }
git_header_html(); git_header_html();
if (-f $home_text) { if (-f $home_text) {
print "<div class=\"index_include\">\n"; print "<div class=\"index_include\">\n";
@ -1332,29 +1330,42 @@ sub git_project_list {
} }
print "<table class=\"project_list\">\n" . print "<table class=\"project_list\">\n" .
"<tr>\n"; "<tr>\n";
if (!defined($order) || (defined($order) && ($order eq "project"))) { $order ||= "project";
if ($order eq "project") {
@projects = sort {$a->{'path'} cmp $b->{'path'}} @projects; @projects = sort {$a->{'path'} cmp $b->{'path'}} @projects;
print "<th>Project</th>\n"; print "<th>Project</th>\n";
} else { } else {
print "<th>" . $cgi->a({-class => "header", -href => "$my_uri?" . esc_param("o=project")}, "Project") . "</th>\n"; print "<th>" .
$cgi->a({-href => "$my_uri?" . esc_param("o=project"),
-class => "header"}, "Project") .
"</th>\n";
} }
if (defined($order) && ($order eq "descr")) { if ($order eq "descr") {
@projects = sort {$a->{'descr'} cmp $b->{'descr'}} @projects; @projects = sort {$a->{'descr'} cmp $b->{'descr'}} @projects;
print "<th>Description</th>\n"; print "<th>Description</th>\n";
} else { } else {
print "<th>" . $cgi->a({-class => "header", -href => "$my_uri?" . esc_param("o=descr")}, "Description") . "</th>\n"; print "<th>" .
$cgi->a({-href => "$my_uri?" . esc_param("o=descr"),
-class => "header"}, "Description") .
"</th>\n";
} }
if (defined($order) && ($order eq "owner")) { if ($order eq "owner") {
@projects = sort {$a->{'owner'} cmp $b->{'owner'}} @projects; @projects = sort {$a->{'owner'} cmp $b->{'owner'}} @projects;
print "<th>Owner</th>\n"; print "<th>Owner</th>\n";
} else { } else {
print "<th>" . $cgi->a({-class => "header", -href => "$my_uri?" . esc_param("o=owner")}, "Owner") . "</th>\n"; print "<th>" .
$cgi->a({-href => "$my_uri?" . esc_param("o=owner"),
-class => "header"}, "Owner") .
"</th>\n";
} }
if (defined($order) && ($order eq "age")) { if ($order eq "age") {
@projects = sort {$a->{'commit'}{'age'} <=> $b->{'commit'}{'age'}} @projects; @projects = sort {$a->{'commit'}{'age'} <=> $b->{'commit'}{'age'}} @projects;
print "<th>Last Change</th>\n"; print "<th>Last Change</th>\n";
} else { } else {
print "<th>" . $cgi->a({-class => "header", -href => "$my_uri?" . esc_param("o=age")}, "Last Change") . "</th>\n"; print "<th>" .
$cgi->a({-href => "$my_uri?" . esc_param("o=age"),
-class => "header"}, "Last Change") .
"</th>\n";
} }
print "<th></th>\n" . print "<th></th>\n" .
"</tr>\n"; "</tr>\n";
@ -1366,14 +1377,16 @@ sub git_project_list {
print "<tr class=\"light\">\n"; print "<tr class=\"light\">\n";
} }
$alternate ^= 1; $alternate ^= 1;
print "<td>" . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=summary"), -class => "list"}, esc_html($pr->{'path'})) . "</td>\n" . print "<td>" . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=summary"),
-class => "list"}, esc_html($pr->{'path'})) . "</td>\n" .
"<td>" . esc_html($pr->{'descr'}) . "</td>\n" . "<td>" . esc_html($pr->{'descr'}) . "</td>\n" .
"<td><i>" . chop_str($pr->{'owner'}, 15) . "</i></td>\n"; "<td><i>" . chop_str($pr->{'owner'}, 15) . "</i></td>\n";
print "<td class=\"". age_class($pr->{'commit'}{'age'}) . "\">" . $pr->{'commit'}{'age_string'} . "</td>\n" . print "<td class=\"". age_class($pr->{'commit'}{'age'}) . "\">" .
$pr->{'commit'}{'age_string'} . "</td>\n" .
"<td class=\"link\">" . "<td class=\"link\">" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=summary")}, "summary") . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=summary")}, "summary") . " | " .
" | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=shortlog")}, "shortlog") . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=shortlog")}, "shortlog") . " | " .
" | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=log")}, "log") . $cgi->a({-href => "$my_uri?" . esc_param("p=$pr->{'path'};a=log")}, "log") .
"</td>\n" . "</td>\n" .
"</tr>\n"; "</tr>\n";
} }