diff options
Diffstat (limited to 'ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/persist_table_header.js')
-rw-r--r-- | ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/persist_table_header.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/persist_table_header.js b/ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/persist_table_header.js new file mode 100644 index 00000000..2c90306f --- /dev/null +++ b/ecomp-sdk/sdk-app/src/main/webapp/static/fusion/raptor/js/persist_table_header.js @@ -0,0 +1,47 @@ + function UpdateTableHeaders() { + $("div.divTableWithFloatingHeader").each(function() { + var originalHeaderRow = $(".tableFloatingHeaderOriginal", this); + var floatingHeaderRow = $(".tableFloatingHeader", this); + var offset = $(this).offset(); + var scrollTop = $(window).scrollTop(); + if ((scrollTop > offset.top) && (scrollTop < offset.top + $(this).height())) { + floatingHeaderRow.css("visibility", "visible"); + floatingHeaderRow.css("top", Math.min(scrollTop - offset.top, $(this).height() - floatingHeaderRow.height()) + "px"); + floatingHeaderRow.css("z-index", "20"); + + // Copy cell widths from original header + $("th", floatingHeaderRow).each(function(index) { + var cellWidth = $("th", originalHeaderRow).eq(index).css('width'); + $(this).css('width', cellWidth); + }); + + // Copy row width from whole table + floatingHeaderRow.css("width", $(this).css("width")); + } + else { + floatingHeaderRow.css("visibility", "hidden"); + floatingHeaderRow.css("top", "0px"); + } + }); + } + + $(document).ready(function() { + $("table.tableWithFloatingHeader").each(function() { + $(this).wrap("<div class=\"divTableWithFloatingHeader\" style=\"position:relative\"></div>"); + + var originalHeaderRow = $("tr:first", this) + originalHeaderRow.before(originalHeaderRow.clone()); + var clonedHeaderRow = $("tr:first", this) + + clonedHeaderRow.addClass("tableFloatingHeader"); + clonedHeaderRow.css("position", "absolute"); + clonedHeaderRow.css("top", "0px"); + clonedHeaderRow.css("left", $(this).css("margin-left")); + clonedHeaderRow.css("visibility", "hidden"); + + originalHeaderRow.addClass("tableFloatingHeaderOriginal"); + }); + UpdateTableHeaders(); + $(window.parent).scroll(UpdateTableHeaders); + $(window.parent).resize(UpdateTableHeaders); + });
\ No newline at end of file |