mirror of
https://github.com/ansible/awx.git
synced 2026-01-15 03:40:42 -03:30
Cleanup the hack
This commit is contained in:
parent
cef0d0bb00
commit
6e0399379d
@ -489,8 +489,7 @@ angular.module('AWDirectives', ['RestServices', 'Utilities', 'AuthService', 'Job
|
||||
container = (attrs.container !== undefined) ? attrs.container : false,
|
||||
trigger = (attrs.trigger !== undefined) ? attrs.trigger : 'manual',
|
||||
template = '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>',
|
||||
id_to_close = "",
|
||||
body_click_count;
|
||||
id_to_close = "";
|
||||
|
||||
if (element[0].id) {
|
||||
template = '<div id="' + element[0].id + '_popover_container" class="popover" role="tooltip"><div class="arrow"></div><h3 id="' + element[0].id + '_popover_title" class="popover-title"></h3><div id="' + element[0].id + '_popover_content" class="popover-content"></div></div>';
|
||||
@ -522,7 +521,32 @@ angular.module('AWDirectives', ['RestServices', 'Utilities', 'AuthService', 'Job
|
||||
});
|
||||
}
|
||||
$(element).attr('tabindex',-1);
|
||||
$(element).click(function() {
|
||||
|
||||
$(element).one('click', showPopover);
|
||||
|
||||
$(element).on('shown.bs.popover', function() {
|
||||
$('body').one('click.popover' + id_to_close, function(e) {
|
||||
if ($(e.target).parents(id_to_close).length === 0) {
|
||||
$(element).popover('hide');
|
||||
}
|
||||
});
|
||||
|
||||
$(document).on('keydown.popover', dismissOnEsc);
|
||||
|
||||
});
|
||||
|
||||
$(element).on('hidden.bs.popover', function() {
|
||||
$(element).off('click', dismissPopover);
|
||||
$(element).off('click', showPopover);
|
||||
$('body').off('click.popover.' + id_to_close);
|
||||
$(element).one('click', showPopover);
|
||||
$(document).off('keydown.popover', dismissOnEsc);
|
||||
});
|
||||
|
||||
function showPopover(e) {
|
||||
console.log(element);
|
||||
e.stopPropagation();
|
||||
|
||||
var self = $(this);
|
||||
|
||||
// remove tool-tip
|
||||
@ -545,6 +569,7 @@ angular.module('AWDirectives', ['RestServices', 'Utilities', 'AuthService', 'Job
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('.popover').each(function() {
|
||||
// remove lingering popover <div>. Seems to be a bug in TB3 RC1
|
||||
$(this).remove();
|
||||
@ -557,50 +582,30 @@ angular.module('AWDirectives', ['RestServices', 'Utilities', 'AuthService', 'Job
|
||||
// set id_to_close of the actual open element
|
||||
id_to_close = "#" + $(element).attr('id') + "_popover_container";
|
||||
|
||||
// set the number of times the body has been clicked since the popover has been opened
|
||||
body_click_count = 0;
|
||||
|
||||
if ($._data(document.body, "events")) {
|
||||
// in the case that the popOver is retriggered (ie: you click the question mark
|
||||
// again for that popover. tread this as a toggle and do not bind another
|
||||
// click event.
|
||||
// PROBLEM NOTE: if things are bound to the body this might break.
|
||||
$('body').off('click');
|
||||
} else {
|
||||
$('body').on('click', function(e) {
|
||||
if ($(e.target).parents(id_to_close).length === 0) {
|
||||
// if you click outside the popover
|
||||
// increment the body click counter
|
||||
body_click_count++;
|
||||
if (body_click_count === 2) {
|
||||
// if that counter was incremented to 2
|
||||
// note this value is 2 because an initial fire
|
||||
// needs to be taken into account when the modal opens...
|
||||
// toggle the tooltip because this is actually
|
||||
// the first click outside of the popOver since it has been open
|
||||
$(element).popover('toggle');
|
||||
$('body').off('click');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
// $(element).one('click', dismissPopover);
|
||||
|
||||
$(this).popover('toggle');
|
||||
|
||||
$('.popover').each(function() {
|
||||
$compile($(this))(scope); //make nested directives work!
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
$(document).bind('keydown', function(e) {
|
||||
function dismissPopover(e) {
|
||||
e.stopPropagation();
|
||||
$(element).popover('hide');
|
||||
}
|
||||
|
||||
function dismissOnEsc(e) {
|
||||
if (e.keyCode === 27) {
|
||||
$(element).popover('hide');
|
||||
$('.popover').each(function() {
|
||||
// remove lingering popover <div>. Seems to be a bug in TB3 RC1
|
||||
$(this).remove();
|
||||
// $(this).remove();
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
}])
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user