{"thread":{"id":"29486","subject":"[PATCH 0/2] gitweb: Project search improvements","startedAt":"2012-01-31T00:20:53Z","lastAt":"2012-01-31T00:20:55Z","messageCount":3,"participants":["Jakub Narebski"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"183399","messageId":"1327969255-26622-1-git-send-email-jnareb@gmail.com","threadId":"29486","inReplyTo":null,"subject":"[PATCH 0/2] gitweb: Project search improvements","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-01-31T00:20:53Z","receivedAt":"2012-01-31T00:20:53Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"This was once a part of larger series improving project search in\ngitweb, but those two patches can stand alone.  I am sending this\nseries (especially the second patch) in response to Bernhard patches\nadding support for project_filter.\n\nThese patches should be applied on top of his work, i.e. on top of\n'bl/gitweb-project-filter' branch.\n\nJakub Narebski (2):\n  gitweb: Improve projects search form\n  gitweb: Make project search respect project_filter\n\n gitweb/gitweb.perl       |   35 ++++++++++++++++++++++++++++++-----\n gitweb/static/gitweb.css |    7 ++++++-\n 2 files changed, 36 insertions(+), 6 deletions(-)\n\n-- \n1.7.6\n"},{"id":"183401","messageId":"1327969255-26622-2-git-send-email-jnareb@gmail.com","threadId":"29486","inReplyTo":"1327969255-26622-1-git-send-email-jnareb@gmail.com","subject":"[PATCH 1/2] gitweb: Improve projects search form","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-01-31T00:20:54Z","receivedAt":"2012-01-31T00:20:54Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Refactor generating project search form into git_project_search_form().\nMake text field wider and add on mouse over explanation (via \"title\"\nattribute), add an option to use regular expressions, and replace\n'Search:' label with [Search] button.\n\nAlso add \"List all projects\" link to make it easier to go back from\nsearch result to list of all projects (note that empty search term\nis disallowed).\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nThe major advantage is that you can use regular expression in\nsearching projects... well, at least there is UI for it, because you\ncould handcraft URL earlier anyway.\n\nThis patch was presented on git mailing list earlier.\n\n gitweb/gitweb.perl       |   27 ++++++++++++++++++++++-----\n gitweb/static/gitweb.css |    7 ++++++-\n 2 files changed, 28 insertions(+), 6 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex fa8a300..c4e0d8e 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -5155,6 +5155,26 @@ sub git_patchset_body {\n \n # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .\n \n+sub git_project_search_form {\n+\tmy ($searchtext, $search_use_regexp);\n+\n+\tprint \"<div class=\\\"projsearch\\\">\\n\";\n+\tprint $cgi->startform(-method => 'get', -action => $my_uri) .\n+\t      $cgi->hidden(-name => 'a', -value => 'project_list') . \"\\n\" .\n+\t      $cgi->textfield(-name => 's', -value => $searchtext,\n+\t                      -title => 'Search project by name and description',\n+\t                      -size => 60) . \"\\n\" .\n+\t      \"<span title=\\\"Extended regular expression\\\">\" .\n+\t      $cgi->checkbox(-name => 'sr', -value => 1, -label => 're',\n+\t                     -checked => $search_use_regexp) .\n+\t      \"</span>\\n\" .\n+\t      $cgi->submit(-name => 'btnS', -value => 'Search') .\n+\t      $cgi->end_form() . \"\\n\" .\n+\t      $cgi->a({-href => href(project => undef, searchtext => undef)},\n+\t              'List all projects') . \"<br />\\n\";\n+\tprint \"</div>\\n\";\n+}\n+\n # fills project list info (age, description, owner, category, forks)\n # for each project in the list, removing invalid projects from\n # returned list\n@@ -6022,11 +6042,8 @@ sub git_project_list {\n \t\tinsert_file($home_text);\n \t\tprint \"</div>\\n\";\n \t}\n-\tprint $cgi->startform(-method => \"get\") .\n-\t      \"<p class=\\\"projsearch\\\">Search:\\n\" .\n-\t      $cgi->textfield(-name => \"s\", -value => $searchtext) . \"\\n\" .\n-\t      \"</p>\" .\n-\t      $cgi->end_form() . \"\\n\";\n+\n+\tgit_project_search_form($searchtext, $search_use_regexp);\n \tgit_project_list_body(\\@list, $order);\n \tgit_footer_html();\n }\ndiff --git a/gitweb/static/gitweb.css b/gitweb/static/gitweb.css\nindex c7827e8..c530355 100644\n--- a/gitweb/static/gitweb.css\n+++ b/gitweb/static/gitweb.css\n@@ -520,8 +520,13 @@ div.search {\n \tright: 12px\n }\n \n-p.projsearch {\n+div.projsearch {\n \ttext-align: center;\n+\tmargin: 20px 0px;\n+}\n+\n+div.projsearch form {\n+\tmargin-bottom: 2px;\n }\n \n td.linenr {\n-- \n1.7.6\n"},{"id":"183400","messageId":"1327969255-26622-3-git-send-email-jnareb@gmail.com","threadId":"29486","inReplyTo":"1327969255-26622-1-git-send-email-jnareb@gmail.com","subject":"[PATCH 2/2] gitweb: Make project search respect project_filter","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2012-01-31T00:20:55Z","receivedAt":"2012-01-31T00:20:55Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Make gitweb search within filtered projects (i.e. projects shown), and\nchange \"List all projects\" to \"List all projects in '$project_filter/'\"\nif project_filter is used.\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\nThis patch is new.\n\n gitweb/gitweb.perl |   18 +++++++++++++-----\n 1 files changed, 13 insertions(+), 5 deletions(-)\n\ndiff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl\nindex c4e0d8e..80975dd 100755\n--- a/gitweb/gitweb.perl\n+++ b/gitweb/gitweb.perl\n@@ -5158,11 +5158,18 @@ sub git_patchset_body {\n sub git_project_search_form {\n \tmy ($searchtext, $search_use_regexp);\n \n+\tmy $limit = '';\n+\tif ($project_filter) {\n+\t\t$limit = \" in '$project_filter/'\";\n+\t}\n+\n \tprint \"<div class=\\\"projsearch\\\">\\n\";\n \tprint $cgi->startform(-method => 'get', -action => $my_uri) .\n-\t      $cgi->hidden(-name => 'a', -value => 'project_list') . \"\\n\" .\n-\t      $cgi->textfield(-name => 's', -value => $searchtext,\n-\t                      -title => 'Search project by name and description',\n+\t      $cgi->hidden(-name => 'a', -value => 'project_list')  . \"\\n\";\n+\tprint $cgi->hidden(-name => 'pf', -value => $project_filter). \"\\n\"\n+\t\tif (defined $project_filter);\n+\tprint $cgi->textfield(-name => 's', -value => $searchtext,\n+\t                      -title => \"Search project by name and description$limit\",\n \t                      -size => 60) . \"\\n\" .\n \t      \"<span title=\\\"Extended regular expression\\\">\" .\n \t      $cgi->checkbox(-name => 'sr', -value => 1, -label => 're',\n@@ -5170,8 +5177,9 @@ sub git_project_search_form {\n \t      \"</span>\\n\" .\n \t      $cgi->submit(-name => 'btnS', -value => 'Search') .\n \t      $cgi->end_form() . \"\\n\" .\n-\t      $cgi->a({-href => href(project => undef, searchtext => undef)},\n-\t              'List all projects') . \"<br />\\n\";\n+\t      $cgi->a({-href => href(project => undef, searchtext => undef,\n+\t                             project_filter => $project_filter)},\n+\t              esc_html(\"List all projects$limit\")) . \"<br />\\n\";\n \tprint \"</div>\\n\";\n }\n \n-- \n1.7.6\n"}]}