luci-base: ui.js: avoid error tooltips overlapping dropdowns
Fixes: #5588
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 604c009059
)
This commit is contained in:
parent
0ac2542085
commit
2be076e5b1
1 changed files with 11 additions and 2 deletions
|
@ -3236,7 +3236,8 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ {
|
|||
|
||||
var rect = target.getBoundingClientRect(),
|
||||
x = rect.left + window.pageXOffset,
|
||||
y = rect.top + rect.height + window.pageYOffset;
|
||||
y = rect.top + rect.height + window.pageYOffset,
|
||||
above = false;
|
||||
|
||||
tooltipDiv.className = 'cbi-tooltip';
|
||||
tooltipDiv.innerHTML = '▲ ';
|
||||
|
@ -3245,7 +3246,15 @@ var UI = baseclass.extend(/** @lends LuCI.ui.prototype */ {
|
|||
if (target.hasAttribute('data-tooltip-style'))
|
||||
tooltipDiv.classList.add(target.getAttribute('data-tooltip-style'));
|
||||
|
||||
if ((y + tooltipDiv.offsetHeight) > (window.innerHeight + window.pageYOffset)) {
|
||||
if ((y + tooltipDiv.offsetHeight) > (window.innerHeight + window.pageYOffset))
|
||||
above = true;
|
||||
|
||||
var dropdown = target.querySelector('ul.dropdown[style]:first-child');
|
||||
|
||||
if (dropdown && dropdown.style.top)
|
||||
above = true;
|
||||
|
||||
if (above) {
|
||||
y -= (tooltipDiv.offsetHeight + target.offsetHeight);
|
||||
tooltipDiv.firstChild.data = '▼ ' + tooltipDiv.firstChild.data.substr(2);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue