From 03514a8af78d4b01533d4468b8d4fca512b643a2 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Wed, 9 Oct 2013 13:54:26 +0000 Subject: [PATCH] --- js/libs/fluidbook/fluidbook.js | 29 ++++++++++++++++++++++++++--- js/libs/fluidbook/fluidbook.l10n.js | 12 +++++++----- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/js/libs/fluidbook/fluidbook.js b/js/libs/fluidbook/fluidbook.js index b49c4cd2..6c04d5d2 100644 --- a/js/libs/fluidbook/fluidbook.js +++ b/js/libs/fluidbook/fluidbook.js @@ -27,6 +27,7 @@ Fluidbook.prototype = { this.loader = new FluidbookLoader(this); this.search = new FluidbookSearch(this); this.pad = new FluidbookPad(this); + this.waiters = []; if (Modernizr.ftouch && this.support.transitions2d && this.datas.mobileTransitions != 'none') { this.touch = new FluidbookTouch(this); } @@ -675,6 +676,7 @@ Fluidbook.prototype = { }, 1000); this.initLinks(); this.hideLoader(); + this.resetWaiters(); // Clean messy stuffs $("#pages").removeClass('_3dtransition'); @@ -728,21 +730,42 @@ Fluidbook.prototype = { var $this = this; this.displayLoader(); - + this.resetWaiters(); + setTimeout(function() { $this._openView(view, param1, param2, callback); }, 20); }, + addWaiter: function(reset) { + if (reset == undefined) { + reset = false; + } + if (reset) { + this.resetWaiters(); + } + var rand = Math.round(Math.random() * 100000); + this.waiters.push(rand); + return rand; + }, + waiterActive: function(id) { + return this.waiters.indexOf(id) > -1; + }, + resetWaiters: function() { + this.waiters = []; + }, _openView: function(view, param1, param2, callback) { var $this = this; var preload = {index: 'thumbnails', search: 'thumbnails', bookmark: 'thumbnails', video: 'extras'}; + if (this.gal != null && preload[view] != undefined) { + var w = this.addWaiter(true); this.gal.downloadAndCall(preload[view], function() { - - $this.__openView(view, param1, param2, callback); + if ($this.waiterActive(w)) { + $this.__openView(view, param1, param2, callback); + } }); } else { this.__openView(view, param1, param2, callback); diff --git a/js/libs/fluidbook/fluidbook.l10n.js b/js/libs/fluidbook/fluidbook.l10n.js index 8516e224..67a41903 100644 --- a/js/libs/fluidbook/fluidbook.l10n.js +++ b/js/libs/fluidbook/fluidbook.l10n.js @@ -48,11 +48,13 @@ FluidbookL10N.prototype = { } } - if (this.fluidbook.datas.multilang == '') { - return; - } - if (this.fluidbook.datas.multiApp && !force) { - return; + if (!force) { + if (this.fluidbook.datas.multilang == '') { + return; + } + if (this.fluidbook.datas.multiApp) { + return; + } } this.multilangEnabled = true; -- 2.39.5