From 98ff8478301676c99ffefd5756ad22466dfb6acf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= <jfd@butonic.de>
Date: Thu, 19 Sep 2013 14:46:33 +0200
Subject: [PATCH] fix race condition in lazy preview loading

---
 apps/files/js/files.js | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index ccb40e7216..5ec65d8745 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -628,18 +628,24 @@ function getPathForPreview(name) {
 }
 
 function lazyLoadPreview(path, mime, ready, width, height) {
-	getMimeIcon(mime,ready);
-	if (!width) {
-		width = $('#filestable').data('preview-x');
-	}
-	if (!height) {
-		height = $('#filestable').data('preview-y');
-	}
-	var previewURL = OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:width, y:height});
-	$.get(previewURL, function() {
-		previewURL = previewURL.replace('(','%28');
-		previewURL = previewURL.replace(')','%29');
-		ready(previewURL + '&reload=true');
+	// get mime icon url
+	getMimeIcon(mime, function(iconURL) {
+		ready(iconURL); // set mimeicon URL
+		
+		// now try getting a preview thumbnail URL
+		if ( ! width ) {
+			width = $('#filestable').data('preview-x');
+		}
+		if ( ! height ) {
+			height = $('#filestable').data('preview-y');
+		}
+		var previewURL = OC.Router.generate('core_ajax_preview', {file: encodeURIComponent(path), x:width, y:height});
+		$.get(previewURL, function() {
+			previewURL = previewURL.replace('(', '%28');
+			previewURL = previewURL.replace(')', '%29');
+			//set preview thumbnail URL
+			ready(previewURL + '&reload=true');
+		});
 	});
 }
 
-- 
GitLab