diff --git a/dist/.reporttable.js.swp b/dist/.reporttable.js.swp
new file mode 100644
index 0000000..a3af03a
Binary files /dev/null and b/dist/.reporttable.js.swp differ
diff --git a/dist/reporttable.js b/dist/reporttable.js
index d9a8ab1..8327bd6 100644
--- a/dist/reporttable.js
+++ b/dist/reporttable.js
@@ -33,11 +33,19 @@
this.refreshFunct = $.proxy(this.scroll, this);
this.resizeFunct = $.proxy(this.resize, this);
+ var that = this;
$(window).scroll(this.refreshFunct);
$(window).resize(this.resizeFunct);
+ this.scrollContainer.scroll(function() {
+ if (this.scrollHeight <= $(this).scrollTop() + $(this).height()) {
+ that.parentContainer.trigger("needsMoreData", [that.parentContainer]);
+ }
+
+ that.frozenScrollContainer.scrollTop($(this).scrollTop());
+ that.regularTable.find(".headerFooterContainer").scrollLeft($(this).scrollLeft());
+ });
var scrollEventObject;
- var that = this;
if (scrollEventObject = this.options.scrollEventObject) {
scrollEventObject.scroll(function() {that.scroll()});
} else {
@@ -56,6 +64,7 @@
this.frozenIndices = [];
this.container.on("colFreezeToggle", function (event, index) {
var widths = that.getOuterWidthsFromFirstRow();
+
var headerHeight = that.getHeightFromHeader();
var rowHeight = that.getHeightFromFirstRow();
var frozenIndex = that.frozenIndices.indexOf(index);
@@ -83,6 +92,7 @@
that.accommodateFrozen($('#frozenCols'));
that.resize();
+ that.scrollContainer.scroll();
});
this.frozenCols.on("rowAdded", function (event, args) {
@@ -111,7 +121,9 @@
{
selectedRow = $(table).children().children().first();
- this.regularTable.css({"left":this.parentContainer.find("#frozenContainer").width()});
+ var width = this.parentContainer.find("#frozenContainer").width();
+ this.regularTable.css("left", width);
+ this.scrollContainer.css("max-width", this.parentContainer.width() - width);
}
ReportTable.prototype.reset = function()
@@ -137,7 +149,7 @@
.addClass(this.options.cssPrefix+"_footer")
.css({
position:"relative",
- "margin-top":-this.container.children("tfoot").height()-4,
+ //"margin-top":-this.container.children("tfoot").height(),
"table-layout":"fixed"
})
.append(this.container.children("tfoot").clone(true));
@@ -149,15 +161,17 @@
if(this.options.scrollContainer != null)
this.createFooterScrollbar();
- this.frozenTable = $("
").addClass('inline-block').attr('id', 'frozenContainer');
- this.regularTable = $("
").addClass('inline-block').attr('id', 'regularContainer');
+ this.frozenTable = $("
").attr("id", "frozenContainer");
+ this.regularTable = $("
").attr("id", "regularContainer");
- this.frozenHeader = this.header.clone(true).attr("id", "frozenHeader");
+ this.frozenHeader = this.header.clone(true).attr("id", "frozenHeader").addClass("headerContainer");
this.frozenHeader.find(".freeze-column").trigger("freezeToggle");
this.frozenHeader.find("td,th").hide();
this.frozenTable.append(this.frozenHeader);
- this.frozenTable.append(this.frozenCols);
+ this.frozenScrollContainer = $("
").addClass("frozenScrollContainer");
+ this.frozenScrollContainer.append(this.frozenCols);
+ this.frozenTable.append(this.frozenScrollContainer);
this.frozenTable.find("th").hide();
this.frozenFooter = this.footer.clone()
@@ -168,13 +182,21 @@
this.container.before(this.frozenTable);
this.container.before(this.regularTable);
- this.regularTable.append(this.container);
+ this.scrollContainer = $("
").addClass("reportScrollContainer");
+ this.scrollContainer.append(this.container);
+
+ this.regularTable.append($("
").addClass("headerFooterContainer headerContainer").append(this.header));
+ this.regularTable.append(this.scrollContainer);
+ this.regularTable.append($("
").addClass("headerFooterContainer").append(this.footer));
+
+ var frozenTableMain = this.frozenTable.find("table").eq(1);
+ frozenTableMain.find("thead").css("visibility", "hidden");
+ frozenTableMain.find("tfoot").hide();
- this.container.before(this.header);
- this.container.after(this.footer);
+ var regularTableMain = this.regularTable.find("table").eq(1);
+ regularTableMain.find("thead").css("visibility", "hidden");
+ regularTableMain.find("tfoot").hide();
- this.frozenTable.find("table").eq(1).find("thead, tfoot").css("visibility", "hidden");
- this.regularTable.find("table").eq(1).find("thead, tfoot").css("visibility", "hidden");
this.refresh();
}
@@ -189,8 +211,8 @@
if ($(window).scrollTop() + $(window).height() > $(document).height()) {
return;
}
- this.moveHeader();
- this.moveFooter();
+ //this.moveHeader();
+ //this.moveFooter();
}
ReportTable.prototype.moveHeader = function()
@@ -244,6 +266,7 @@
if(index >= widths.length) {
return false;
}
+
$(this).css("min-width", widths[index]);
$(this).css("max-width", widths[index]);
});
@@ -324,6 +347,16 @@
return widths;
}
+ ReportTable.prototype.getOuterWidthsFromHeader = function ()
+ {
+ var widths = [];
+ this.header.find("tr").eq(1).find("td, th").each(function(index) {
+ widths.push($(this).outerWidth());
+ });
+
+ return widths;
+ }
+
ReportTable.prototype.getOuterWidthsFromFirstRow = function()
{
var firstRow = this.body.find("tr").eq(0);