From 6cd988fb31c75a6445473a32e2a3f1512d4a1606 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Mon, 29 Feb 2016 11:45:20 +0800 Subject: [PATCH 1/3] fix #479 --- app/assets/javascripts/src/Metamaps.js.erb | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/src/Metamaps.js.erb b/app/assets/javascripts/src/Metamaps.js.erb index 5a6c5955..7dad20da 100644 --- a/app/assets/javascripts/src/Metamaps.js.erb +++ b/app/assets/javascripts/src/Metamaps.js.erb @@ -17,12 +17,11 @@ var labelType, useGradients, nativeTextSupport, animate; })(); // TODO eliminate these 4 top-level variables -Metamaps = { - panningInt: null, - tempNode: null, - tempInit: false, - tempNode2: null -} +Metamaps = window.Metamaps || {}; +Metamaps.panningInt = null; +Metamaps.tempNode = null; +Metamaps.tempInit = false; +Metamaps.tempNode2 = null; Metamaps.Settings = { embed: false, // indicates that the app is on a page that is optimized for embedding in iFrames on other web pages From b64558f860776d1f491ef11cf4c26fba316d4fc8 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Mon, 29 Feb 2016 11:49:14 +0800 Subject: [PATCH 2/3] ensure Metamaps[prop] is an object --- app/assets/javascripts/src/Metamaps.GlobalUI.js.erb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb b/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb index 27812c57..7fb640ae 100644 --- a/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb +++ b/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb @@ -49,7 +49,8 @@ $(document).ready(function () { // this runs the init function within each sub-object on the Metamaps one if (Metamaps.hasOwnProperty(prop) && Metamaps[prop].hasOwnProperty('init') && - typeof (Metamaps[prop].init) == 'function' + typeof Metamaps[prop] === 'object' && + typeof (Metamaps[prop].init) === 'function' ) { Metamaps[prop].init(); } From a0d9d9caa413e70540d182ec799d13c576340b31 Mon Sep 17 00:00:00 2001 From: Devin Howard Date: Mon, 29 Feb 2016 11:54:01 +0800 Subject: [PATCH 3/3] do what you have to do --- app/assets/javascripts/src/Metamaps.GlobalUI.js.erb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb b/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb index 7fb640ae..e33d54bd 100644 --- a/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb +++ b/app/assets/javascripts/src/Metamaps.GlobalUI.js.erb @@ -50,6 +50,8 @@ $(document).ready(function () { if (Metamaps.hasOwnProperty(prop) && Metamaps[prop].hasOwnProperty('init') && typeof Metamaps[prop] === 'object' && + !Array.isArray(Metamaps[prop]) && # ugh + Metamaps[prop] !== null && # double ugh typeof (Metamaps[prop].init) === 'function' ) { Metamaps[prop].init();