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() > 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.