You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by th...@apache.org on 2011/05/09 18:04:40 UTC

svn commit: r1101082 - in /lenya/branches/BRANCH_2_1_X/src/modules: editors/usecases/insertAsset.jx sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java sitetree/sitemap.xmap

Author: thorsten
Date: Mon May  9 16:04:40 2011
New Revision: 1101082

URL: http://svn.apache.org/viewvc?rev=1101082&view=rev
Log:
Fixing various bugs in the sitetreefragmentgenerator to get all mimetype and resource types. The problem was that if the language of the doc is not in the scope the generator always returned an empty mimetype.

Modified:
    lenya/branches/BRANCH_2_1_X/src/modules/editors/usecases/insertAsset.jx
    lenya/branches/BRANCH_2_1_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java
    lenya/branches/BRANCH_2_1_X/src/modules/sitetree/sitemap.xmap

Modified: lenya/branches/BRANCH_2_1_X/src/modules/editors/usecases/insertAsset.jx
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules/editors/usecases/insertAsset.jx?rev=1101082&r1=1101081&r2=1101082&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules/editors/usecases/insertAsset.jx (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules/editors/usecases/insertAsset.jx Mon May  9 16:04:40 2011
@@ -65,7 +65,7 @@
               <a id="${language}" class="lenya-tablink-active"><jx:out value="${language}"/></a>
             </jx:when>
             <jx:otherwise>
-              <a id="${language}" class="lenya-tablink" href="lenya-document:,lang=${language}?lenya.usecase=editors.insertAsset">
+              <a id="${language}" class="lenya-tablink" href="lenya-document:,lang=${language}?lenya.usecase=editors.insert${mode}">
                 <jx:out value="${language}"/>
               </a>
             </jx:otherwise>

Modified: lenya/branches/BRANCH_2_1_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java?rev=1101082&r1=1101081&r2=1101082&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules/sitetree/java/src/org/apache/lenya/cms/cocoon/generation/SitetreeFragmentGenerator.java Mon May  9 16:04:40 2011
@@ -30,6 +30,7 @@ import org.apache.cocoon.caching.Cacheab
 import org.apache.cocoon.environment.ObjectModelHelper;
 import org.apache.cocoon.environment.Request;
 import org.apache.cocoon.generation.ServiceableGenerator;
+import org.apache.commons.lang.StringUtils;
 import org.apache.excalibur.source.Source;
 import org.apache.excalibur.source.SourceResolver;
 import org.apache.excalibur.source.SourceValidity;
@@ -85,6 +86,8 @@ public class SitetreeFragmentGenerator e
     private String cacheKey;
     private SourceValidity validity;
 
+    private String language;
+
     protected static final String PARAM_PUB = "pub";
     protected static final String PARAM_AREA = "area";
     protected static final String PARAM_PATH = "path";
@@ -139,7 +142,7 @@ public class SitetreeFragmentGenerator e
         String area = par.getParameter(PARAM_AREA, null);
         this.path = par.getParameter(PARAM_PATH, null);
         String uuid = par.getParameter(PARAM_UUID, null);
-        String language = par.getParameter(PARAM_LANGUAGE, null);
+        language = par.getParameter(PARAM_LANGUAGE, null);
 
         if (par.isParameter(PARAM_INITIAL)) {
             this.initialTree = Boolean.valueOf(par.getParameter(PARAM_INITIAL, null))
@@ -467,19 +470,41 @@ public class SitetreeFragmentGenerator e
         if (this.showType) {
             try {
                 Publication pub = this.site.getPublication();
+                if (null==language) {
+                    language=pub.getDefaultLanguage();
+                }
                 String area = this.site.getArea();
                 Document document = pub.getArea(area).getDocument(node.getUuid(),
-                        pub.getDefaultLanguage());
+                        language);
                 String type = document.getMimeType();
-                this.attributes.addAttribute("", ATTR_TYPE, ATTR_TYPE, "CDATA", type);
-                try {
-                    ResourceType resourceType = document.getResourceType();
-                    if(resourceType!=null){
-                        String resource = resourceType.getName();
-                        this.attributes.addAttribute("", ATTR_RESOURCE_TYPE, ATTR_RESOURCE_TYPE, "CDATA", resource);
+                /*
+                 * curtsey fallback trough all languages 
+                 * even if we request two time the same language
+                 * in case that prior null==language. This way we make 
+                 * sure that we get the mime type even if the doc 
+                 * only exist in a third language.
+                 * 
+                 * e.g. you request language=en&defaultLanguage=en
+                 * and the doc only exist in "de" we will still get
+                 * the mimetype.
+                 */
+                if (StringUtils.isEmpty(type)) {
+                    for (String lang : pub.getLanguages()) {
+                        document = pub.getArea(area).getDocument(node.getUuid(),
+                                lang);
+                        type = document.getMimeType();
+                        if (StringUtils.isNotEmpty(type)){
+                            break;
+                        }
                     }
-                } catch (Exception e) {
-                    getLogger().fatalError("ResourceType is null, which should not happen!", e);
+                    
+                }
+                this.attributes.addAttribute("", ATTR_TYPE, ATTR_TYPE, "CDATA", type);
+                ResourceType resourceType = document.getResourceType();
+                if (resourceType != null) {
+                    String resource = resourceType.getName();
+                    this.attributes.addAttribute("", ATTR_RESOURCE_TYPE,
+                            ATTR_RESOURCE_TYPE, "CDATA", resource);
                 }
             } catch (PublicationException e) {
                 throw new SiteException(e);

Modified: lenya/branches/BRANCH_2_1_X/src/modules/sitetree/sitemap.xmap
URL: http://svn.apache.org/viewvc/lenya/branches/BRANCH_2_1_X/src/modules/sitetree/sitemap.xmap?rev=1101082&r1=1101081&r2=1101082&view=diff
==============================================================================
--- lenya/branches/BRANCH_2_1_X/src/modules/sitetree/sitemap.xmap (original)
+++ lenya/branches/BRANCH_2_1_X/src/modules/sitetree/sitemap.xmap Mon May  9 16:04:40 2011
@@ -135,6 +135,7 @@ This sitemap creates default navigation 
           <map:parameter name="areas" value="{request-param:areas}"/>
           <map:parameter name="path" value="{request-param:path}"/>
           <map:parameter name="initial" value="{request-param:initial}"/>
+          <map:parameter name="language" value="{request-param:language}"/>
           <map:parameter name="mimetype" value="{request-param:mimetype}"/>
         </map:generate>
         <!-- <map:call resource="i18n"/> -->



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org