diff --git a/src/_h5ai/client/css/inc/preview.less b/src/_h5ai/client/css/inc/preview.less
index c2c469ce..ddf8ca13 100644
--- a/src/_h5ai/client/css/inc/preview.less
+++ b/src/_h5ai/client/css/inc/preview.less
@@ -25,7 +25,16 @@
#pv-spinner {
position: absolute;
- img {
+ .back {
+ width: 240px;
+ height: 240px;
+ margin: -120px -120px;
+ border-radius: 120px;
+ background: #f00;
+ opacity: 0.5;
+ overflow: hidden;
+ }
+ .spinner {
width: 100px;
height: 100px;
margin: -50px -50px;
@@ -137,7 +146,7 @@
}
@media only screen and (max-width: 700px) {
-#pv-prev-area, #pv-next-area, #pv-close-area {
+#pv-prev-area, #pv-next-area {
display: none !important;
}
}
diff --git a/src/_h5ai/client/js/inc/ext/preview-img.js b/src/_h5ai/client/js/inc/ext/preview-img.js
index 8ae5dda7..0a3b24f4 100644
--- a/src/_h5ai/client/js/inc/ext/preview-img.js
+++ b/src/_h5ai/client/js/inc/ext/preview-img.js
@@ -7,6 +7,7 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/event', 'co
}, allsettings['preview-img']);
var templateLoading = '';
var spinnerThreshold = 200;
+ var spinnerTimeoutId;
var currentItems, currentIdx, currentItem;
@@ -29,47 +30,17 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/event', 'co
});
}
- function showSpinner(item) {
-
- var timeoutId;
-
- function start() {
-
- $('#pv-content')
- .empty()
- .append($(templateLoading).attr('src', item.thumbSquare))
- .show();
-
- onAdjustSize();
-
- preview.setLabels([item.label]);
- preview.showSpinner(true);
- }
-
- function stop() {
-
- clearTimeout(timeoutId);
- preview.showSpinner(false);
- }
-
- timeoutId = setTimeout(start, spinnerThreshold);
- return stop;
- }
-
function preloadImg(item, callback) {
- var hide = showSpinner(item);
-
requestSample(item.absHref, function (src) {
$('
')
.one('load', function (ev) {
- hide();
callback(item, ev.target);
// for testing
- // setTimeout(function () { hide(); callback(item, ev.target); }, 1000);
+ // setTimeout(function () { callback(item, ev.target); }, 1000);
})
.attr('src', src);
});
@@ -102,15 +73,29 @@ modulejs.define('ext/preview-img', ['_', '$', 'core/settings', 'core/event', 'co
currentIdx = (currentIdx + rel + currentItems.length) % currentItems.length;
currentItem = currentItems[currentIdx];
+ preview.setLabels([currentItem.label]);
preview.setIndex(currentIdx + 1, currentItems.length);
preview.setRawLink(currentItem.absHref);
+ $('#pv-content').hide();
+ if (preview.isSpinnerVisible()) {
+ preview.showSpinner(true, currentItem.thumbSquare);
+ } else {
+ clearTimeout(spinnerTimeoutId);
+ spinnerTimeoutId = setTimeout(function () {
+
+ preview.showSpinner(true, currentItem.thumbSquare);
+ }, spinnerThreshold);
+ }
+
preloadImg(currentItem, function (item, preloaded_img) {
if (item !== currentItem) {
return;
}
+ clearTimeout(spinnerTimeoutId);
+ preview.showSpinner(false);
$('#pv-content')
.empty()
.append($(preloaded_img).attr('id', 'pv-img-image'))
diff --git a/src/_h5ai/client/js/inc/ext/preview.js b/src/_h5ai/client/js/inc/ext/preview.js
index 9f860729..58580741 100644
--- a/src/_h5ai/client/js/inc/ext/preview.js
+++ b/src/_h5ai/client/js/inc/ext/preview.js
@@ -7,7 +7,7 @@ modulejs.define('ext/preview', ['_', '$', 'core/settings', 'core/resource', 'cor
var template =
'