Code

gitweb: Highlight matched part of project description when searching projects
authorJakub Narebski <jnareb@gmail.com>
Mon, 27 Feb 2012 01:55:21 +0000 (02:55 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Feb 2012 06:02:57 +0000 (22:02 -0800)
Use esc_html_match_hl() from earlier commit to mark match in the
_whole_ description when searching projects.

Currently, with this commit, when searching projects there is always
shown full description of a project, and not a shortened one (like for
ordinary projects list view), even if the match is on project name and
not project description.  Because we always show full description of a
project, and not possibly shortened name, there is no need for having
full description on mouseover via title attribute.

Showing full description when there is match on it is useful to avoid
situation where match is in shortened, invisible part.  On the other
hand that makes project search different than projects list view; also
there can be problems with overly-long project descriptions.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl

index a0c6a9b23994c8d4a9d73621fb9ce248f7a20cd3..724f06f1f0bb0f5ff565c135ad414f009ca62669 100755 (executable)
@@ -5404,8 +5404,12 @@ sub git_project_list_rows {
                                       esc_html_match_hl($pr->{'path'}, $search_regexp)) .
                      "</td>\n" .
                      "<td>" . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary"),
-                                       -class => "list", -title => $pr->{'descr_long'}},
-                                       esc_html($pr->{'descr'})) . "</td>\n" .
+                                       -class => "list",
+                                       $search_regexp ? () : -title => $pr->{'descr_long'}},
+                                       $search_regexp
+                                       ? esc_html_match_hl($pr->{'descr_long'}, $search_regexp)
+                                       : esc_html($pr->{'descr'})) .
+                     "</td>\n" .
                      "<td><i>" . chop_and_escape_str($pr->{'owner'}, 15) . "</i></td>\n";
                print "<td class=\"". age_class($pr->{'age'}) . "\">" .
                      (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n" .