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

[email protected]
Newsgroups gmane.comp.cms.lenya.cvs
Message-ID <[email protected]>
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/>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.