function setupAssetsLoading() {
var DELAY = 2500;
var REPETITIONS = 60;
function refreshAssets() {
var elements = $("[data-status='asset-loading']");
if (!elements.length) {
return false;
}
$.each(elements, function(_, el) {
var $el = $(el);
// Perform an AJAX call to present URL
// to check if file already exists
$.ajax({
url: $el.data("present-url"),
type: "GET",
dataType: "json",
success: function (data) {
$el.attr("data-status", "asset-loaded");
$el.find('img').hide();
$el.next().hide();
$el.html("");
if (data.type === "image") {
$el.html(
"" +
" " +
data.filename + ' " +
data.filename + "
" + data.filename + "
" ); } else { $el.html("" + data.filename + "
"); } } else { // Do nothing, file is not yet present animateSpinner(null, false); } } }); }); return true; } function finalizeAssets() { var elements = $("[data-status='asset-loading']"); $.each(elements, function(_, el) { var $el = $(el); $el.attr("data-status", "asset-failed"); $el.html($el.data("filename")); }); } var cntr = 0; var intervalId = window.setInterval(function() { cntr++; if (cntr >= REPETITIONS || !refreshAssets()) { finalizeAssets(); window.clearInterval(intervalId); } }, DELAY); }