You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2008/03/26 03:57:50 UTC

svn commit: r641125 - in /lenya/trunk/src/modules-core/sitemanagement: java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java resources/i18n/cmsui.xml resources/i18n/cmsui_de.xml usecases/tab/meta.jx

Author: andreas
Date: Tue Mar 25 19:57:48 2008
New Revision: 641125

URL: http://svn.apache.org/viewvc?rev=641125&view=rev
Log:
Don't allow to change meta data if workflow event can't be invoked.

Modified:
    lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
    lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml
    lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui_de.xml
    lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx

Modified: lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java?rev=641125&r1=641124&r2=641125&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java (original)
+++ lenya/trunk/src/modules-core/sitemanagement/java/src/org/apache/lenya/cms/metadata/usecases/Metadata.java Tue Mar 25 19:57:48 2008
@@ -20,7 +20,6 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -28,12 +27,10 @@
 import org.apache.lenya.cms.metadata.MetaData;
 import org.apache.lenya.cms.metadata.MetaDataRegistry;
 import org.apache.lenya.cms.publication.Document;
-import org.apache.lenya.cms.publication.Publication;
 import org.apache.lenya.cms.repository.Node;
 import org.apache.lenya.cms.site.usecases.SiteUsecase;
 import org.apache.lenya.cms.usecase.UsecaseException;
 import org.apache.lenya.cms.workflow.WorkflowUtil;
-import org.apache.lenya.cms.workflow.usecases.UsecaseWorkflowHelper;
 
 /**
  * Usecase to edit metadata for a resource.
@@ -57,10 +54,12 @@
         
         private String[] values;
         private Element element;
+        private boolean editable;
         
-        public MetaDataWrapper(Element element, String[] values) {
+        public MetaDataWrapper(Element element, String[] values, boolean canChange) {
             this.values = values;
             this.element = element;
+            this.editable = element.isEditable() && canChange;
         }
         
         public String[] getValues() {
@@ -71,6 +70,10 @@
             return this.element;
         }
         
+        public boolean isEditable() {
+            return this.editable;
+        }
+        
     }
 
     /**
@@ -79,12 +82,20 @@
     protected void initParameters() {
         super.initParameters();
         
-        if (getSourceDocument() == null) {
+        Document doc = getSourceDocument();
+        if (doc == null) {
             return;
         }
+        
 
         MetaDataRegistry registry = null;
         try {
+            boolean canChange = WorkflowUtil.canInvoke(this.manager, getSession(), getLogger(), doc, "edit");
+            
+            if (!canChange) {
+                addInfoMessage("cannot-change-metadata");
+            }
+            
             registry = (MetaDataRegistry) this.manager.lookup(MetaDataRegistry.ROLE);
 
             List numbers = new ArrayList();
@@ -94,13 +105,13 @@
             String[] namespaces = registry.getNamespaceUris();
 
             for (int nsIndex = 0; nsIndex < namespaces.length; nsIndex++) {
-                MetaData meta = getSourceDocument().getMetaData(namespaces[nsIndex]);
+                MetaData meta = doc.getMetaData(namespaces[nsIndex]);
                 String[] keys = meta.getPossibleKeys();
                 for (int keyIndex = 0; keyIndex < keys.length; keyIndex++) {
                     String key = "ns" + nsIndex + "." + keys[keyIndex];
                     String[] values = meta.getValues(keys[keyIndex]);
                     Element element = meta.getElementSet().getElement(keys[keyIndex]);
-                    setParameter(key, new MetaDataWrapper(element, values));
+                    setParameter(key, new MetaDataWrapper(element, values, canChange));
                     keyList.add(key);
                 }
                 numbers.add("" + nsIndex);

Modified: lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml?rev=641125&r1=641124&r2=641125&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml (original)
+++ lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml Tue Mar 25 19:57:48 2008
@@ -95,5 +95,6 @@
   <message key="not-checked-out">The document '{0}' is not checked out.</message>
   
   <!-- meta data -->
-  <message key="saved">Saved</message>
+  <message key="saved">Saved</message>
+  <message key="cannot-change-metadata">The meta data can't be changed in this workflow state.</message>
 </catalogue>

Modified: lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui_de.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui_de.xml?rev=641125&r1=641124&r2=641125&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui_de.xml (original)
+++ lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui_de.xml Tue Mar 25 19:57:48 2008
@@ -97,5 +97,6 @@
 
   <!-- meta data -->
   <message key="saved">Gespeichert</message>
+  <message key="cannot-change-metadata">Die Metadaten können in diesem Workflow-Zustand nicht geändert werden.</message>
 </catalogue>
 

Modified: lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx?rev=641125&r1=641124&r2=641125&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx (original)
+++ lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx Tue Mar 25 19:57:48 2008
@@ -58,7 +58,7 @@
                     <jx:set var="values" value="${wrapper.getValues()}"/>
                     <jx:set var="id" value="${element + '@' + namespace}"/>
                     <jx:choose>
-                      <jx:when test="${wrapper.getElement().isEditable()}">
+                      <jx:when test="${wrapper.isEditable()}">
                         <jx:choose>
                           <jx:when test="${values.size() &gt; 0}">
                             <input type="hidden" id="oldValue_${id}" value="${values[0]}"/>
@@ -78,7 +78,7 @@
                       <jx:otherwise>
                         <jx:set var="value" value="${wrapper.getValue()}"/>
                         <jx:choose>
-                          <jx:when test="${values.size() == 0}"><em><i18n:text>value-not-set</i18n:text></em></jx:when>
+                          <jx:when test="${values.size() == 0}"><em style="color: #999999"><i18n:text>value-not-set</i18n:text></em></jx:when>
                           <jx:otherwise>
                             <jx:forEach var="value" items="${values}">
                               ${value}<br/>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org