From dc590a95c277365132f45f51faa32fba861b7e6e Mon Sep 17 00:00:00 2001 From: Seth Call Date: Sat, 25 Oct 2014 10:04:28 -0500 Subject: [PATCH] * VRFS-2368 - close prodBubbles on session transition, open dialog, close dialog --- .../assets/javascripts/accounts_audio_profile.js | 2 +- web/app/assets/javascripts/layout.js | 4 ++++ web/app/assets/javascripts/utils.js | 1 + web/vendor/assets/javascripts/jquery.bt.js | 14 +++++++++++++- 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/web/app/assets/javascripts/accounts_audio_profile.js b/web/app/assets/javascripts/accounts_audio_profile.js index 13c679c1c..1ac004c20 100644 --- a/web/app/assets/javascripts/accounts_audio_profile.js +++ b/web/app/assets/javascripts/accounts_audio_profile.js @@ -93,7 +93,7 @@ var profiles = populateAccountAudio(); if(profiles.length <= 1) { setTimeout(function() { - context.JK.prodBubble($addNewGearBtn, 'no-audio-profiles', {}, {positions: ['bottom'], offsetParent: $addNewGearBtn.closest('.screen')}); + context.JK.prodBubble($addNewGearBtn, 'no-audio-profiles', {}, {positions: ['bottom'], offsetParent: $addNewGearBtn.closest('.screen')}) }, 1000); } diff --git a/web/app/assets/javascripts/layout.js b/web/app/assets/javascripts/layout.js index 6abce7e89..227f7d4a2 100644 --- a/web/app/assets/javascripts/layout.js +++ b/web/app/assets/javascripts/layout.js @@ -462,6 +462,7 @@ $dialog.triggerHandler(EVENTS.DIALOG_CLOSED, {name: dialog, dialogCount: openDialogs.length, result: $dialog.data('result'), canceled: canceled }); $(context).triggerHandler(EVENTS.DIALOG_CLOSED, {name: dialog, dialogCount: openDialogs.length, result: $dialog.data('result'), canceled: canceled }); dialogEvent(dialog, 'afterHide'); + $.btOffAll(); // add any prod bubbles if you close a dialog } function screenEvent(screen, evtName, data) { @@ -568,6 +569,8 @@ screenEvent(previousScreen, 'afterHide', data); screenEvent(currentScreen, 'afterShow', data); + console.log("$", $.btOffAll) + jQuery.btOffAll(); // add any prod bubbles if you change screens // Show any requested dialog if ("d" in data) { @@ -700,6 +703,7 @@ addScreenContextToDialog($dialog) $dialog.show(); dialogEvent(dialog, 'afterShow', options); + $.btOffAll(); // add any prod bubbles if you open a dailog return $dialog; } diff --git a/web/app/assets/javascripts/utils.js b/web/app/assets/javascripts/utils.js index f21129f02..993d2139c 100644 --- a/web/app/assets/javascripts/utils.js +++ b/web/app/assets/javascripts/utils.js @@ -198,6 +198,7 @@ $element.btOff(); } }) + return $element; } /** * Associates a bubble on hover (by default) with the specified $element, using jquery.bt.js (BeautyTips) diff --git a/web/vendor/assets/javascripts/jquery.bt.js b/web/vendor/assets/javascripts/jquery.bt.js index fddbcd9c5..fa86c36e6 100644 --- a/web/vendor/assets/javascripts/jquery.bt.js +++ b/web/vendor/assets/javascripts/jquery.bt.js @@ -709,6 +709,9 @@ jQuery.bt = {version: '0.9.7'}; jQuery.bt.vars.closeWhenOpenStack.push(this); } + // MSC: track all bt's open + jQuery.bt.vars.allOpenStack.push(this); + // trigger postShow function // function receives the box element (the balloon wrapper div) as an argument opts.postShow.apply(this, [$box[0]]); @@ -747,6 +750,8 @@ jQuery.bt = {version: '0.9.7'}; // remove this from the stacks jQuery.bt.vars.clickAnywhereStack = arrayRemove(jQuery.bt.vars.clickAnywhereStack, i); jQuery.bt.vars.closeWhenOpenStack = arrayRemove(jQuery.bt.vars.closeWhenOpenStack, i); + // MSC: track all bt's open + jQuery.bt.vars.allOpenStack = arrayRemove(jQuery.bt.vars.allOpenStack, i); // remove the 'bt-active' and activeClass classes from target $(i).removeClass('bt-active ' + opts.activeClass); @@ -1069,7 +1074,14 @@ jQuery.bt = {version: '0.9.7'}; }); }; // - jQuery.bt.vars = {clickAnywhereStack: [], closeWhenOpenStack: []}; + /** + * Turn off all open beauty tips + */ + jQuery.btOffAll = function() { + $(jQuery.bt.vars.allOpenStack).btOff(); + } + + jQuery.bt.vars = {clickAnywhereStack: [], closeWhenOpenStack: [], allOpenStack: []}; /** * This function gets bound to the document's click event