[Yanel-commits] rev 44160 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl

michi at wyona.com michi at wyona.com
Thu Aug 13 09:05:41 CEST 2009


Author: michi
Date: 2009-08-13 09:05:40 +0200 (Thu, 13 Aug 2009)
New Revision: 44160

Added:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java
Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java
Log:
revisions and workflow further improved

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java	2009-08-13 07:01:18 UTC (rev 44159)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/DefaultMenu.java	2009-08-13 07:05:40 UTC (rev 44160)
@@ -125,29 +125,8 @@
         }
 
 
-        if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
-            RevisionInformation[] revisions = ((VersionableV2) resource).getRevisions();
-            if (revisions !=  null && revisions.length > 0) {
-                sb.append("<li class=\"haschild\">Revisions&#160;&#160;&#160;<ul>");
-                for (int i = revisions.length -1; i >= 0; i--) {
-                    boolean mostRecent = false;
-                    boolean oldestRevision = false;
-                    if (i == revisions.length - 1) mostRecent = true;
-                    if (i == 0) oldestRevision = true;
-                    sb.append((new RevisionInformationMenuItem(resource,
-                                                               revisions[i],
-                                                               resource.getRequestedLanguage())).toHTML(mostRecent, oldestRevision));
-                }
-                sb.append("</ul></li>");
-            } else {
-                sb.append("<li>No revisions yet</li>");
-            }
-        } else {
-            log.warn("This resource does not implement interface VersionableV2!");
-        }
+        sb.append(new RevisionsWorkflowMenuItem().getMenuItem(resource));
 
-
-
         if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Modifiable", "2")) {
             sb.append("<li><a href=\"?yanel.resource.usecase=delete\">Delete this page</a></li>");
         }

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java	2009-08-13 07:01:18 UTC (rev 44159)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionInformationMenuItem.java	2009-08-13 07:05:40 UTC (rev 44160)
@@ -56,7 +56,13 @@
                 workflowableRes = (WorkflowableV1) this.resource;
                 String state = workflowableRes.getWorkflowState(revisionInfo.getName());
 
-                value += " (" + formatDate(this.revisionInfo.getDate()) + ", " + state + ")" + NBSP + "<ul><li class=\"haschild\">Workflow";
+                String liveMarker = "";
+                //log.debug("Live status: " + WorkflowHelper.getLiveRevision(resource));
+                if (revisionInfo.getName().equals(WorkflowHelper.getLiveRevision(resource))) {
+                    liveMarker = " (LIVE)";
+                }
+
+                value += " (" + formatDate(this.revisionInfo.getDate()) + ", " + state + liveMarker + ")" + NBSP + "<ul><li class=\"haschild\">Workflow";
             
                 ITransitionMenuContent x = new TransitionMenuContentImpl(getResource(), state, getRevisionInfo().getName(), getMenuLanguageCode());
                 RevisionTransitionsMenuContent rt = new RevisionTransitions(getResource(), getRevisionInfo().getName(), getMenuLanguageCode(), x);

Added: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java	                        (rev 0)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/menu/impl/RevisionsWorkflowMenuItem.java	2009-08-13 07:05:40 UTC (rev 44160)
@@ -0,0 +1,58 @@
+package org.wyona.yanel.servlet.menu.impl;
+
+import org.wyona.yanel.core.Resource;
+import org.wyona.yanel.core.api.attributes.VersionableV2;
+import org.wyona.yanel.core.api.attributes.WorkflowableV1;
+import org.wyona.yanel.core.attributes.versionable.RevisionInformation;
+import org.wyona.yanel.core.map.Map;
+import org.wyona.yanel.core.util.ResourceAttributeHelper;
+import org.wyona.yanel.core.workflow.Transition;
+import org.wyona.yanel.core.workflow.Workflow;
+import org.wyona.yanel.core.workflow.WorkflowHelper;
+
+import org.wyona.yanel.servlet.menu.Menu;
+import org.wyona.yanel.servlet.menu.impl.RevisionInformationMenuItem;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+
+/**
+ * Generate a generic revisions and worlflow menu item
+ */
+public class RevisionsWorkflowMenuItem {
+
+    private static Logger log = Logger.getLogger(RevisionsWorkflowMenuItem.class);
+
+    /**
+     * Get generic revisions and workflow menu item
+     */
+    public String getMenuItem(Resource resource) throws Exception {
+        StringBuilder sb = new StringBuilder();
+
+        if (ResourceAttributeHelper.hasAttributeImplemented(resource, "Versionable", "2")) {
+            RevisionInformation[] revisions = ((VersionableV2) resource).getRevisions();
+            if (revisions !=  null && revisions.length > 0) {
+                sb.append("<li class=\"haschild\">Revisions (and Workflow)&#160;&#160;&#160;<ul>");
+                for (int i = revisions.length -1; i >= 0; i--) {
+                    boolean mostRecent = false;
+                    boolean oldestRevision = false;
+                    if (i == revisions.length - 1) mostRecent = true;
+                    if (i == 0) oldestRevision = true;
+                    sb.append((new RevisionInformationMenuItem(resource,
+                                                               revisions[i],
+                                                               resource.getRequestedLanguage())).toHTML(mostRecent, oldestRevision));
+                }
+                sb.append("</ul></li>");
+            } else {
+                sb.append("<li>No revisions yet</li>");
+            }
+        } else {
+            log.warn("This resource does not implement interface VersionableV2!");
+        }
+
+        return sb.toString();
+    }
+}



More information about the Yanel-commits mailing list