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

Reply via email to