package mircoders.servlet;
-import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import mir.config.MirPropertiesConfiguration;
import mir.entity.adapter.EntityAdapterModel;
import mir.entity.adapter.EntityIteratorAdapter;
-import mir.log.LoggerToWriterAdapter;
import mir.log.LoggerWrapper;
import mir.servlet.ServletModule;
-import mir.servlet.ServletModuleException;
+import mir.servlet.ServletModuleExc;
+import mir.servlet.ServletModuleFailure;
import mir.util.CachingRewindableIterator;
import mir.util.HTTPRequestParser;
import mir.util.JDBCStringRoutines;
+import mir.util.SQLQueryBuilder;
import mir.util.URLBuilder;
import mircoders.global.MirGlobal;
import mircoders.module.ModuleComment;
}
}
- public void edit(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException
+ public void edit(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc
{
String idParam = req.getParameter("id");
if (idParam == null)
- throw new ServletModuleException("Invalid call: id not supplied ");
+ throw new ServletModuleExc("Invalid call: id not supplied ");
showComment(idParam, req, res);
}
- public void showComment(String anId, HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleException {
+ public void showComment(String anId, HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc {
try {
SimpleHash extraInfo = new SimpleHash();
TemplateModelRoot data;
deliver(aRequest, aResponse, data, extraInfo, templateObjektString);
}
- catch (Exception e) {
- throw new ServletModuleException(e.toString());
+ catch (Throwable e) {
+ throw new ServletModuleFailure(e);
}
}
- public void list(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleException
+ public void list(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc
{
HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
returnCommentList(aRequest, aResponse, where, order, offset);
}
- public void search(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleException
+ public void search(HttpServletRequest aRequest, HttpServletResponse aResponse) throws ServletModuleExc
{
HTTPRequestParser requestParser = new HTTPRequestParser(aRequest);
+ SQLQueryBuilder queryBuilder = new SQLQueryBuilder();
String queryField = "";
String searchField = requestParser.getParameter("searchfield");
String searchText = requestParser.getParameter("searchtext");
String searchIsPublished = requestParser.getParameter("searchispublished");
+ String searchStatus = requestParser.getParameter("searchstatus");
String searchOrder = requestParser.getParameter("searchorder");
- String whereClause = " (1=1) ";
- String orderClause = "webdb_create desc";
-
if (searchIsPublished.equals("0")) {
- whereClause=whereClause + "is_published='f'";
+ queryBuilder.appendAndCondition("is_published='f'");
}
else if (searchIsPublished.equals("1")) {
- whereClause=whereClause + "is_published='t'";
+ queryBuilder.appendAndCondition("is_published='t'");
}
- if (!searchField.equals("") && !searchText.equals("")) {
- queryField="";
-
- if (searchField.equals("title"))
- queryField = "title";
- else if (searchField.equals("creator"))
- queryField = "creator";
- else if (searchField.equals("description"))
- queryField = "description";
- else
- queryField = "";
-
- if (!queryField.equals("")) {
- if (!whereClause.equals(""))
- whereClause = whereClause + " and ";
-
- whereClause = whereClause + "lower(" + queryField + ") like '%" + JDBCStringRoutines.escapeStringLiteral(searchText.toLowerCase()) + "%'";
- }
+ if (searchText.length()>0) {
+ queryBuilder.appendAndCondition(
+ "lower("+ searchField + ") like " +
+ "'%" + JDBCStringRoutines.escapeStringLiteral(searchText.toLowerCase()) + "%'");
}
- System.out.println("search order = " + searchOrder);
-
- if (searchOrder.equals("datedesc")) {
- orderClause = "webdb_create desc";
- }
- else if (searchOrder.equals("dateasc")) {
- orderClause = "webdb_create asc";
+ if (searchStatus.length()>0) {
+ queryBuilder.appendAndCondition("to_comment_status="+Integer.parseInt(searchStatus));
}
- else if (searchOrder.equals("articletitle")) {
- orderClause = "(select content.title from content where content.id = comment.to_media) asc";
+
+ if (searchOrder.length()>0) {
+ if (searchOrder.equals("datedesc"))
+ queryBuilder.appendAscendingOrder("webdb_create");
+ else if (searchOrder.equals("dateasc"))
+ queryBuilder.appendDescendingOrder("webdb_create");
+ else if (searchOrder.equals("articletitle"))
+ queryBuilder.appendAscendingOrder("(select content.title from content where content.id = comment.to_media)");
+ else if (searchOrder.equals("creator"))
+ queryBuilder.appendDescendingOrder("creator");
}
- returnCommentList(aRequest, aResponse, whereClause, orderClause, 0);
+ returnCommentList(aRequest, aResponse, queryBuilder.getWhereClause(), queryBuilder.getOrderByClause(), 0);
}
- public void articlecomments(HttpServletRequest req, HttpServletResponse res) throws ServletModuleException
+ public void articlecomments(HttpServletRequest req, HttpServletResponse res) throws ServletModuleExc
{
String articleIdString = req.getParameter("articleid");
int articleId;
returnCommentList( req, res, "to_media="+articleId, "webdb_create desc", 0);
}
- catch (ServletModuleException e) {
- throw e;
- }
catch (Throwable e) {
- throw new ServletModuleException(e.getMessage());
+ throw new ServletModuleFailure(e);
}
}
public void returnCommentList(HttpServletRequest aRequest, HttpServletResponse aResponse,
- String aWhereClause, String anOrderByClause, int anOffset) throws ServletModuleException {
+ String aWhereClause, String anOrderByClause, int anOffset) throws ServletModuleExc {
// ML: experiment in using the producer's generation system instead of the
// old one...
urlBuilder.setValue("searchfield", requestParser.getParameter("searchfield"));
urlBuilder.setValue("searchtext", requestParser.getParameter("searchtext"));
urlBuilder.setValue("searchispublished", requestParser.getParameter("searchispublished"));
+ urlBuilder.setValue("searchstatus", requestParser.getParameter("searchstatus"));
urlBuilder.setValue("searchorder", requestParser.getParameter("searchorder"));
responseData.put("searchfield", requestParser.getParameter("searchfield"));
responseData.put("searchtext", requestParser.getParameter("searchtext"));
responseData.put("searchispublished", requestParser.getParameter("searchispublished"));
+ responseData.put("searchstatus", requestParser.getParameter("searchstatus"));
responseData.put("searchorder", requestParser.getParameter("searchorder"));
urlBuilder.setValue("offset", anOffset);
ServletHelper.generateResponse(aResponse.getWriter(), responseData, "commentlist.template");
}
catch (Throwable e) {
- e.printStackTrace(new PrintWriter(new LoggerToWriterAdapter(logger, LoggerWrapper.ERROR_MESSAGE)));
-
- throw new ServletModuleException(e.getMessage());
+ throw new ServletModuleFailure(e);
}
}
}