From 98ff8478301676c99ffefd5756ad22466dfb6acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= 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'); + }); }); }