view 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 source


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" );

	}
}