[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   <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)   <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