diff --git a/CHANGELOG.md b/CHANGELOG.md
index f785ad5a0a6..aab7128900a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,9 +1,16 @@
# 1.9.0 (unreleased)
+**Enhancements**
+- [Issue #1130](https://github.com/grafana/grafana/issues/1130). SinglestatPanel: Added null point handling, and value to text mapping
+
+
**Fixes**
- [Issue #1087](https://github.com/grafana/grafana/issues/1087). Panel: Fixed IE9 crash due to angular drag drop
- [Issue #1093](https://github.com/grafana/grafana/issues/1093). SingleStatPanel: Fixed position for drilldown link tooltip when dashboard requires scrolling
- [Issue #1095](https://github.com/grafana/grafana/issues/1095). DrilldownLink: template variables in params property was not interpolated
+- [Issue #1114](https://github.com/grafana/grafana/issues/1114). Graphite: Lexer fix, allow equal sign (=) in metric paths
+- [Issue #1136](https://github.com/grafana/grafana/issues/1136). Graph: Fix to legend value Max and negative values
+- [Issue #1150](https://github.com/grafana/grafana/issues/1150). SinglestatPanel: Fixed absolute drilldown link issue
# 1.9.0-rc1 (2014-11-17)
diff --git a/src/app/components/panelmeta.js b/src/app/components/panelmeta.js
index 9b2b2d90104..fc26f1c3d0e 100644
--- a/src/app/components/panelmeta.js
+++ b/src/app/components/panelmeta.js
@@ -5,7 +5,6 @@ function () {
function PanelMeta(options) {
this.description = options.description;
- this.titlePos = options.titlePos;
this.fullscreen = options.fullscreen;
this.menu = [];
this.editorTabs = [];
diff --git a/src/app/components/timeSeries.js b/src/app/components/timeSeries.js
index f9329141640..fd7b9fe849a 100644
--- a/src/app/components/timeSeries.js
+++ b/src/app/components/timeSeries.js
@@ -64,7 +64,7 @@ function (_, kbn) {
var result = [];
this.stats.total = 0;
- this.stats.max = Number.MIN_VALUE;
+ this.stats.max = -Number.MAX_VALUE;
this.stats.min = Number.MAX_VALUE;
this.stats.avg = null;
this.stats.current = null;
@@ -106,7 +106,7 @@ function (_, kbn) {
this.stats.timeStep = this.datapoints[1][1] - this.datapoints[0][1];
}
- if (this.stats.max === Number.MIN_VALUE) { this.stats.max = null; }
+ if (this.stats.max === -Number.MAX_VALUE) { this.stats.max = null; }
if (this.stats.min === Number.MAX_VALUE) { this.stats.min = null; }
if (result.length) {
diff --git a/src/app/dashboards/scripted.js b/src/app/dashboards/scripted.js
index 8fca0248496..93e67aae5b9 100644
--- a/src/app/dashboards/scripted.js
+++ b/src/app/dashboards/scripted.js
@@ -17,7 +17,7 @@
var window, document, ARGS, $, jQuery, moment, kbn;
// Setup some variables
-var dashboard, timspan;
+var dashboard;
// All url parameters are available via the ARGS object
var ARGS;
@@ -30,11 +30,11 @@ dashboard = {
// Set a title
dashboard.title = 'Scripted dash';
-// set default time
+// Set default time
// time can be overriden in the url using from/to parameteres, but this is
// handled automatically in grafana core during dashboard initialization
dashboard.time = {
- from: 'now-6h',
+ from: "now-6h",
to: "now"
};
diff --git a/src/app/dashboards/scripted_async.js b/src/app/dashboards/scripted_async.js
index 0a50aa44d5e..71d77892c3b 100644
--- a/src/app/dashboards/scripted_async.js
+++ b/src/app/dashboards/scripted_async.js
@@ -22,10 +22,7 @@ var window, document, ARGS, $, jQuery, moment, kbn;
return function(callback) {
// Setup some variables
- var dashboard, timspan;
-
- // Set a default timespan if one isn't specified
- timspan = ARGS.from || 'now-1d';
+ var dashboard;
// Intialize a skeleton with nothing but a rows array and service object
dashboard = {
@@ -35,9 +32,13 @@ return function(callback) {
// Set a title
dashboard.title = 'Scripted dash';
+
+ // Set default time
+ // time can be overriden in the url using from/to parameteres, but this is
+ // handled automatically in grafana core during dashboard initialization
dashboard.time = {
- from: timspan,
- to: "now"
+ from: "now-6h",
+ to: "now"
};
var rows = 1;
diff --git a/src/app/dashboards/scripted_templated.js b/src/app/dashboards/scripted_templated.js
index 9ce145f4606..a0d3e081293 100644
--- a/src/app/dashboards/scripted_templated.js
+++ b/src/app/dashboards/scripted_templated.js
@@ -17,25 +17,27 @@
var window, document, ARGS, $, jQuery, moment, kbn;
// Setup some variables
-var dashboard, timspan;
+var dashboard;
// All url parameters are available via the ARGS object
var ARGS;
-// Set a default timespan if one isn't specified
-timspan = ARGS.from || 'now-1d';
-
// Intialize a skeleton with nothing but a rows array and service object
dashboard = {
rows : [],
};
// Set a title
-dashboard.title = 'Scripted dash';
+dashboard.title = 'Scripted and templated dash';
+
+// Set default time
+// time can be overriden in the url using from/to parameteres, but this is
+// handled automatically in grafana core during dashboard initialization
dashboard.time = {
- from: timspan,
+ from: "now-6h",
to: "now"
};
+
dashboard.templating = {
enable: true,
list: [
diff --git a/src/app/directives/panelMenu.js b/src/app/directives/panelMenu.js
index 4b3970fba39..286d6e0bab7 100644
--- a/src/app/directives/panelMenu.js
+++ b/src/app/directives/panelMenu.js
@@ -147,11 +147,6 @@ function (angular, $, _) {
dismiss(2200);
};
- if ($scope.panelMeta.titlePos && $scope.panel.title) {
- elem.css('text-align', 'left');
- $link.css('padding-left', '10px');
- }
-
elem.click(showMenu);
$compile(elem.contents())($scope);
}
diff --git a/src/app/panels/singlestat/editor.html b/src/app/panels/singlestat/editor.html
index 3265b3961d7..67df1405682 100644
--- a/src/app/panels/singlestat/editor.html
+++ b/src/app/panels/singlestat/editor.html
@@ -13,6 +13,10 @@
+