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 2007/11/28 00:07:34 UTC
svn commit: r598808 - in /lenya/trunk/src/modules-core/sitemanagement:
java/src/org/apache/lenya/cms/metadata/usecases/ resources/i18n/
resources/javascript/ usecases/tab/
Author: andreas
Date: Tue Nov 27 15:07:33 2007
New Revision: 598808
URL: http://svn.apache.org/viewvc?rev=598808&view=rev
Log:
Show non-editable meta data, use tabbed view for meta data
Added:
lenya/trunk/src/modules-core/sitemanagement/resources/javascript/
lenya/trunk/src/modules-core/sitemanagement/resources/javascript/lenyaTabs.js
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/head.jx
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=598808&r1=598807&r2=598808&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 Nov 27 15:07:33 2007
@@ -24,6 +24,7 @@
import java.util.List;
import java.util.Map;
+import org.apache.lenya.cms.metadata.Element;
import org.apache.lenya.cms.metadata.MetaData;
import org.apache.lenya.cms.metadata.MetaDataRegistry;
import org.apache.lenya.cms.publication.Document;
@@ -51,6 +52,26 @@
}
return objects;
}
+
+ public static class MetaDataWrapper {
+
+ private String[] values;
+ private Element element;
+
+ public MetaDataWrapper(Element element, String[] values) {
+ this.values = values;
+ this.element = element;
+ }
+
+ public String[] getValues() {
+ return this.values;
+ }
+
+ public Element getElement() {
+ return this.element;
+ }
+
+ }
/**
* @see org.apache.lenya.cms.usecase.AbstractUsecase#initParameters()
@@ -74,23 +95,16 @@
for (int nsIndex = 0; nsIndex < namespaces.length; nsIndex++) {
MetaData meta = getSourceDocument().getMetaData(namespaces[nsIndex]);
- boolean matched = false;
String[] keys = meta.getPossibleKeys();
for (int keyIndex = 0; keyIndex < keys.length; keyIndex++) {
- if (meta.getElementSet().getElement(keys[keyIndex]).isEditable()) {
- String key = "ns" + nsIndex + "." + keys[keyIndex];
- String value = meta.getFirstValue(keys[keyIndex]);
- if (value != null) {
- setParameter(key, value);
- }
- keyList.add(key);
- matched = true;
- }
- }
- if (matched) {
- numbers.add("" + nsIndex);
- num2namespace.put("" + nsIndex, namespaces[nsIndex]);
+ 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));
+ keyList.add(key);
}
+ numbers.add("" + nsIndex);
+ num2namespace.put("" + nsIndex, namespaces[nsIndex]);
}
setParameter("numbers", numbers);
@@ -149,9 +163,13 @@
String[] keys = meta.getPossibleKeys();
for (int keyIndex = 0; keyIndex < keys.length; keyIndex++) {
- String value = getParameterAsString("ns" + orgNsIndex + "." + keys[keyIndex]);
- if (value != null) {
- meta.setValue(keys[keyIndex], value);
+ String key = keys[keyIndex];
+ Element element = meta.getElementSet().getElement(key);
+ if (element.isEditable()) {
+ Object value = getParameter("ns" + orgNsIndex + "." + key);
+ if (value != null && value instanceof String) {
+ meta.setValue(key, (String) value);
+ }
}
}
}
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=598808&r1=598807&r2=598808&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml (original)
+++ lenya/trunk/src/modules-core/sitemanagement/resources/i18n/cmsui.xml Tue Nov 27 15:07:33 2007
@@ -39,6 +39,7 @@
<message key="Namespace">Namespace</message>
<message key="http://purl.org/dc/terms/">Dublin Core Terms</message>
<message key="http://purl.org/dc/elements/1.1/">Dublin Core Elements</message>
+ <message key="value-not-set">not set</message>
<message key="Inherited credentials">Inherited credentials</message>
<message key="Subtree credentials">Subtree credentials</message>
<message key="New subtree credential">New subtree credential</message>
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=598808&r1=598807&r2=598808&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 Nov 27 15:07:33 2007
@@ -39,6 +39,7 @@
<message key="Namespace">Namensraum</message>
<message key="http://purl.org/dc/terms/">Dublin-Core-Terme</message>
<message key="http://purl.org/dc/elements/1.1/">Dublin-Core-Elemente</message>
+ <message key="value-not-set">nicht gesetzt</message>
<message key="Inherited credentials">Vererbte Berechtigungen</message>
<message key="Subtree credentials">Berechtigungen für diesen Teilbaum</message>
<message key="New subtree credential">Neue Berechtigung für diesen Teilbaum</message>
Added: lenya/trunk/src/modules-core/sitemanagement/resources/javascript/lenyaTabs.js
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/resources/javascript/lenyaTabs.js?rev=598808&view=auto
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/resources/javascript/lenyaTabs.js (added)
+++ lenya/trunk/src/modules-core/sitemanagement/resources/javascript/lenyaTabs.js Tue Nov 27 15:07:33 2007
@@ -0,0 +1,27 @@
+
+function lenyaGetTitle(num) {
+ return document.getElementById('lenyaTabTitle' + num);
+}
+
+function lenyaGetBody(num) {
+ return document.getElementById('lenyaTabBody' + num);
+}
+
+function lenyaInitTabs(count) {
+ lenyaToggleTab(count, 0);
+}
+
+function lenyaToggleTab(count, num) {
+ for (var i = 0; i < count; i++) {
+ var title = document.getElementById('lenyaTabTitle' + i);
+ var body = document.getElementById('lenyaTabBody' + i);
+ if (i == num) {
+ title.className = 'lenyaTabTitleActive';
+ body.className = 'lenyaTabBodyActive';
+ }
+ else {
+ title.className = 'lenyaTabTitle';
+ body.className = 'lenyaTabBody';
+ }
+ }
+}
\ No newline at end of file
Modified: lenya/trunk/src/modules-core/sitemanagement/usecases/tab/head.jx
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/sitemanagement/usecases/tab/head.jx?rev=598808&r1=598807&r2=598808&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/usecases/tab/head.jx (original)
+++ lenya/trunk/src/modules-core/sitemanagement/usecases/tab/head.jx Tue Nov 27 15:07:33 2007
@@ -32,5 +32,6 @@
<script src="/modules/sitetree/javascript/tree.js"/>
<script src="/modules/sitetree/javascript/lenyatree.js"/>
<script src="/modules/sitetree/javascript/navtree.js"/>
+ <script src="/modules/sitemanagement/javascript/lenyaTabs.js"/>
</page:head>
</jx:template>
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=598808&r1=598807&r2=598808&view=diff
==============================================================================
--- lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx (original)
+++ lenya/trunk/src/modules-core/sitemanagement/usecases/tab/meta.jx Tue Nov 27 15:07:33 2007
@@ -23,7 +23,9 @@
xmlns="http://www.w3.org/1999/xhtml"
xmlns:i18n="http://apache.org/cocoon/i18n/2.1" >
<jx:import uri="fallback://lenya/modules/sitemanagement/usecases/tab/head.jx"/>
- <page:body>
+
+ <jx:set var="count" value="${usecase.getParameter('numbers').size()}"/>
+ <page:body onload="lenyaInitTabs(${count})">
<jx:import uri="fallback://lenya/modules/sitemanagement/usecases/tab/sitetree.jx"/>
<jx:import uri="fallback://lenya/modules/usecase/templates/tabs.jx"/>
<div id="contentblock1" class="lenya-tab-sitetree">
@@ -34,78 +36,55 @@
<jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
+ <jx:set var="count" value="${usecase.getParameter('numbers').size()}"/>
<jx:forEach var="num" items="${usecase.getParameter('numbers')}">
- <div class="lenya-box-toggled">
- <div class="lenya-box-title">
- <!--<i18n:text>Namespace</i18n:text>:-->
- <i18n:text><jx:out value="${num2namespace.get(num)}"/></i18n:text>
- </div>
- <div class="lenya-box-body">
+ <div class="lenyaTabTitle" id="lenyaTabTitle${num}" onclick="lenyaToggleTab(${count}, ${num})">
+ <!--<i18n:text>Namespace</i18n:text>:-->
+ <a><i18n:text><jx:out value="${num2namespace.get(num)}"/></i18n:text></a>
+ </div>
+ </jx:forEach>
+ <jx:forEach var="num" items="${usecase.getParameter('numbers')}">
+ <div class="lenyaTabBody" id="lenyaTabBody${num}">
<table class="lenya-table-list-noborder">
<jx:forEach var="key" items="${usecase.getParameter('keys')}">
<jx:if test="${key.startsWith('ns' + num + '.')}">
<tr>
- <td class="lenya-entry-caption"><label for="${key}"><i18n:text><jx:out value="${key.substring(key.indexOf('.')).substring(1)}"/></i18n:text>:</label></td>
+ <td class="lenya-entry-caption">
+ <label for="${key}"><i18n:text><jx:out value="${key.substring(key.indexOf('.')).substring(1)}"/></i18n:text>:</label>
+ </td>
<td>
- <input type="text" id="${key}" name="${key}" class="lenya-form-element" value="${usecase.getParameter(key)}"/>
+ <jx:set var="wrapper" value="${usecase.getParameter(key)}"/>
+ <jx:set var="values" value="${wrapper.getValues()}"/>
+ <jx:choose>
+ <jx:when test="${wrapper.getElement().isEditable()}">
+ <jx:choose>
+ <jx:when test="${values.size() > 0}">
+ <input type="text" id="${key}" name="${key}" class="lenya-form-element" value="${values[0]}"/>
+ </jx:when>
+ <jx:otherwise>
+ <input type="text" id="${key}" name="${key}" class="lenya-form-element" value=""/>
+ </jx:otherwise>
+ </jx:choose>
+ </jx:when>
+ <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:otherwise>
+ <jx:forEach var="value" items="${values}">
+ ${value}<br/>
+ </jx:forEach>
+ </jx:otherwise>
+ </jx:choose>
+ </jx:otherwise>
+ </jx:choose>
</td>
</tr>
</jx:if>
</jx:forEach>
</table>
</div>
- </div>
</jx:forEach>
-
- <!--
- <table class="lenya-table-noborder">
- <tr>
- <td colspan="2">
- <jx:import uri="fallback://lenya/modules/usecase/templates/messages.jx"/>
- </td>
- </tr>
-
- <jx:forEach var="num" items="${usecase.getParameter('numbers')}">
-
- <tr>
- <td>
- <strong><i18n:text>Namespace: </i18n:text></strong>
- </td>
- <td>
- <i18n:text><jx:out value="${num2namespace.get(num)}"/></i18n:text>
- </td>
- </tr>
-
- <jx:forEach var="key" items="${usecase.getParameter('keys')}">
- <jx:if test="${key.startsWith('ns' + num + '.')}">
- <tr>
- <td class="lenya-entry-caption"><label for="${key}"><i18n:text><jx:out value="${key.substring(key.indexOf('.')).substring(1)}"/></i18n:text>:</label></td>
- <td>
- <input type="text" id="${key}" name="${key}" class="lenya-form-element" value="${usecase.getParameter(key)}"/>
- </td>
- </tr>
- </jx:if>
- </jx:forEach>
-
- </jx:forEach>
-
- <tr>
- <td/>
- <td>
- <br/>
- <jx:choose>
- <jx:when
- test="${usecase.getParameter('document').getArea().equals('authoring') && ! usecase.hasErrors()}">
- <input i18n:attr="value" name="submit" type="submit" value="Save"/>
- </jx:when>
- <jx:otherwise>
- <input i18n:attr="value" name="submit" type="submit" disabled="disabled" value="Save"/>
- </jx:otherwise>
- </jx:choose>
- </td>
- </tr>
- </table>
- -->
<jx:choose>
<jx:when
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org