diff --git a/public/app/core/directives/metric_segment.js b/public/app/core/directives/metric_segment.js
index 6fdc171c1f8..9babb74dc2d 100644
--- a/public/app/core/directives/metric_segment.js
+++ b/public/app/core/directives/metric_segment.js
@@ -192,6 +192,8 @@ function (_, $, coreModule) {
var option = _.findWhere($scope.options, {text: $scope.segment.value});
if (option && option.value !== $scope.property) {
$scope.property = option.value;
+ } else if (attrs.custom !== 'false') {
+ $scope.property = $scope.segment.value;
}
} else {
$scope.property = $scope.segment.value;
diff --git a/public/app/panels/table/controller.ts b/public/app/panels/table/controller.ts
index 99570d4b6c6..4cca50ff337 100644
--- a/public/app/panels/table/controller.ts
+++ b/public/app/panels/table/controller.ts
@@ -30,6 +30,8 @@ export class TablePanelCtrl {
showHeader: true,
columns: [],
fields: [],
+ scroll: true,
+ fontSize: '100%',
sort: {col: null, desc: true},
};
@@ -75,18 +77,13 @@ export class TablePanelCtrl {
$scope.dataHandler = function(results) {
$scope.dataRaw = results.data;
+ $scope.pageIndex = 0;
$scope.render();
};
$scope.render = function() {
$scope.table = TableModel.transform($scope.dataRaw, $scope.panel);
$scope.table.sort($scope.panel.sort);
-
- $scope.pageCount = Math.ceil($scope.table.rows.length / $scope.panel.pageSize);
- $scope.showPagination = $scope.pageCount > 1;
- $scope.showPrevPageLink = $scope.pageIndex > 0;
- $scope.showNextPageLink = $scope.pageIndex < $scope.pageCount;
-
panelHelper.broadcastRender($scope, $scope.table, $scope.dataRaw);
};
diff --git a/public/app/panels/table/editor.html b/public/app/panels/table/editor.html
index aced71a8a98..64bc0c997e5 100644
--- a/public/app/panels/table/editor.html
+++ b/public/app/panels/table/editor.html
@@ -47,6 +47,15 @@
+
+
+
+
+ Font size
+
+
+
+
@@ -90,7 +99,7 @@
Format
-
+
diff --git a/public/app/panels/table/editor.ts b/public/app/panels/table/editor.ts
index 8aae1840629..06fbea3167f 100644
--- a/public/app/panels/table/editor.ts
+++ b/public/app/panels/table/editor.ts
@@ -29,6 +29,12 @@ export function tablePanelEditor() {
{text: 'String', value: 'string'},
{text: 'Date', value: 'date'},
];
+ scope.fontSizes = ['80%', '90%', '100%', '110%', '120%', '130%', '150%', '160%', '180%', '200%', '220%', '250%'];
+ scope.dateFormats = [
+ {text: 'YYYY-MM-DD HH:mm:ss', value: 'YYYY-MM-DD HH:mm:ss'},
+ {text: 'MM/DD/YY h:mm:ss a', value: 'MM/DD/YY h:mm:ss a'},
+ {text: 'MMMM D, YYYY LT', value: 'MMMM D, YYYY LT'},
+ ];
scope.updateJsonFieldsMenu = function(data) {
scope.jsonFieldsMenu = [];
@@ -103,7 +109,6 @@ export function tablePanelEditor() {
return col.text;
});
};
-
}
};
}
diff --git a/public/app/panels/table/module.ts b/public/app/panels/table/module.ts
index 745045c8139..beb62127c2d 100644
--- a/public/app/panels/table/module.ts
+++ b/public/app/panels/table/module.ts
@@ -20,7 +20,6 @@ export function tablePanel() {
var data;
var panel = scope.panel;
var formaters = [];
- var pageIndex = 0;
function getTableHeight() {
var panelHeight = scope.height || scope.panel.height || scope.row.height;
@@ -34,12 +33,12 @@ export function tablePanel() {
function appendTableRows(tbodyElem) {
var renderer = new TableRenderer(panel, data, scope.dashboard.timezone);
tbodyElem.empty();
- tbodyElem.html(renderer.render(pageIndex));
+ tbodyElem.html(renderer.render(scope.pageIndex));
}
function switchPage(e) {
var el = $(e.currentTarget);
- pageIndex = (parseInt(el.text(), 10)-1);
+ scope.pageIndex = (parseInt(el.text(), 10)-1);
renderPanel();
}
@@ -51,7 +50,7 @@ export function tablePanel() {
return;
}
- var startPage = Math.max(pageIndex - 3, 0);
+ var startPage = Math.max(scope.pageIndex - 3, 0);
var endPage = Math.min(pageCount, startPage + 9);
var paginationList = $('');
@@ -60,7 +59,7 @@ export function tablePanel() {
paginationList.append(prevLink);
for (var i = startPage; i < endPage; i++) {
- var activeClass = i === pageIndex ? 'active' : '';
+ var activeClass = i === scope.pageIndex ? 'active' : '';
var pageLinkElem = $('' + (i+1) + '');
paginationList.append(pageLinkElem);
}
@@ -72,13 +71,18 @@ export function tablePanel() {
}
function renderPanel() {
+ var container = elem.find('.table-panel-container');
var rootElem = elem.find('.table-panel-scroll');
var tbodyElem = elem.find('tbody');
var footerElem = elem.find('.table-panel-footer');
appendTableRows(tbodyElem);
- rootElem.css({'max-height': getTableHeight()});
+ rootElem.css({
+ 'max-height': panel.scroll ? getTableHeight() : ''
+ });
+
+ container.css({'font-size': panel.fontSize});
appendPaginationControls(footerElem);
}
@@ -95,7 +99,6 @@ export function tablePanel() {
return;
}
- pageIndex = 0;
renderPanel();
});
}
diff --git a/public/less/panel_table.less b/public/less/panel_table.less
index 7f7512c691a..23a17cd0976 100644
--- a/public/less/panel_table.less
+++ b/public/less/panel_table.less
@@ -12,7 +12,7 @@
}
.table-panel-container {
- padding-top: 32px;
+ padding-top: 2em;
position: relative;
}
@@ -62,7 +62,7 @@
}
td {
- padding: 6px 0 6px 15px;
+ padding: 0.45em 0 0.45em 1.1em;
border-bottom: 2px solid @bodyBackground;
border-right: 2px solid @bodyBackground;
@@ -79,7 +79,7 @@
background: @grafanaListAccent;
border-top: 2px solid @bodyBackground;
border-bottom: 2px solid @bodyBackground;
- height: 32px;
+ height: 2.0em;
position: absolute;
top: 0;
right: 0;
@@ -87,12 +87,10 @@
}
.table-panel-table-header-inner {
- padding: 6px 0 6px 15px;
+ padding: 0.45em 0 0.45em 1.1em;
text-align: left;
color: @blue;
-
position: absolute;
top: 0;
- line-height: 23px;
}