Update of /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms In directory james.mmbase.org:/tmp/cvs-serv23447/src/java/com/finalist/newsletter/forms
Modified Files: NewsletterCreate.java NewsletterPublicationCreate.java NewsletterPublicationDelete.java NewsletterPublicationEdit.java NewsletterPublicationManagementAction.java NewsletterPublicationPublish.java NewsletterPublicationSendEmail.java NewsletterPublicationTest.java NewsletterSubscriberSearchAction.java NewsletterTermSearchAction.java Added Files: NewsletterNewsletterSubscriberDeleteAction.java NewsletterStatisticSearchAction.java NewsletterSubscriptionAddRelAction.java NewsletterTermDeleteAction.java NewsletterTermsAddAction.java Log Message: cmsc-979,990 newsletter mangement (block by cmsc-217) See also: http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms NewsletterNewsletterSubscriberDeleteAction.java is new NewsletterStatisticSearchAction.java is new NewsletterSubscriptionAddRelAction.java is new NewsletterTermDeleteAction.java is new NewsletterTermsAddAction.java is new Index: NewsletterCreate.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterCreate.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -b -r1.10 -r1.11 --- NewsletterCreate.java 21 Jul 2008 12:52:40 -0000 1.10 +++ NewsletterCreate.java 24 Jul 2008 09:04:16 -0000 1.11 @@ -32,7 +32,6 @@ if (StringUtils.isBlank(action)) { request.getSession().setAttribute("parentnewsletter", parentnewsletter); - ActionForward ret = new ActionForward(mapping.findForward("openwizard").getPath() + "?action=create" + "&contenttype=newsletter" + "&returnurl=" + mapping.findForward("returnurl").getPath()); ret.setRedirect(true); @@ -52,10 +51,11 @@ // NewsletterPublicationUtil.createDefaultTerm(newNewsletter); NewsletterUtil.addScheduleForNewsletter(newNewsletter); - newNewsletter.setStringValue("scheduledescription",NewsletterUtil.getScheduleMessageByExpression(newNewsletter.getStringValue("schedule"))); + newNewsletter.setStringValue("scheduledescription", NewsletterUtil.getScheduleMessageByExpression(newNewsletter + .getStringValue("schedule"))); newNewsletter.commit(); addToRequest(request, "showpage", ewnodelastedited); - ActionForward ret = mapping.findForward(SUCCESS); + ActionForward ret = new ActionForward("/editors/site/NavigatorPanel.do?nodeId=" + ewnodelastedited + "&fresh=fresh"); return ret; } request.getSession().removeAttribute("parentnewsletter"); @@ -63,5 +63,4 @@ return ret; } } - } Index: NewsletterPublicationCreate.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationCreate.java,v retrieving revision 1.16 retrieving revision 1.17 diff -u -b -r1.16 -r1.17 --- NewsletterPublicationCreate.java 7 Jul 2008 04:03:43 -0000 1.16 +++ NewsletterPublicationCreate.java 24 Jul 2008 09:04:16 -0000 1.17 @@ -39,16 +39,16 @@ Node parentNode = cloud.getNode(parent); Node pubNode = cloud.getNode(publicationNode.getNumber()); RelationManager relManager = cloud.getRelationManager("newsletter", "newsletterpublication", "related"); - relManager.createRelation(parentNode,pubNode).commit(); + relManager.createRelation(parentNode, pubNode).commit(); String objectnumber = String.valueOf(publicationNode.getNumber()); request.getSession().removeAttribute("parent"); ActionForward ret = null; - if(StringUtils.isNotEmpty(forwardType)){ + if (StringUtils.isNotEmpty(forwardType)) { ret = new ActionForward(mapping.findForward("openwizard").getPath() + "?objectnumber=" + objectnumber + "&returnurl=" - + mapping.findForward("publicationmanage").getPath() + URLEncoder.encode("?forward") + "=" + forwardType + URLEncoder.encode("&newsletterId") + "=" + parent); - } - else{ + + mapping.findForward("publicationedit").getPath() + URLEncoder.encode("?forward") + "=" + forwardType + + URLEncoder.encode("&newsletterId") + "=" + parent); + } else { ret = new ActionForward(mapping.findForward("openwizard").getPath() + "?objectnumber=" + objectnumber + "&returnurl=" + mapping.findForward("returnurl").getPath()); } @@ -58,10 +58,11 @@ String ewnodelastedited = getParameter(request, "ewnodelastedited"); addToRequest(request, "showpage", ewnodelastedited); ActionForward ret; - if(StringUtils.isNotEmpty(forwardType)){ - ret = new ActionForward(mapping.findForward("publicationmanage").getPath() + "?newsletterId=" + request.getParameter("newsletterId")); + if (StringUtils.isNotEmpty(forwardType)) { + ret = new ActionForward(mapping.findForward("publicationedit").getPath() + "?newsletterId=" + request.getParameter("newsletterId")); + } else { + ret = new ActionForward("/editors/site/NavigatorPanel.do?nodeId=" + ewnodelastedited + "&fresh=fresh"); } - ret = mapping.findForward("SUCCESS"); return ret; } } Index: NewsletterPublicationDelete.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationDelete.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -b -r1.6 -r1.7 --- NewsletterPublicationDelete.java 7 Jul 2008 04:03:43 -0000 1.6 +++ NewsletterPublicationDelete.java 24 Jul 2008 09:04:16 -0000 1.7 @@ -72,7 +72,7 @@ protected ActionForward actionReturn(ActionMapping mapping, HttpServletRequest request, String forwardType, String parent){ ActionForward ret = null; if (StringUtils.isNotEmpty(forwardType)){ - ret =new ActionForward(mapping.findForward("publicationmanage").getPath() + "?newsletterId=" + parent); + ret =new ActionForward(mapping.findForward(forwardType).getPath() + "?newsletterId=" + parent); request.setAttribute("newsletterId", parent); } else{ Index: NewsletterPublicationEdit.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationEdit.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -b -r1.5 -r1.6 --- NewsletterPublicationEdit.java 7 Jul 2008 04:03:43 -0000 1.5 +++ NewsletterPublicationEdit.java 24 Jul 2008 09:04:16 -0000 1.6 @@ -28,14 +28,15 @@ public ActionForward execute(ActionMapping mapping, HttpServletRequest request, Cloud cloud) throws Exception { String action = getParameter(request, "action"); - String forwardType = getParameter(request ,"forward"); + String forwardType = getParameter(request, "forward"); String parent = getParameter(request, "parent"); if (StringUtils.isBlank(action)) { String objectnumber = getParameter(request, "number", true); ActionForward ret = new ActionForward(mapping.findForward("openwizard").getPath() + "?objectnumber=" + objectnumber + "&returnurl=" - + mapping.findForward("returnurl").getPath() + URLEncoder.encode("?forward=") + forwardType + URLEncoder.encode("&number=") + objectnumber + URLEncoder.encode("&parent=" + parent)); + + mapping.findForward("returnurl").getPath() + URLEncoder.encode("?forward=") + forwardType + URLEncoder.encode("&number=") + + objectnumber + URLEncoder.encode("&parent=" + parent)); ret.setRedirect(true); return ret; } else { @@ -43,11 +44,10 @@ String ewnodelastedited = getParameter(request, "ewnodelastedited"); addToRequest(request, "showpage", ewnodelastedited); ActionForward ret = null; - if(StringUtils.isNotEmpty(forwardType)){ - ret = new ActionForward(mapping.findForward("publicationmanage").getPath() + "?newsletterId=" + parent); - } - else{ - ret = mapping.findForward(SUCCESS); + if (StringUtils.isNotEmpty(forwardType)) { + ret = new ActionForward(mapping.findForward(forwardType).getPath() + "?newsletterId=" + parent); + } else { + ret = new ActionForward("/editors/site/NavigatorPanel.do?nodeId=" + ewnodelastedited + "&fresh=fresh"); } return ret; } Index: NewsletterPublicationManagementAction.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationManagementAction.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- NewsletterPublicationManagementAction.java 21 Jul 2008 12:52:40 -0000 1.2 +++ NewsletterPublicationManagementAction.java 24 Jul 2008 09:04:16 -0000 1.3 @@ -17,8 +17,7 @@ public class NewsletterPublicationManagementAction extends DispatchActionSupport { - private static Log log = LogFactory - .getLog(NewsletterPublicationManagementAction.class); + private static Log log = LogFactory.getLog(NewsletterPublicationManagementAction.class); NewsletterPublicationService publicationService; @@ -29,122 +28,152 @@ } @Override - protected ActionForward unspecified(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) + protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug("No parameter specified,go to edit page ,show related publications"); int newsletterId = Integer.parseInt(request.getParameter("newsletterId")); - Set<Publication> publications; - + List<Publication> publications; Date now = new Date(); int pagesize = 10; - if(StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { + if (StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { pagesize = Integer.parseInt(PropertiesUtil.getProperty("repository.search.results.per.page")); } int offset = 0; - if(StringUtils.isNotBlank(request.getParameter("offset"))){ + if (StringUtils.isNotBlank(request.getParameter("offset"))) { offset = Integer.parseInt(request.getParameter("offset")); } - String forwardType = ""; - if(StringUtils.isNotBlank(request.getParameter("searchForwardType"))) { - forwardType =request.getParameter("searchForwardType"); - } - if(forwardType.equals("statistics")){ - request.setAttribute("newsletterId", newsletterId); - ActionForward ret= new ActionForward(mapping.findForward("statisticmanagement").getPath() + "?newsletterId=" + newsletterId); - return ret; - } + // <<<<<<< NewsletterPublicationManagementAction.java + // ======= + // String forwardType = ""; + // if(StringUtils.isNotBlank(request.getParameter("searchForwardType"))) + // { + // forwardType =request.getParameter("searchForwardType"); + // } + // if(forwardType.equals("statistics")){ + // request.setAttribute("newsletterId", newsletterId); + // ActionForward ret= new + // ActionForward(mapping.findForward("statisticmanagement").getPath() + + // "?newsletterId=" + newsletterId); + // return ret; + // } + // >>>>>>> 1.2 int resultCount = publicationService.searchPublicationCountForEdit(newsletterId, "", "", null, now); - publications = publicationService.searchPublication(newsletterId, "", "", null, now, pagesize, offset*pagesize); + publications = publicationService.searchPublication(newsletterId, "", "", null, now, pagesize, offset * pagesize, "number", "UP"); List<Map<String, String>> results = convertPublicationsToMap(publications); request.setAttribute("results", results); - request.setAttribute("resultCount",resultCount); + request.setAttribute("resultCount", resultCount); request.setAttribute("newsletterId", newsletterId); + request.setAttribute("order", "number"); + request.setAttribute("direction", "1"); return mapping.findForward("newsletterpublicationlist"); } @SuppressWarnings("deprecation") - public ActionForward searchPublication(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response){ + public ActionForward searchPublication(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { log.debug("parameter specified, search newsletterpublication "); int newsletterId = Integer.parseInt(request.getParameter("newsletterId")); int pagesize = 10; - if(StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { + if (StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { pagesize = Integer.parseInt(PropertiesUtil.getProperty("repository.search.results.per.page")); } - int offset = Integer.parseInt(request.getParameter("offset")); - NewsletterPublicationManageForm myForm = (NewsletterPublicationManageForm)form; + int offset = 0; + if (StringUtils.isNotBlank(request.getParameter("offset"))) { + offset = Integer.parseInt(request.getParameter("offset")); + } + String order = "number"; + if (StringUtils.isNotBlank(request.getParameter("order"))) { + order = request.getParameter("order"); + } + String direction = "UP"; + String paramDir = request.getParameter("direction"); + if (StringUtils.isNotBlank(paramDir)) { + direction = "1".equals(paramDir) ? "UP" : "DOWN"; + } + + NewsletterPublicationManageForm myForm = (NewsletterPublicationManageForm) form; String tmpTitle = myForm.getTitle(); String tmpSubject = myForm.getSubject(); String tmpPeriod = myForm.getPeriod(); Calendar calendar = Calendar.getInstance(); - Date now = calendar.getTime(); - Date tmpDate = null; + Date endTime = calendar.getTime(); + Date startTime = null; + + switch (Integer.parseInt(tmpPeriod)) { - switch(Integer.parseInt(tmpPeriod)){ case 1: - calendar.add(Calendar.DAY_OF_YEAR,-1); + calendar.add(Calendar.DAY_OF_YEAR, -1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); - tmpDate = calendar.getTime(); + startTime = calendar.getTime(); break; case 7: - calendar.add(Calendar.DAY_OF_YEAR,-7); + calendar.add(Calendar.DAY_OF_YEAR, -7); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); - tmpDate = calendar.getTime(); + startTime = calendar.getTime(); break; case 14: - calendar.add(Calendar.DAY_OF_YEAR,-14); + calendar.add(Calendar.DAY_OF_YEAR, -14); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); - tmpDate = calendar.getTime(); + startTime = calendar.getTime(); break; case 30: - calendar.add(Calendar.MONTH,-1); + calendar.add(Calendar.MONTH, -1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); - tmpDate = calendar.getTime(); + startTime = calendar.getTime(); break; case 365: calendar.set(Calendar.YEAR, -1); calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.MINUTE, 0); calendar.set(Calendar.SECOND, 0); - tmpDate = calendar.getTime(); + startTime = calendar.getTime(); + break; + default: break; - default: break; } - Set<Publication> publications; - int resultCount = publicationService.searchPublicationCountForEdit(newsletterId, tmpTitle, tmpSubject, tmpDate, now); - publications = publicationService.searchPublication(newsletterId, tmpTitle, tmpSubject, tmpDate, now, pagesize, offset*pagesize); + List<Publication> publications; + int resultCount = publicationService.searchPublicationCountForEdit(newsletterId, tmpTitle, tmpSubject, startTime, endTime); + publications = publicationService.searchPublication(newsletterId, tmpTitle, tmpSubject, startTime, endTime, pagesize, offset * pagesize, + order, direction); + request.setAttribute("newsletterId", newsletterId); request.setAttribute("results", publications); - request.setAttribute("resultCount",resultCount); + request.setAttribute("resultCount", resultCount); request.setAttribute("offset", offset); - request.setAttribute("newsletterId", newsletterId); - return mapping.findForward("newsletterpublicationlist"); - } - public ActionForward termList(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ - if(StringUtils.isNotBlank(request.getParameter("newsletterId"))){ - request.setAttribute("newsletterId", request.getParameter("newsletterId")); - } - return mapping.findForward("termlist"); + request.setAttribute("order", order); + request.setAttribute("direction", paramDir); + return mapping.findForward("newsletterpublicationlist"); } - private List convertPublicationsToMap(Set<Publication> publications) { + private List convertPublicationsToMap(List<Publication> publications) { + // ======= + // public ActionForward termList(ActionMapping mapping, ActionForm form, + // HttpServletRequest request, HttpServletResponse response){ + // if(StringUtils.isNotBlank(request.getParameter("newsletterId"))){ + // request.setAttribute("newsletterId", + // request.getParameter("newsletterId")); + // } + // return mapping.findForward("termlist"); + // } + // + // private List convertPublicationsToMap(Set<Publication> publications) + // { + // + // >>>>>>> 1.2 List<Map> results = new ArrayList<Map>(); - for (Publication publication1 : publications) { + for (Publication publication : publications) { Map result = new HashMap(); - Publication publication = publication1; result.put("id", publication.getId()); result.put("title", publication.getTitle()); result.put("subject", publication.getSubject()); Index: NewsletterPublicationPublish.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationPublish.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -b -r1.17 -r1.18 --- NewsletterPublicationPublish.java 21 Jul 2008 13:09:00 -0000 1.17 +++ NewsletterPublicationPublish.java 24 Jul 2008 09:04:16 -0000 1.18 @@ -31,6 +31,13 @@ import com.finalist.newsletter.services.NewsletterPublicationService; import com.finalist.newsletter.util.NewsletterPublicationUtil; import com.finalist.newsletter.util.NewsletterUtil; +import org.apache.commons.lang.StringUtils; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.mmbase.bridge.Cloud; +import org.mmbase.bridge.Node; + +import javax.servlet.http.HttpServletRequest; public class NewsletterPublicationPublish extends MMBaseFormlessAction { @@ -46,11 +53,11 @@ NewsletterPublicationService publicationService = (NewsletterPublicationService) ApplicationContextFactory.getBean("publicationService"); int number = Integer.parseInt(getParameter(request, "number", true)); - if(NewsletterUtil.isPaused(NewsletterPublicationUtil.getNewsletterByPublicationNumber(number))) { + if (NewsletterUtil.isPaused(NewsletterPublicationUtil.getNewsletterByPublicationNumber(number))) { request.setAttribute("isPaused", true); return mapping.findForward(SUCCESS); } - Map<String,List<String>> sendResults = null; + Map<String, List<String>> sendResults = null; Node publicationNode = cloud.getNode(number); if (isSendAction(request)) { @@ -70,8 +77,7 @@ request.setAttribute("sendResults", sendResults); request.setAttribute("sendSuccess", sendResults.get(NewsletterPublicationService.SEND_SUCCESS).size()); request.setAttribute("sendFail", sendResults.get(NewsletterPublicationService.SEND_FAIL).size()); - } - else { + } else { publicationService.setStatus(number, Publication.STATUS.READY); request.setAttribute("isPublish", true); Publish.publish(publicationNode); @@ -83,6 +89,12 @@ if (isCancelAction(request)) { String forwardPath = mapping.findForward("cancel").getPath(); forwardPath = forwardPath.concat("?showpage=" + number); + if (StringUtils.isNotBlank(request.getParameter("forward"))) { + ActionForward ret = new ActionForward(mapping.findForward("publicationedit").getPath() + "?newsletterId=" + + request.getParameter("newsletterId")); + ret.setRedirect(true); + return ret; + } return new ActionForward(forwardPath); } Index: NewsletterPublicationSendEmail.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationSendEmail.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- NewsletterPublicationSendEmail.java 21 Jul 2008 13:09:00 -0000 1.7 +++ NewsletterPublicationSendEmail.java 24 Jul 2008 09:04:16 -0000 1.8 @@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang.StringUtils; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.mmbase.bridge.Cloud; @@ -51,6 +52,12 @@ if (isCancelAction(request)) { String forwardPath = mapping.findForward("cancel").getPath(); forwardPath = forwardPath.concat("?showpage=" + number); + if (StringUtils.isNotBlank(request.getParameter("forward"))) { + ActionForward ret = new ActionForward(mapping.findForward("publicationedit").getPath() + "?newsletterId=" + + request.getParameter("newsletterId")); + ret.setRedirect(true); + return ret; + } return new ActionForward(forwardPath); } Index: NewsletterPublicationTest.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationTest.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -b -r1.7 -r1.8 --- NewsletterPublicationTest.java 7 Jul 2008 20:28:50 -0000 1.7 +++ NewsletterPublicationTest.java 24 Jul 2008 09:04:16 -0000 1.8 @@ -31,18 +31,24 @@ int number = Integer.parseInt(getParameter(request, "number", true)); if (isSendAction(request)) { -// String email = getParameter(request, "email"); -// String mimeType = getParameter(request, "minetype"); + // String email = getParameter(request, "email"); + // String mimeType = getParameter(request, "minetype"); -// UserRole role = NavigationUtil.getRole(newsletterPublicationNode.getCloud(), newsletterPublicationNode, false); -// boolean isWebMaster = (role != null && SecurityUtil.isWebmaster(role)); -// -// if (NavigationUtil.getChildCount(newsletterPublicationNode) > 0 && !isWebMaster) { -// return mapping.findForward("confirmationpage"); -// } -// Thread publisher = new NewsletterPublisher(number); -// publisher.start(); -// NewsletterPublicationService publicationService = (NewsletterPublicationService) ApplicationContextFactory.getBean("publicationService"); + // UserRole role = + // NavigationUtil.getRole(newsletterPublicationNode.getCloud(), + // newsletterPublicationNode, false); + // boolean isWebMaster = (role != null && + // SecurityUtil.isWebmaster(role)); + // + // if (NavigationUtil.getChildCount(newsletterPublicationNode) > 0 + // && !isWebMaster) { + // return mapping.findForward("confirmationpage"); + // } + // Thread publisher = new NewsletterPublisher(number); + // publisher.start(); + // NewsletterPublicationService publicationService = + // (NewsletterPublicationService) + // ApplicationContextFactory.getBean("publicationService"); return mapping.findForward(SUCCESS); } @@ -51,7 +57,6 @@ forwardPath = forwardPath.concat("?showpage=" + number); return new ActionForward(forwardPath); } - // neither remove or cancel, show confirmation page return mapping.findForward("inputpage"); } Index: NewsletterSubscriberSearchAction.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterSubscriberSearchAction.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- NewsletterSubscriberSearchAction.java 7 Jul 2008 20:28:50 -0000 1.2 +++ NewsletterSubscriberSearchAction.java 24 Jul 2008 09:04:16 -0000 1.3 @@ -18,7 +18,6 @@ import org.apache.struts.action.ActionMapping; import org.springframework.web.struts.DispatchActionSupport; - import com.finalist.cmsc.mmbase.PropertiesUtil; import com.finalist.cmsc.services.community.person.Person; import com.finalist.cmsc.services.community.person.PersonService; @@ -27,104 +26,127 @@ import com.finalist.newsletter.services.NewsletterPublicationService; import com.finalist.newsletter.services.NewsletterService; import com.finalist.newsletter.services.NewsletterSubscriptionServices; +import com.finalist.newsletter.services.SubscriptionHibernateService; -public class NewsletterSubscriberSearchAction extends DispatchActionSupport{ +public class NewsletterSubscriberSearchAction extends DispatchActionSupport { private static Log log = LogFactory.getLog(NewsletterPublicationManagementAction.class); NewsletterPublicationService publicationService; PersonService personService; - NewsletterSubscriptionServices subscriptionService ; + NewsletterSubscriptionServices subscriptionService; AuthenticationService authenticationService; NewsletterService newsletterService; + SubscriptionHibernateService subscriptionHService; protected void onInit() { super.onInit(); publicationService = (NewsletterPublicationService) getWebApplicationContext().getBean("publicationService"); personService = (PersonService) getWebApplicationContext().getBean("personService"); subscriptionService = (NewsletterSubscriptionServices) getWebApplicationContext().getBean("subscriptionServices"); - authenticationService = (AuthenticationService)getWebApplicationContext().getBean("authenticationService"); - newsletterService = (NewsletterService)getWebApplicationContext().getBean("newsletterServices"); + authenticationService = (AuthenticationService) getWebApplicationContext().getBean("authenticationService"); + newsletterService = (NewsletterService) getWebApplicationContext().getBean("newsletterServices"); + subscriptionHService = (SubscriptionHibernateService) getWebApplicationContext().getBean("subscriptionHService"); } - - protected ActionForward unspecified(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) + protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { log.debug("No parameter specified,go to subscriber page ,show related subscribers"); int newsletterId = Integer.parseInt(request.getParameter("newsletterId")); int pagesize = 10; - if(StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { + if (StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { pagesize = Integer.parseInt(PropertiesUtil.getProperty("repository.search.results.per.page")); } - List results = searchSubscribers(newsletterId, "", "", "", "", pagesize, 0); - if(results!=null){ + int resultCount = CountsearchSubscribers(newsletterId, "", "", "", ""); + List results = searchSubscribers(newsletterId, "", "", "", "", pagesize, 0, "number", "ASC"); + if (results != null) { request.setAttribute("results", results); - request.setAttribute("resultCount", results.size()); + request.setAttribute("resultCount", resultCount); } - request.setAttribute("newsletterId",newsletterId); + request.setAttribute("newsletterId", newsletterId); + request.setAttribute("offset", 0); + request.setAttribute("order", "number"); + request.setAttribute("direction", 1); return mapping.findForward("success"); } - public ActionForward subScriberSearch(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response){ + public ActionForward subScriberSearch(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { log.debug("parameter action specified, go to the subscribers page, show related subscriber list"); int newsletterId = Integer.parseInt(request.getParameter("newsletterId")); int pagesize = 10; - if(StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { + if (StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { pagesize = Integer.parseInt(PropertiesUtil.getProperty("repository.search.results.per.page")); } - newsletterId = Integer.parseInt(request.getParameter("newsletterId")); - - NewsletterSubscriberSearchForm myForm = (NewsletterSubscriberSearchForm)form; + int offset = 0; + if (StringUtils.isNotBlank(request.getParameter("offset"))) { + offset = Integer.parseInt(request.getParameter("offset")); + } + String order = "number"; + if (StringUtils.isNotBlank(request.getParameter("order"))) { + order = request.getParameter("order"); + } + String direction = "ASC"; + String tmpDir = request.getParameter("direction"); + if (StringUtils.isNotBlank(tmpDir)) { + direction = "1".equals(tmpDir) ? "ASC" : "DESC"; + } + NewsletterSubscriberSearchForm myForm = (NewsletterSubscriberSearchForm) form; String tmpTerm = myForm.getTerm(); - String tmpFullName = myForm.getTerm(); + String tmpFullName = myForm.getFullname(); String tmpUserName = myForm.getUsername(); String tmpEmail = myForm.getEmail(); + int resultCount = CountsearchSubscribers(newsletterId, tmpTerm, tmpFullName, tmpUserName, tmpEmail); + List results = searchSubscribers(newsletterId, tmpTerm, tmpFullName, tmpUserName, tmpEmail, pagesize, offset * pagesize, order, direction); - List results = searchSubscribers(newsletterId, tmpTerm, tmpFullName, tmpUserName, tmpEmail, pagesize, 0); - - if(results!=null){ + if (results != null) { request.setAttribute("results", results); - request.setAttribute("resultCount", results.size()); + request.setAttribute("resultCount", resultCount); } - request.setAttribute("newsletterId",newsletterId); + request.setAttribute("newsletterId", newsletterId); + request.setAttribute("offset", offset); + request.setAttribute("order", order); + request.setAttribute("direction", tmpDir); return mapping.findForward("success"); } - private void AddToMap(List<Map<String, String>> results, String fullName,String userName, String email, String newsletters, String terms) { + private void AddToMap(List<Map> results, String fullName, String userName, String email, String newsletters, String terms, int authenticationId) { - Map<String, String> result = new HashMap<String, String>(); + Map result = new HashMap(); result.put("fullname", fullName); result.put("username", userName); result.put("email", email); result.put("newsletters", newsletters); result.put("terms", terms); + result.put("id", authenticationId); results.add(result); } - private List<Map<String, String>> searchSubscribers(int newsletterId, String term, String fullName, String userName, String email, int pageSize, int offset){ - List<Map<String, String>> results = new ArrayList<Map<String, String>>(); - Set<Integer> authenticationIdList = new HashSet<Integer>(); - authenticationIdList = subscriptionService.getRecordIdByNewsletterAndName(newsletterId, StringUtils.isNotBlank(term)?term : ""); - for(int authenticationId : authenticationIdList){ - Person tmpPerson = personService.getPersonByAuthenticationId(new Long(authenticationId)); - String tmpFullName = ""; - if(StringUtils.isNotBlank(tmpPerson.getFirstName())){ - tmpFullName += tmpPerson.getFirstName(); - } - if(StringUtils.isNotBlank(tmpPerson.getLastName())){ - tmpFullName += " " + tmpPerson.getLastName(); - } - String tmpUserName = authenticationService.getAuthenticationById(new Long(authenticationId)).getUserId(); - String tmpEmail = tmpPerson.getEmail(); - String tmpNewsletters = subscriptionService.getNewsletterNameList(authenticationId); - String tmpTerms = subscriptionService.getTermsNameList(authenticationId); - - AddToMap(results, tmpFullName, tmpUserName, tmpEmail, tmpNewsletters, tmpTerms); + private List<Map> searchSubscribers(int newsletterId, String terms, String fullName, String userName, String email, int pageSize, int offset, + String order, String direction) { + List<Map> results = new ArrayList<Map>(); + + Set<Long> authenticationIds = new HashSet<Long>(); + authenticationIds = subscriptionService.getAuthenticationByTerms(newsletterId, terms); + List<Object[]> qResults = subscriptionHService.getSubscribersRelatedInfo(authenticationIds, fullName, userName, email, pageSize, offset, + order, direction); + for (Object[] result : qResults) { + String tmpFullName = result[0].toString() + " " + result[1].toString(); + String tmpEmail = result[2].toString(); + int tmpAuthenticationId = Integer.parseInt(result[3].toString()); + String tmpNewsletters = subscriptionService.getNewsletterNameList(tmpAuthenticationId); + String tmpTerms = subscriptionService.getTermsNameList(tmpAuthenticationId); + String tmpUserName = result[4].toString(); + AddToMap(results, tmpFullName, tmpUserName, tmpEmail, tmpNewsletters, tmpTerms, tmpAuthenticationId); } return results; } + + private int CountsearchSubscribers(int newsletterId, String terms, String fullName, String userName, String email) { + Set<Long> authenticationIds = new HashSet<Long>(); + authenticationIds = subscriptionService.getAuthenticationByTerms(newsletterId, terms); + int resultCount = subscriptionHService.getSubscribersCount(authenticationIds, fullName, userName, email); + return resultCount; + } } Index: NewsletterTermSearchAction.java =================================================================== RCS file: /var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterTermSearchAction.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -b -r1.3 -r1.4 --- NewsletterTermSearchAction.java 21 Jul 2008 13:09:00 -0000 1.3 +++ NewsletterTermSearchAction.java 24 Jul 2008 09:04:16 -0000 1.4 @@ -1,6 +1,6 @@ package com.finalist.newsletter.forms; -import java.util.Set; +import java.util.List; import javax.servlet.http.HttpServletRequest; @@ -18,27 +18,41 @@ public class NewsletterTermSearchAction extends MMBaseFormlessAction { @Override - public ActionForward execute(ActionMapping mapping, - HttpServletRequest request, Cloud cloud) throws Exception { + public ActionForward execute(ActionMapping mapping, HttpServletRequest request, Cloud cloud) throws Exception { // TODO Auto-generated method stub int newsletterId = Integer.parseInt(request.getParameter("newsletterId")); String tmpName = request.getParameter("name"); int pagesize = 10; int offset = 0; - - if(StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { + int resultCount = 0; + if (StringUtils.isNotEmpty(PropertiesUtil.getProperty("repository.search.results.per.page"))) { pagesize = Integer.parseInt(PropertiesUtil.getProperty("repository.search.results.per.page")); } - if(StringUtils.isNotBlank(request.getParameter("offset"))){ + if (StringUtils.isNotBlank(request.getParameter("offset"))) { offset = Integer.parseInt(request.getParameter("offset")); } + String order = "number"; + if (StringUtils.isNotBlank(request.getParameter("order"))) { + order = request.getParameter("order"); + } + String direction = "UP"; + String paramDir = request.getParameter("direction"); + if (StringUtils.isNotBlank(paramDir)) { + direction = "1".equals(paramDir) ? "UP" : "DOWN"; + } NewsletterService newsletterService = (NewsletterService) ApplicationContextFactory.getBean("newsletterServices"); - Set<Term> terms = newsletterService.getNewsletterTermsByName(newsletterId, tmpName, pagesize, offset); - if(terms != null){ + resultCount = newsletterService.getNewsletterTermsCountByName(newsletterId, tmpName); + List<Term> terms = newsletterService.getNewsletterTermsByName(newsletterId, tmpName, pagesize, offset * pagesize, order, direction); + + if (terms != null) { request.setAttribute("results", terms); - request.setAttribute("resultCount", terms.size()); + request.setAttribute("resultCount", resultCount); + request.setAttribute("offset", offset); + + request.setAttribute("order", order); + request.setAttribute("direction", paramDir); } - request.setAttribute("newsletterId",newsletterId); + request.setAttribute("newsletterId", newsletterId); return mapping.findForward("success"); } _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs