Mercurial Hosting > nabble
diff src/nabble/view/web/help/SearchHelp.java @ 0:7ecd1a4ef557
add content
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Thu, 21 Mar 2019 19:15:52 -0600 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/nabble/view/web/help/SearchHelp.java Thu Mar 21 19:15:52 2019 -0600 @@ -0,0 +1,95 @@ + +package nabble.view.web.help; + +import fschmidt.util.java.HtmlUtils; +import nabble.model.Lucene; +import nabble.view.lib.Jtp; +import nabble.view.lib.Shared; +import nabble.view.lib.help.Help; +import org.apache.lucene.queryParser.ParseException; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; + + +public class SearchHelp extends HttpServlet { + + static { + Help.index(); + } + + protected void service(HttpServletRequest request,HttpServletResponse response) + throws ServletException, IOException + { + PrintWriter out = response.getWriter(); + String errorMessage = null; + String query = request.getParameter("query"); + if (query != null) { + query = query.trim().replaceAll("\\band\\b","AND").replaceAll("\\bor\\b","OR").replaceAll("\\bnot\\b","NOT"); + } + if (query == null || "".equals(query)) { + response.sendRedirect("Index.jtp"); + return; + } + + Help[] help = null; + try { + help = Lucene.searchHelp(query); + } catch(ParseException e) { + errorMessage = "This query is invalid.\nFor more information, read [link]http://lucene.apache.org/java/2_4_1/queryparsersyntax.html[/link]"; + } + + out.print( "\n<html>\n <head>\n " ); + Shared.title(request,response,"Help"); + out.print( "\n </head>\n <body>\n " ); + Shared.helpHeader(request,response); + out.print( "\n <div class=\"content-description\">\n <h1>Search Results</h1>\n <form action=\"" ); + out.print( (response.encodeURL("SearchHelp.jtp")) ); + out.print( "\" name=\"searchform\">\n <input name=\"query\" size=\"40\" value=\"" ); + out.print( (HtmlUtils.htmlEncode(Jtp.hideNull(query))) ); + out.print( "\" />\n <input type=\"submit\" value=\"Search\" />\n <span class=\"small\" style=\"margin-left:2em;\"><a href=\"" ); + out.print( (response.encodeURL("Index.jtp")) ); + out.print( "\">Return to Help Topics</a> »</span>\n </form>\n <p>\n " ); + if (errorMessage != null) { + Shared.errorMessage(request, response, errorMessage, "Please check our <a href=\""+Help.search.url()+"\">search tips</a> page."); + } else if (help != null && help.length==0) { + + out.print( "\nNo help topics found for <strong>" ); + out.print( (HtmlUtils.htmlEncode(query)) ); + out.print( "</strong>\n" ); + + } else { + + out.print( "\n<strong>" ); + out.print( (help.length) ); + out.print( "</strong> help topics found for <strong>" ); + out.print( (HtmlUtils.htmlEncode(query)) ); + out.print( "</strong>\n</p>\n<ul>\n" ); + + for (int i=0; i<help.length; i++) { + + out.print( "\n<li>" ); + out.print( (help[i].link(request)) ); + out.print( "</li>\n" ); + + } + + out.print( "\n</ul>\n" ); + + } + + out.print( "\n<p><br />If you still have questions, visit the " ); + out.print( (Jtp.supportLink()) ); + out.print( " forum.</p>\n</div>\n" ); + Shared.footer(request,response); + out.print( "\n" ); + Shared.analytics(request,response); + out.print( "\n</body>\n</html>\n" ); + + } +} +