From 51cdceba3ed8d8fd0b71838c111110727d8da3d4 Mon Sep 17 00:00:00 2001 From: Hitesh Trivedi Date: Tue, 9 Dec 2014 17:41:58 +0530 Subject: [PATCH] [FIX] web: automatic scroll towards tour popups that are not on screen --- addons/web/static/src/js/tour.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/addons/web/static/src/js/tour.js b/addons/web/static/src/js/tour.js index 3fc2536581d..efc46c00d6e 100644 --- a/addons/web/static/src/js/tour.js +++ b/addons/web/static/src/js/tour.js @@ -211,6 +211,7 @@ var Tour = { Tour.$element = $element; + Tour.scrollIntoView($element); $element.data("tour", state.id); $element.data("tour-step", step.id); $element.popover({ @@ -684,6 +685,16 @@ var Tour = { var $dropZone = $(".oe_drop_zone").first(); var dropPosition = $dropZone.position(); $thumbnail.trigger($.Event("mouseup", { which: 1, pageX: dropPosition.left, pageY: dropPosition.top })); + }, + scrollIntoView: function ($element){ + // if element is not on window (screen) then it scroll down to get popup visible + if (!$element.is('body')){ + var element_top = $element.offset().top; + var visible = ((element_top > $(window).scrollTop()) && (element_top < ($(window).scrollTop() + $(window).height()))); + if (!visible) { + $("body, html").animate({scrollTop: $element.offset().top - $(window).height() / 2 }, 800); + } + } } }; openerp.Tour = Tour;