From 990f96112673dee2417b3934c10f08bcb4cd6735 Mon Sep 17 00:00:00 2001 From: Thomas Piccirello Date: Fri, 29 Dec 2017 17:18:27 -0500 Subject: [PATCH] Allow tables to be added without a parent panel --- src/webui/www/private/scripts/dynamicTable.js | 55 ++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/src/webui/www/private/scripts/dynamicTable.js b/src/webui/www/private/scripts/dynamicTable.js index 4e1f40fd0..ae5121569 100644 --- a/src/webui/www/private/scripts/dynamicTable.js +++ b/src/webui/www/private/scripts/dynamicTable.js @@ -66,39 +66,42 @@ var DynamicTable = new Class({ $(this.dynamicTableDivId).addEvent('scroll', scrollFn); - var resizeFn = function() { - var panel = $(this.dynamicTableDivId).getParent('.panel'); - var h = panel.getBoundingClientRect().height - $(this.dynamicTableFixedHeaderDivId).getBoundingClientRect().height; - $(this.dynamicTableDivId).style.height = h + 'px'; - - // Workaround due to inaccurate calculation of elements heights by browser - - var n = 2; - - while (panel.clientWidth != panel.offsetWidth && n > 0) { // is panel vertical scrollbar visible ? - --n; - h -= 0.5; + // if the table exists within a panel + if ($(this.dynamicTableDivId).getParent('.panel')) { + var resizeFn = function() { + var panel = $(this.dynamicTableDivId).getParent('.panel'); + var h = panel.getBoundingClientRect().height - $(this.dynamicTableFixedHeaderDivId).getBoundingClientRect().height; $(this.dynamicTableDivId).style.height = h + 'px'; - } - this.lastPanelHeight = panel.getBoundingClientRect().height; - }.bind(this); + // Workaround due to inaccurate calculation of elements heights by browser - $(this.dynamicTableDivId).getParent('.panel').addEvent('resize', resizeFn); + var n = 2; - this.lastPanelHeight = 0; + while (panel.clientWidth != panel.offsetWidth && n > 0) { // is panel vertical scrollbar visible ? + --n; + h -= 0.5; + $(this.dynamicTableDivId).style.height = h + 'px'; + } - // Workaround. Resize event is called not always (for example it isn't called when browser window changes it's size) - - var checkResizeFn = function() { - var panel = $(this.dynamicTableDivId).getParent('.panel'); - if (this.lastPanelHeight != panel.getBoundingClientRect().height) { this.lastPanelHeight = panel.getBoundingClientRect().height; - panel.fireEvent('resize'); - } - }.bind(this); + }.bind(this); - setInterval(checkResizeFn, 500); + $(this.dynamicTableDivId).getParent('.panel').addEvent('resize', resizeFn); + + this.lastPanelHeight = 0; + + // Workaround. Resize event is called not always (for example it isn't called when browser window changes it's size) + + var checkResizeFn = function() { + var panel = $(this.dynamicTableDivId).getParent('.panel'); + if (this.lastPanelHeight != panel.getBoundingClientRect().height) { + this.lastPanelHeight = panel.getBoundingClientRect().height; + panel.fireEvent('resize'); + } + }.bind(this); + + setInterval(checkResizeFn, 500); + } }, setupHeaderEvents: function() {