Module: check_mk
Branch: master
Commit: 42e0172d20764ca36079dfe50cf5727a2fcab943
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=42e0172d20764c…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Dec 8 09:30:04 2014 +0100
Fixed "add to visual" menu positioned out of top screen border
---
web/htdocs/js/checkmk.js | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/web/htdocs/js/checkmk.js b/web/htdocs/js/checkmk.js
index 0f8a9bf..ec9c3f8 100644
--- a/web/htdocs/js/checkmk.js
+++ b/web/htdocs/js/checkmk.js
@@ -573,8 +573,8 @@ function create_graph(data, params) {
// Add the control for adding the graph to a dashboard
var visualadd = document.createElement('a');
- visualadd.title = 'Add to dashboard';
- visualadd.setAttribute('class', 'visualadd');
+ visualadd.title = 'Add this view to...';
+ visualadd.className = 'visualadd';
visualadd.onclick = function(host, service, view, source) {
return function(event) {
toggle_add_to_visual(event, this, 'pnpgraph',
@@ -2301,7 +2301,6 @@ function add_dashboard_response_handler(data, response_text)
}
function fix_visualadd_menu_position(event, menu) {
- //var target = getTarget(event);
//
//// When menu is out of screen on the right, move to left
//if (menu.offsetLeft + menu.clientWidth > pageWidth()) {
@@ -2309,11 +2308,16 @@ function fix_visualadd_menu_position(event, menu) {
// menu.style.right = 'auto';
//}
- //// When menu is out of screen on the top, move to bottom
- //if (menu.offsetTop < 0) {
- // menu.style.top = (menu.offsetTop + menu.clientHeight) + 'px';
- // menu.style.bottom = 'auto';
- //}
+ // menu.offsetTop does not take whole page offset into account, because
+ // it is positioned relative to another element. Take this into account
+ var offset_top = menu.offsetTop + menu.offsetParent.offsetTop;
+
+ // When menu is out of screen on the top, move to bottom
+ console.log(offset_top)
+ if (offset_top < 0) {
+ menu.style.top = (menu.offsetTop + menu.clientHeight) + 'px';
+ menu.style.bottom = 'auto';
+ }
}
function add_to_visual(visual_type, name)