From 6d0c8ea7e4c15e2a4072e0951eac3c0f64b2fbdc Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind1991@gmail.com>
Date: Fri, 29 Jul 2011 01:36:31 +0200
Subject: [PATCH] use proper file icons for image and audio files

---
 core/img/mimetypes/{music.png => audio.png} | Bin
 files/js/filelist.js                        |   3 ++-
 files/js/files.js                           |   9 +++++++++
 lib/helper.php                              |   5 +++++
 4 files changed, 16 insertions(+), 1 deletion(-)
 rename core/img/mimetypes/{music.png => audio.png} (100%)

diff --git a/core/img/mimetypes/music.png b/core/img/mimetypes/audio.png
similarity index 100%
rename from core/img/mimetypes/music.png
rename to core/img/mimetypes/audio.png
diff --git a/files/js/filelist.js b/files/js/filelist.js
index 252a9c9580..a53ad672e4 100644
--- a/files/js/filelist.js
+++ b/files/js/filelist.js
@@ -96,7 +96,8 @@ FileList={
 	},
 	loadingDone:function(name){
 		$('tr[data-file="'+name+'"]').data('loading',false);
-		$('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url(img/file.png');
+		var mime=$('tr[data-file="'+name+'"]').data('mime');
+		$('tr[data-file="'+name+'"] td.filename a').attr('style','background-image:url('+getMimeIcon(mime)+')');
 		$('tr[data-file="'+name+'"] td.filename').draggable(dragOptions);
 	},
 	isLoading:function(name){
diff --git a/files/js/files.js b/files/js/files.js
index 60f2b2aec8..193c740b6c 100644
--- a/files/js/files.js
+++ b/files/js/files.js
@@ -437,3 +437,12 @@ function relative_modified_date(timestamp) {
 	else if(timediff < 63113852) { return 'last year'; }
 	else { return diffyears+' years ago'; }
 }
+
+function getMimeIcon(mime){
+	mime=mime.substr(0,mime.indexOf('/'));
+	var knownMimes=['image','audio'];
+	if(knownMimes.indexOf(mime)==-1){
+		mime='file';
+	}
+	return OC.imagePath('core','mimetypes/'+mime+'.png');
+}
\ No newline at end of file
diff --git a/lib/helper.php b/lib/helper.php
index 1fbcc589d1..ffb2587743 100755
--- a/lib/helper.php
+++ b/lib/helper.php
@@ -110,6 +110,11 @@ class OC_HELPER {
 		if( file_exists( "$SERVERROOT/core/img/mimetypes/$mimetype.png" )){
 			return "$WEBROOT/core/img/mimetypes/$mimetype.png";
 		}
+		//try only the first part of the mimetype
+		$mimetype=substr($mimetype,0,strpos($mimetype,'-'));
+		if( file_exists( "$SERVERROOT/core/img/mimetypes/$mimetype.png" )){
+			return "$WEBROOT/core/img/mimetypes/$mimetype.png";
+		}
 		else{
 			return "$WEBROOT/core/img/mimetypes/file.png";
 		}
-- 
GitLab