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