Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms
In directory 
james.mmbase.org:/tmp/cvs-serv14171/portlets-newsletter/src/java/com/finalist/newsletter/forms

Modified Files:
        NewsletterPublicationPublish.java 
Log Message:
CMSC-698 Added a confirmation page after the user clicks the Send Publication 
option.
Also had to moddify the struts config and action handler


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms
See also: http://www.mmbase.org/jira/browse/CMSC-698


Index: NewsletterPublicationPublish.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/forms/NewsletterPublicationPublish.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- NewsletterPublicationPublish.java   8 Jan 2008 10:45:00 -0000       1.4
+++ NewsletterPublicationPublish.java   17 Jan 2008 13:44:03 -0000      1.5
@@ -14,21 +14,58 @@
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
 import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Node;
 
+import com.finalist.cmsc.navigation.NavigationUtil;
+import com.finalist.cmsc.security.SecurityUtil;
+import com.finalist.cmsc.security.UserRole;
 import com.finalist.cmsc.struts.MMBaseFormlessAction;
 import com.finalist.newsletter.publisher.NewsletterPublisher;
 
 public class NewsletterPublicationPublish extends MMBaseFormlessAction {
 
+   /** name of submit button in jsp to confirm removal */
+   private static final String ACTION_REMOVE = "remove";
+
+   /** name of submit button in jsp to cancel removal */
+   private static final String ACTION_CANCEL = "cancel";
+
    @Override
    public ActionForward execute(ActionMapping mapping, HttpServletRequest 
request, Cloud cloud) throws Exception {
 
-      String number = request.getParameter("number");
-      if (number != null) {
+      int number = Integer.parseInt(getParameter(request, "number", true));
+
+      if (isSendAction(request)) {
+         Node newsletterPublicationNode = cloud.getNode(number);
+
+         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();
+
+         return mapping.findForward(SUCCESS);
       }
-      ActionForward ret = mapping.findForward("success");
-      return ret;
+
+      if (isCancelAction(request)) {
+         String forwardPath = mapping.findForward("cancel").getPath();
+         forwardPath = forwardPath.concat("?showpage=" + number);
+         return new ActionForward(forwardPath);
    }
+
+      // neither remove or cancel, show confirmation page
+      return mapping.findForward("confirmationpage");
+   }
+
+   private boolean isCancelAction(HttpServletRequest request) {
+      return getParameter(request, ACTION_CANCEL) != null;
+   }
+
+   private boolean isSendAction(HttpServletRequest request) {
+      return getParameter(request, ACTION_REMOVE) != null;
+   }
+
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to