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() &gt; 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') &amp;&amp; ! 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