diff --git a/public/app/panels/table/module.html b/public/app/panels/table/module.html
index c85252354dc..75d428acf6a 100644
--- a/public/app/panels/table/module.html
+++ b/public/app/panels/table/module.html
@@ -2,5 +2,7 @@
+
diff --git a/public/app/panels/table/module.ts b/public/app/panels/table/module.ts
index 6103e11113b..f4da7161f6f 100644
--- a/public/app/panels/table/module.ts
+++ b/public/app/panels/table/module.ts
@@ -15,6 +15,7 @@ export class TablePanelCtrl {
constructor($scope, $rootScope, $q, panelSrv, panelHelper) {
$scope.ctrl = this;
$scope.transformers = transformers;
+ $scope.pageIndex = 0;
$scope.panelMeta = new PanelMeta({
panelName: 'Table',
@@ -68,6 +69,7 @@ export function tablePanelDirective() {
controller: TablePanelCtrl,
link: function(scope, elem) {
var data;
+ var panel = scope.panel;
function getTableHeight() {
var panelHeight = scope.height || scope.panel.height || scope.row.height;
@@ -78,39 +80,67 @@ export function tablePanelDirective() {
return (panelHeight - 40) + 'px';
}
- function renderPanel() {
- var rootDiv = elem.find('.table-panel-container');
- var tableDiv = $('
');
- var i, y, rowElem, colElem, column, row;
-
- rowElem = $('
');
- for (i = 0; i < data.columns.length; i++) {
- column = data.columns[i];
- colElem = $('' + column.text + ' | ');
+ function appendTableHeader(tableElem) {
+ var rowElem = $('
');
+ for (var i = 0; i < data.columns.length; i++) {
+ var column = data.columns[i];
+ var colElem = $('' + column.text + ' | ');
rowElem.append(colElem);
}
var headElem = $('');
headElem.append(rowElem);
+ headElem.appendTo(tableElem);
+ }
+ function appendTableRows(tableElem) {
var tbodyElem = $('');
- for (y = 0; y < data.rows.length; y++) {
- row = data.rows[y];
- rowElem = $('
');
- for (i = 0; i < data.columns.length; i++) {
- colElem = $('' + row[i] + ' | ');
+ var rowEnd = Math.min(panel.pageSize, data.rows.length);
+ var rowStart = 0;
+
+ for (var y = rowStart; y < rowEnd; y++) {
+ var row = data.rows[y];
+ var rowElem = $('
');
+ for (var i = 0; i < data.columns.length; i++) {
+ var colElem = $('' + row[i] + ' | ');
rowElem.append(colElem);
}
tbodyElem.append(rowElem);
}
- tableDiv.append(headElem);
- tableDiv.append(tbodyElem);
+ tableElem.append(tbodyElem);
+ }
- rootDiv.css({'max-height': getTableHeight()});
+ function appendPaginationControls(footerElem) {
+ var paginationElem = $('