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

Modified Files:
      Tag: b1_5
        NewsletterPublicationTreeItemRenderer.java 
Log Message:
CMSC-1178 - Add restrictions to Newsletter edition workflow for SiteTree. Also 
improved code.


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


Index: NewsletterPublicationTreeItemRenderer.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/tree/NewsletterPublicationTreeItemRenderer.java,v
retrieving revision 1.16.2.11
retrieving revision 1.16.2.12
diff -u -b -r1.16.2.11 -r1.16.2.12
--- NewsletterPublicationTreeItemRenderer.java  11 Dec 2008 07:22:07 -0000      
1.16.2.11
+++ NewsletterPublicationTreeItemRenderer.java  12 Dec 2008 17:26:55 -0000      
1.16.2.12
@@ -4,6 +4,7 @@
 import org.mmbase.util.logging.Logger;
 import org.mmbase.util.logging.Logging;
 
+import com.finalist.cmsc.mmbase.PropertiesUtil;
 import com.finalist.cmsc.navigation.NavigationRenderer;
 import com.finalist.cmsc.navigation.NavigationTreeItemRenderer;
 import com.finalist.cmsc.navigation.NavigationUtil;
@@ -14,6 +15,7 @@
 import com.finalist.cmsc.services.publish.Publish;
 import com.finalist.newsletter.domain.EditionStatus;
 import com.finalist.newsletter.domain.Publication;
+import com.finalist.newsletter.forms.NewsletterPublicationPublish;
 import com.finalist.newsletter.util.NewsletterPublicationUtil;
 import com.finalist.tree.TreeElement;
 import com.finalist.tree.TreeModel;
@@ -37,15 +39,16 @@
       String name = parentNode.getStringValue(PagesUtil.TITLE_FIELD);
       String fragment = 
parentNode.getStringValue(NavigationUtil.getFragmentFieldname(parentNode));
 
-      String id = String.valueOf(parentNode.getNumber());
+      int id = parentNode.getNumber();
       TreeElement element = renderer.createElement(parentNode, role, name, 
fragment, secure);
 
-      String process_status = 
NewsletterPublicationUtil.getEditionStatus(Integer.valueOf(id));
       if (SecurityUtil.isWriter(role)) {
          if (SecurityUtil.isEditor(role)) {
             element.addOption(renderer.createTreeOption("edit_defaults.png", 
"site.newsletteredition.edit", "newsletter",
                   "../newsletter/NewsletterPublicationEdit.do?number=" + id));
          }
+         
+         String edition_status = 
NewsletterPublicationUtil.getEditionStatus(parentNode);
          boolean isSingleApplication = true;
          boolean isPublished;
          isSingleApplication = ServerUtil.isSingle();
@@ -63,8 +66,25 @@
             element.addOption(renderer.createTreeOption("delete.png", 
"site.newsletteredition.remove", "newsletter",
                      "../newsletter/NewsletterPublicationDelete.do?number=" + 
id));
          }  
-         element.addOption(renderer.createTreeOption("type/email_error.png", 
"site.newsletteredition.sendmail", "newsletter",
-               "../newsletter/NewsletterPublicationPublish.do?number=" + id));
+         
+         boolean skipFreezing = 
"true".equalsIgnoreCase(PropertiesUtil.getProperty(NewsletterPublicationPublish.NEWSLETTER_FREEZE_PROPERTY));
+         boolean skipApproving = 
"true".equalsIgnoreCase(PropertiesUtil.getProperty(NewsletterPublicationPublish.NEWSLETTER_APPROVE_PROPERTY));
 
+
+         //Only show Send Newsletter Edition when user is webmaster or when 
newsletter is in proper state, or when property allows it.
+         if (SecurityUtil.isWebmaster(role)) {
+            
element.addOption(renderer.createTreeOption("type/email_error.png", 
"site.newsletteredition.sendmail", "newsletter", 
"../newsletter/NewsletterPublicationPublish.do?number=" + id));
+         } else {
+            
+            if(skipFreezing && skipApproving ) {
+               
element.addOption(renderer.createTreeOption("type/email_error.png", 
"site.newsletteredition.sendmail", "newsletter", 
"../newsletter/NewsletterPublicationPublish.do?number=" + id));
+            } else
+            {
+               if(EditionStatus.APPROVED.value().equals(edition_status)) {
+                  
element.addOption(renderer.createTreeOption("type/email_error.png", 
"site.newsletteredition.sendmail", "newsletter", 
"../newsletter/NewsletterPublicationPublish.do?number=" + id));
+               }
+            }
+         }
+         
          element.addOption(renderer.createTreeOption("type/email_go.png", 
"site.newsletteredition.test", "newsletter",
                "../newsletter/NewsletterPublicationTest.do?number=" + id));
 
@@ -75,23 +95,25 @@
             element.addOption(renderer.createTreeOption("publish.png", 
"site.newsletteredition.publish", "newsletter",
                      "../workflow/publish.jsp?number=" + id));
          }
-         if(EditionStatus.INITIAL.value().equals(process_status)) {
-            element.addOption(renderer.createTreeOption("status_finished.png", 
"site.newsletteredition.freeze", "newsletter",
-                  "../newsletter/NewsletterEditionFreeze.do?number=" + id));
+         
+         if (EditionStatus.INITIAL.value().equals(edition_status)) {
+            element.addOption(renderer.createTreeOption("status_finished.png", 
"site.newsletteredition.freeze", "newsletter", 
"../newsletter/NewsletterEditionFreeze.do?number=" + id));
          }
-         if(EditionStatus.FROZEN.value().equals(process_status)) {
-            element.addOption(renderer.createTreeOption("status_approved.png", 
"site.newsletteredition.defrost", "newsletter",
-               "../newsletter/NewsletterEditionDefrost.do?number=" + id));
+         else if (EditionStatus.FROZEN.value().equals(edition_status)) {
+            element.addOption(renderer.createTreeOption("status_approved.png", 
"site.newsletteredition.defrost", "newsletter", 
"../newsletter/NewsletterEditionDefrost.do?number=" + id));
          }
             
-         String status = 
NewsletterPublicationUtil.getEditionStatus(Integer.parseInt(id));
-         if("approved".equalsIgnoreCase(status)){
-            element.addOption(renderer.createTreeOption("status_onlive.png", 
"site.newsletteredition.revokeapproval", 
"newsletter","../newsletter/NewsletterEditionRevoke.do?number=" + id));
-         }
-         else if("frozen".equalsIgnoreCase(status)){
+         if (EditionStatus.FROZEN.value().equals(edition_status) ||
+            skipFreezing && 
EditionStatus.INITIAL.value().equals(edition_status))
+         {
             
element.addOption(renderer.createTreeOption("status_published.png", 
"site.newsletteredition.approve", 
"newsletter","../newsletter/NewsletterEditionApprove.do?number=" + id));
          }
+         else if(EditionStatus.APPROVED.value().equals(edition_status)){
+            element.addOption(renderer.createTreeOption("status_onlive.png", 
"site.newsletteredition.revokeapproval", 
"newsletter","../newsletter/NewsletterEditionRevoke.do?number=" + id));
+         }
+          
       }
+      
       element.addOption(renderer.createTreeOption("rights.png", 
"site.page.rights", "../usermanagement/pagerights.jsp?number=" + id));
       return element;
    }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to