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> &#187;</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" );
+
+	}
+}
+