X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fservlet%2FServletModuleComment.java;h=510b98442153ae83820f00a877f2611de037aeb4;hb=86a7f9a337462ad82b23c77e91621929b2a741e3;hp=5fcc9e23c5eacc8d445d0076b7fb7f6ae87922e5;hpb=d90c1bbdd5e1823253436f24dce80de4f0abbfcb;p=mir.git diff --git a/source/mircoders/servlet/ServletModuleComment.java b/source/mircoders/servlet/ServletModuleComment.java index 5fcc9e23..510b9844 100755 --- a/source/mircoders/servlet/ServletModuleComment.java +++ b/source/mircoders/servlet/ServletModuleComment.java @@ -31,7 +31,6 @@ package mircoders.servlet; -import java.io.PrintWriter; import java.util.Map; import javax.servlet.http.HttpServletRequest; @@ -40,13 +39,14 @@ import javax.servlet.http.HttpServletResponse; 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; @@ -92,17 +92,17 @@ public class ServletModuleComment extends ServletModule } } - 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; @@ -114,13 +114,13 @@ public class ServletModuleComment extends ServletModule 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); @@ -131,62 +131,50 @@ public class ServletModuleComment extends ServletModule 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; @@ -196,16 +184,13 @@ public class ServletModuleComment extends ServletModule 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... @@ -238,11 +223,13 @@ public class ServletModuleComment extends ServletModule 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); @@ -267,9 +254,7 @@ public class ServletModuleComment extends ServletModule 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); } } }