diff options
Diffstat (limited to 'plugins/CoreHome/javascripts/top_controls.js')
-rw-r--r-- | plugins/CoreHome/javascripts/top_controls.js | 34 |
1 files changed, 30 insertions, 4 deletions
diff --git a/plugins/CoreHome/javascripts/top_controls.js b/plugins/CoreHome/javascripts/top_controls.js index 62ce3cecca..21947ca813 100644 --- a/plugins/CoreHome/javascripts/top_controls.js +++ b/plugins/CoreHome/javascripts/top_controls.js @@ -5,6 +5,24 @@ * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ function initTopControls() { + function getOverlap(element1, element2) + { + if (!element1 || !element1.getBoundingClientRect || !element2 || !element2.getBoundingClientRect) { + return 0; + } + + var rect1 = element1.getBoundingClientRect(); + var rect2 = element2.getBoundingClientRect(); + + var doOverlap = !(rect1.right < rect2.left || rect1.left > rect2.right); + + if (doOverlap) { + return rect1.left - rect2.right; + } + + return 0; + } + var $topControlsContainer = $('.top_controls'), left = 0; @@ -17,11 +35,19 @@ function initTopControls() { $control.css('left', left); - if (!$.contains($topControlsContainer[0], this)) { - $control.detach().appendTo($topControlsContainer); - } - left += $control.outerWidth(true); }); + + var header = $('#header_message.isPiwikDemo'); + if (header.length) { + // make sure isPiwikDemo message is always fully visible, move it to the right if needed + var lastSelector = $('.top_controls .piwikTopControl:last'); + + var overlap = getOverlap(header[0], lastSelector[0]); + if (header[0] !== lastSelector[0] && overlap !== 0) { + header.css('right', (Math.abs(overlap) + 18) * -1); + } + } + } }
\ No newline at end of file |