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