[Pkg-owncloud-commits] [owncloud] 02/46: Fix SVG icons

David Prévot taffit at moszumanska.debian.org
Fri Oct 24 15:11:40 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit 6d81789a6693ce2fcd127218a9dda9983362be8d
Author: Lukas Reschke <lukas at owncloud.com>
Date:   Thu Oct 16 12:13:16 2014 +0200

    Fix SVG icons
    
    FIXME: Ugly hack to prevent SVG of being returned if the SVG
    provider is not enabled.
    This is required because the preview system is designed in a
    bad way and relies on opt-in with asterisks (i.e. image/*)
    which will lead to the fact that a SVG will also match the image
    provider.
    
    Conflicts:
    	lib/private/preview.php
---
 apps/files_sharing/js/public.js |  2 +-
 lib/private/preview.php         | 15 +++++++++++++--
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index b303625..c4b5508 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -85,7 +85,7 @@ OCA.Sharing.PublicApp = {
 		};
 
 		var img = $('<img class="publicpreview">');
-		if (previewSupported === 'true' || mimetype.substr(0, mimetype.indexOf('/')) === 'image') {
+		if (previewSupported === 'true' || mimetype.substr(0, mimetype.indexOf('/')) === 'image' && mimetype !== 'image/svg+xml') {
 			img.attr('src', OC.filePath('files_sharing', 'ajax', 'publicpreview.php') + '?' + OC.buildQueryString(params));
 			img.appendTo('#imgframe');
 		} else if (mimetype.substr(0, mimetype.indexOf('/')) !== 'video') {
diff --git a/lib/private/preview.php b/lib/private/preview.php
index 6953f63..1e8c2eb 100755
--- a/lib/private/preview.php
+++ b/lib/private/preview.php
@@ -776,8 +776,19 @@ class Preview {
 			self::initProviders();
 		}
 
-		foreach (self::$providers as $supportedMimeType => $provider) {
-			if (preg_match($supportedMimeType, $mimeType)) {
+		// FIXME: Ugly hack to prevent SVG of being returned if the SVG
+		// provider is not enabled.
+		// This is required because the preview system is designed in a
+		// bad way and relies on opt-in with asterisks (i.e. image/*)
+		// which will lead to the fact that a SVG will also match the image
+		// provider.
+		if($mimeType === 'image/svg+xml' && !array_key_exists('/image\/svg\+xml/', self::$providers)) {
+			return false;
+		}
+
+		//remove last element because it has the mimetype *
+		foreach(self::$providers as $supportedMimetype => $provider) {
+			if(preg_match($supportedMimetype, $mimeType)) {
 				return true;
 			}
 		}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list