|
From: <fg...@us...> - 2013-12-08 08:27:46
|
Revision: 4459
http://openutils.svn.sourceforge.net/openutils/?rev=4459&view=rev
Author: fgiust
Date: 2013-12-08 08:27:42 +0000 (Sun, 08 Dec 2013)
Log Message:
-----------
MEDIA-309 Download-link is not rendered
Modified Paths:
--------------
magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java
magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.html
Added Paths:
-----------
magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.virtualURIMapping.media-download.xml
Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2013-12-07 21:11:44 UTC (rev 4458)
+++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.java 2013-12-08 08:27:42 UTC (rev 4459)
@@ -19,6 +19,7 @@
package net.sourceforge.openutils.mgnlmedia.media.pages;
+import info.magnolia.cms.beans.runtime.FileProperties;
import info.magnolia.cms.core.MgnlNodeType;
import info.magnolia.cms.core.Path;
import info.magnolia.cms.exchange.ActivationManagerFactory;
@@ -31,6 +32,7 @@
import info.magnolia.init.MagnoliaConfigurationProperties;
import info.magnolia.jcr.util.MetaDataUtil;
import info.magnolia.jcr.util.NodeUtil;
+import info.magnolia.jcr.util.PropertyUtil;
import info.magnolia.module.admininterface.commands.ActivationCommand;
import info.magnolia.objectfactory.Components;
import info.magnolia.templating.functions.TemplatingFunctions;
@@ -48,6 +50,7 @@
import java.util.Map;
import javax.jcr.Node;
+import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.servlet.ServletException;
@@ -60,6 +63,7 @@
import net.sourceforge.openutils.mgnlmedia.media.configuration.MediaTypeConfiguration;
import net.sourceforge.openutils.mgnlmedia.media.lifecycle.MediaModule;
import net.sourceforge.openutils.mgnlmedia.media.tags.el.MediaEl;
+import net.sourceforge.openutils.mgnlmedia.media.types.impl.BaseTypeHandler;
import org.apache.commons.chain.Command;
import org.apache.commons.lang.StringUtils;
@@ -510,15 +514,58 @@
if (media == null)
{
+ try
+ {
+ response.sendError(404);
+ }
+ catch (IOException e)
+ {
+ // ignore
+ }
return null;
}
+
MediaTypeConfiguration mtc = Components
.getComponent(MediaConfigurationManager.class)
.getMediaTypeConfigurationFromMedia(media);
+
+ if (mtc == null)
+ {
+
+ // path points to a node but not a media
+ try
+ {
+ response.sendError(404);
+ }
+ catch (IOException e)
+ {
+ // ignore
+ }
+ return null;
+ }
String url = mtc.getHandler().getUrl(media);
String filename = mtc.getHandler().getFullFilename(media);
+ try
+ {
+ if (media.hasNode(BaseTypeHandler.ORGINAL_NODEDATA_NAME))
+ {
+ Node original = media.getNode(BaseTypeHandler.ORGINAL_NODEDATA_NAME);
+ String mime = PropertyUtil.getString(original, FileProperties.PROPERTY_CONTENTTYPE);
+
+ if (StringUtils.isNotEmpty(mime))
+ {
+ this.response.setContentType(mime);
+ }
+ }
+ }
+ catch (RepositoryException e)
+ {
+ // should not happen
+ log.debug(e.getMessage(), e);
+ }
+
this.response.addHeader("Content-Disposition", "attachment; filename=" + filename);
try
{
Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java
===================================================================
--- magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java 2013-12-07 21:11:44 UTC (rev 4458)
+++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/java/net/sourceforge/openutils/mgnlmedia/media/types/impl/BaseTypeHandler.java 2013-12-08 08:27:42 UTC (rev 4459)
@@ -223,7 +223,7 @@
{
try
{
- return !media.hasProperty(ORGINAL_NODEDATA_NAME);
+ return !media.hasNode(ORGINAL_NODEDATA_NAME);
}
catch (RepositoryException e)
{
Added: magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.virtualURIMapping.media-download.xml
===================================================================
--- magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.virtualURIMapping.media-download.xml (rev 0)
+++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.virtualURIMapping.media-download.xml 2013-12-08 08:27:42 UTC (rev 4459)
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<sv:node sv:name="media-download" xmlns:sv="http://www.jcp.org/jcr/sv/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:contentNode</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:uuid" sv:type="String">
+ <sv:value>ae0cc614-772b-4aba-8eab-4857dec74e50</sv:value>
+ </sv:property>
+ <sv:property sv:name="class" sv:type="String">
+ <sv:value>info.magnolia.cms.beans.config.RegexpVirtualURIMapping</sv:value>
+ </sv:property>
+ <sv:property sv:name="fromURI" sv:type="String">
+ <sv:value>/media/download/(.*)</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="toURI" sv:type="String">
+ <sv:value>forward:/.magnolia/pages/mediaFolderView.html?command=download&path=/$1</sv:value>
+ </sv:property>
+ <sv:node sv:name="MetaData">
+ <sv:property sv:name="jcr:primaryType" sv:type="Name">
+ <sv:value>mgnl:metaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="jcr:createdBy" sv:type="String">
+ <sv:value>admin</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:Data" sv:type="String">
+ <sv:value>MetaData</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:activated" sv:type="Boolean">
+ <sv:value>false</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:authorid" sv:type="String">
+ <sv:value>superuser</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:creationdate" sv:type="String">
+ <sv:value>2004-11-02T15:34:20.479+01:00</sv:value>
+ </sv:property>
+ <sv:property sv:name="mgnl:lastmodified" sv:type="Date">
+ <sv:value>2013-12-07T23:13:04.690+01:00</sv:value>
+ </sv:property>
+ </sv:node>
+</sv:node>
Property changes on: magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/mgnl-bootstrap/media-nooverwrite/config.modules.media.virtualURIMapping.media-download.xml
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+text/xml
\ No newline at end of property
Added: svn:keywords
## -0,0 +1 ##
+Author Date Id Revision
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.html
===================================================================
--- magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.html 2013-12-07 21:11:44 UTC (rev 4458)
+++ magnoliamodules/trunk/openutils-mgnlmedia/src/main/resources/net/sourceforge/openutils/mgnlmedia/media/pages/MediaFolderViewPage.html 2013-12-08 08:27:42 UTC (rev 4459)
@@ -502,7 +502,7 @@
[/#if]
[#if !media.external]
<li>
- <a href="?command=download&path=${media.handle}" style="background-image: url('${this.request.contextPath}/.resources/media/icons/ico16-download.png');">
+ <a href="${this.request.contextPath}/media/download${media.handle}" style="background-image: url('${this.request.contextPath}/.resources/media/icons/ico16-download.png');">
<span>${this.msgs.get('media.download')}</span>
</a>
</li>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|