summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/static/js/main.js
diff options
context:
space:
mode:
Diffstat (limited to 'bitbake/lib/toaster/toastergui/static/js/main.js')
-rw-r--r--bitbake/lib/toaster/toastergui/static/js/main.js55
1 files changed, 19 insertions, 36 deletions
diff --git a/bitbake/lib/toaster/toastergui/static/js/main.js b/bitbake/lib/toaster/toastergui/static/js/main.js
index 3710e59e92..dc96564b17 100644
--- a/bitbake/lib/toaster/toastergui/static/js/main.js
+++ b/bitbake/lib/toaster/toastergui/static/js/main.js
@@ -21,8 +21,25 @@ $(document).ready(function() {
});
// enable popovers in any table cells that contain an anchor with the
- // .btn class applied
- $('td > a.btn').popover({html:true, container:'body', placement:'left'});
+ // .btn class applied, and make sure popovers work on click, are mutually
+ // exclusive and they close when your click outside their area
+
+ $('html').click(function(e){
+ $('td > a.btn').popover('hide');
+ });
+
+ $('td > a.btn').popover({
+ html:true,
+ placement:'left',
+ container:'body',
+ trigger:'manual'
+ }).click(function(e){
+ $('td > a.btn').not(this).popover('hide');
+ // ideally we would use 'toggle' here
+ // but it seems buggy in our Bootstrap version
+ $(this).popover('show');
+ e.stopPropagation();
+ });
// enable tooltips for applied filters
$('th a.btn-primary').tooltip({container:'body', html:true, placement:'bottom', delay:{hide:1500}});
@@ -53,38 +70,4 @@ $(document).ready(function() {
});
});
- /* Make help tooltip and popovers work on click, mutually exclusive and dismiss them when clicking outside their area
- from http://fuzzytolerance.info/blog/quick-hack-one-bootstarp-popover-at-a-time/ */
-
- // Global variables - cringe
- var visibleTooltip;
- var visiblePopover;
-
- //only allow 1 popover at a time
- $('.depends > a , .brought_in_by > a, .layer_commit > a').on('click', function(e) {
- // don't fall through
- e.stopPropagation();
- var $this = $(this);
- // check if the one hovered over is now shown
- if ($this.data('popover').tip().hasClass('in')) {
- // if another was showing, hide it
- visiblePopover && visiblePopover.popover('hide');
- // then store the current popover
- visiblePopover = $this;
- } else {
- // if it was hidden, then nothing must be showing
- visiblePopover = '';
- }
- // dismiss popovers when you click outside them
- $('body').on("click", function (e) {
- var $target = $(e.target),
- inPopover = $(e.target).closest('.popover').length > 0
- //hide only if clicked on button or inside popover
- if (!inPopover) {
- visiblePopover.popover('hide');
- visiblePopover = '';
- }
- });
- });
-
});