From ba046967de33f4f0e7f6de27f51008deeddf167f Mon Sep 17 00:00:00 2001 From: Filip Weiss Date: Mon, 30 Jul 2012 20:11:16 +0200 Subject: [PATCH 1/2] Added onready function for other scripts that rely on overviewer --- overviewer_core/data/js_src/util.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/overviewer_core/data/js_src/util.js b/overviewer_core/data/js_src/util.js index 24dc808..5a05ec8 100644 --- a/overviewer_core/data/js_src/util.js +++ b/overviewer_core/data/js_src/util.js @@ -145,6 +145,13 @@ overviewer.util = { overviewer.util.initializeRegions(); overviewer.util.createMapControls(); */ + + // run ready callbacks now + google.maps.event.addListenerOnce(overviewer.map, 'idle', function(){ + // ok now.. + overviewer.util.runReadyQueue(); + overviewer.util.isReady = true; + }); }, 'injectMarkerScript': function(url) { @@ -196,6 +203,27 @@ overviewer.util = { return div; }; }, + /** + * onready function for other scripts that rely on overviewer + * usage: overviewer.util.ready(function(){ // do stuff }); + * + * + */ + 'ready': function(callback){ + if (!callback || !_.isFunction(callback)) return; + if (overviewer.util.isReady){ // run instantly if overviewer already is ready + overviewer.util.readyQueue.push(callback); + overviewer.util.runReadyQueue(); + } else { + overviewer.util.readyQueue.push(callback); // wait until initialize is finished + } + }, + 'runReadyQueue': function(){ + _.each(overviewer.util.readyQueue, function(callback){ + callback(); + }); + overviewer.util.readyQueue.length = 0; + }, /** * Quote an arbitrary string for use in a regex matcher. * WTB parametized regexes, JavaScript... From 4eea7e4426e0776c55063af0e2d57596d85ef3f6 Mon Sep 17 00:00:00 2001 From: Filip Weiss Date: Mon, 30 Jul 2012 20:26:04 +0200 Subject: [PATCH 2/2] Forgot vars at top --- overviewer_core/data/js_src/util.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/overviewer_core/data/js_src/util.js b/overviewer_core/data/js_src/util.js index 5a05ec8..e487b05 100644 --- a/overviewer_core/data/js_src/util.js +++ b/overviewer_core/data/js_src/util.js @@ -1,4 +1,9 @@ overviewer.util = { + + // vars for callback + readyQueue: [], + isReady: false, + /* fuzz tester! */ 'testMaths': function(t) {