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