X-Git-Url: https://git.ladys.computer/Gitweb/blobdiff_plain/e515cb0a891d9715be2a4ca2d401461398f718fa819d63b51348c18095c09c97..724f05d045c6bb1a453d188e3dc152d92a072fa28072fb1a60d933ef1014bb64:/gitweb.perl?ds=inline
diff --git a/gitweb.perl b/gitweb.perl
index 490a04d..d0ed1fb 100755
--- a/gitweb.perl
+++ b/gitweb.perl
@@ -4803,6 +4803,61 @@ sub format_sort_th {
return $sort_th;
}
+sub git_project_list_rows {
+ my ($projlist, $from, $to, $check_forks) = @_;
+
+ $from = 0 unless defined $from;
+ $to = $#$projlist if (!defined $to || $#$projlist < $to);
+
+ my $alternate = 1;
+ my $tagfilter = $cgi->param('by_tag');
+ for (my $i = $from; $i <= $to; $i++) {
+ my $pr = $projlist->[$i];
+
+ next if $tagfilter and $show_ctags and not grep { lc $_ eq lc $tagfilter } keys %{$pr->{'ctags'}};
+ next if $searchtext and not $pr->{'path'} =~ /$searchtext/
+ and not $pr->{'descr_long'} =~ /$searchtext/;
+ # Weed out forks or non-matching entries of search
+ if ($check_forks) {
+ my $forkbase = $project; $forkbase ||= ''; $forkbase =~ s#\.git$#/#;
+ $forkbase="^$forkbase" if $forkbase;
+ next if not $searchtext and not $tagfilter and $show_ctags
+ and $pr->{'path'} =~ m#$forkbase.*/.*#; # regexp-safe
+ }
+
+ if ($alternate) {
+ print "
\n";
+ } else {
+ print "
\n";
+ }
+ $alternate ^= 1;
+ if ($check_forks) {
+ print "| ";
+ if ($pr->{'forks'}) {
+ print "\n";
+ print $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "+");
+ }
+ print " | \n";
+ }
+ print "" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
+ -class => "list"}, esc_html($pr->{'path'})) . " | \n" .
+ "" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
+ -class => "list", -title => $pr->{'descr_long'}},
+ esc_html($pr->{'descr'})) . " | \n" .
+ "" . chop_and_escape_str($pr->{'owner'}, 15) . " | \n";
+ print "{'age'}) . "\">" .
+ (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . " | \n" .
+ "" .
+ $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary")}, "summary") . " | " .
+ $cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " .
+ $cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " .
+ $cgi->a({-href => href(project=>$pr->{'path'}, action=>"tree")}, "tree") .
+ ($pr->{'forks'} ? " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "forks") : '') .
+ " | \n" .
+ "
\n";
+ }
+}
+
sub git_project_list_body {
# actually uses global variable $project
my ($projlist, $order, $from, $to, $extra, $no_header) = @_;
@@ -4852,53 +4907,8 @@ sub git_project_list_body {
print " | \n" . # for links
"\n";
}
- my $alternate = 1;
- my $tagfilter = $cgi->param('by_tag');
- for (my $i = $from; $i <= $to; $i++) {
- my $pr = $projects[$i];
-
- next if $tagfilter and $show_ctags and not grep { lc $_ eq lc $tagfilter } keys %{$pr->{'ctags'}};
- next if $searchtext and not $pr->{'path'} =~ /$searchtext/
- and not $pr->{'descr_long'} =~ /$searchtext/;
- # Weed out forks or non-matching entries of search
- if ($check_forks) {
- my $forkbase = $project; $forkbase ||= ''; $forkbase =~ s#\.git$#/#;
- $forkbase="^$forkbase" if $forkbase;
- next if not $searchtext and not $tagfilter and $show_ctags
- and $pr->{'path'} =~ m#$forkbase.*/.*#; # regexp-safe
- }
+ git_project_list_rows(\@projects, $from, $to, $check_forks);
- if ($alternate) {
- print "\n";
- } else {
- print "
\n";
- }
- $alternate ^= 1;
- if ($check_forks) {
- print "| ";
- if ($pr->{'forks'}) {
- print "\n";
- print $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "+");
- }
- print " | \n";
- }
- print "" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
- -class => "list"}, esc_html($pr->{'path'})) . " | \n" .
- "" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
- -class => "list", -title => $pr->{'descr_long'}},
- esc_html($pr->{'descr'})) . " | \n" .
- "" . chop_and_escape_str($pr->{'owner'}, 15) . " | \n";
- print "{'age'}) . "\">" .
- (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . " | \n" .
- "" .
- $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary")}, "summary") . " | " .
- $cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " .
- $cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " .
- $cgi->a({-href => href(project=>$pr->{'path'}, action=>"tree")}, "tree") .
- ($pr->{'forks'} ? " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"forks")}, "forks") : '') .
- " | \n" .
- "
\n";
- }
if (defined $extra) {
print "\n";
if ($check_forks) {