diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b525a62999..b7d233c8237 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - [Issue #802](https://github.com/grafana/grafana/issues/802). Annotations: Fix when using InfluxDB datasource - [Issue #795](https://github.com/grafana/grafana/issues/795). Chrome: Fix for display issue in chrome beta & chrome canary when entering edit mode - [Issue #818](https://github.com/grafana/grafana/issues/818). Graph: Added percent y-axis format +- [Issue #828](https://github.com/grafana/grafana/issues/828). Elasticsearch: saving new dashboard with title equal to slugified url would cause it to deleted. # 1.8.0-RC1 (2014-09-12) diff --git a/src/app/components/kbn.js b/src/app/components/kbn.js index 374d2f561b8..7c61b22c83b 100644 --- a/src/app/components/kbn.js +++ b/src/app/components/kbn.js @@ -567,8 +567,8 @@ function($, _, moment) { kbn.msFormat = function(size, decimals) { // Less than 1 milli, downscale to micro - if (Math.abs(size) < 1) { - return kbn.microsFormat(size * 1000,decimals); + if (size !== 0 && Math.abs(size) < 1) { + return kbn.microsFormat(size * 1000, decimals); } else if (Math.abs(size) < 1000) { return size.toFixed(decimals) + " ms"; @@ -595,7 +595,7 @@ function($, _, moment) { kbn.sFormat = function(size, decimals) { // Less than 1 sec, downscale to milli - if (Math.abs(size) < 1) { + if (size !== 0 && Math.abs(size) < 1) { return kbn.msFormat(size * 1000, decimals); } // Less than 10 min, use seconds @@ -624,7 +624,7 @@ function($, _, moment) { kbn.microsFormat = function(size, decimals) { // Less than 1 micro, downscale to nano - if (Math.abs(size) < 1) { + if (size !== 0 && Math.abs(size) < 1) { return kbn.nanosFormat(size * 1000, decimals); } else if (Math.abs(size) < 1000) { diff --git a/src/app/controllers/dashboardNavCtrl.js b/src/app/controllers/dashboardNavCtrl.js index b6813b7ce19..76ef34f8e92 100644 --- a/src/app/controllers/dashboardNavCtrl.js +++ b/src/app/controllers/dashboardNavCtrl.js @@ -78,7 +78,7 @@ function (angular, _, moment, config, store) { var clone = angular.copy($scope.dashboard); $scope.db.saveDashboard(clone) .then(function(result) { - alertSrv.set('Dashboard Saved', 'Dashboard has been saved as "' + result.title + '"','success', 5000); + alertSrv.set('Dashboard Saved', 'Saved as "' + result.title + '"','success', 3000); if (result.url !== $location.path()) { $location.search({}); @@ -88,7 +88,7 @@ function (angular, _, moment, config, store) { $rootScope.$emit('dashboard-saved', $scope.dashboard); }, function(err) { - alertSrv.set('Save failed', err, 'error',5000); + alertSrv.set('Save failed', err, 'error', 5000); }); }; diff --git a/src/app/directives/grafanaGraph.js b/src/app/directives/grafanaGraph.js index 15f1556aa62..ee6b0fb7dd7 100755 --- a/src/app/directives/grafanaGraph.js +++ b/src/app/directives/grafanaGraph.js @@ -110,6 +110,11 @@ function (angular, $, kbn, moment, _) { // Populate element var options = { + hooks: { + drawSeries: [function() { + console.log('drawSeries', arguments); + }] + }, legend: { show: false }, series: { stackpercent: panel.stack ? panel.percentage : false, diff --git a/src/app/services/elasticsearch/es-datasource.js b/src/app/services/elasticsearch/es-datasource.js index 80e3c5d0100..ab03c614a83 100644 --- a/src/app/services/elasticsearch/es-datasource.js +++ b/src/app/services/elasticsearch/es-datasource.js @@ -37,6 +37,7 @@ function (angular, _, config, kbn, moment) { }; if (this.basicAuth) { + options.withCredentials = true; options.headers = { "Authorization": "Basic " + this.basicAuth }; @@ -168,7 +169,7 @@ function (angular, _, config, kbn, moment) { return this._request('PUT', '/dashboard/' + id, this.index, data) .then(function(results) { - self._removeUnslugifiedDashboard(results, title); + self._removeUnslugifiedDashboard(results, title, id); return { title: title, url: '/dashboard/db/' + id }; }, function() { throw 'Failed to save to elasticsearch'; @@ -176,8 +177,9 @@ function (angular, _, config, kbn, moment) { } }; - ElasticDatasource.prototype._removeUnslugifiedDashboard = function(saveResult, title) { + ElasticDatasource.prototype._removeUnslugifiedDashboard = function(saveResult, title, id) { if (saveResult.statusText !== 'Created') { return; } + if (title === id) { return; } var self = this; this._get('/dashboard/' + title).then(function() { diff --git a/src/css/less/bootswatch.light.less b/src/css/less/bootswatch.light.less index 5675d605cbd..f4f573c58b0 100644 --- a/src/css/less/bootswatch.light.less +++ b/src/css/less/bootswatch.light.less @@ -59,6 +59,7 @@ a.text-success:hover { color: darken(@green, 10%); } } .brand { + padding: 0px 15px; &:hover { color: @navbarLinkColorHover; @@ -461,7 +462,6 @@ legend { // ----------------------------------------------------- .alert { - .border-radius(0); text-shadow: none; &-heading, h1, h2, h3, h4, h5, h6 { diff --git a/src/css/less/overrides.less b/src/css/less/overrides.less index 58e72ef43fa..957a56147dd 100644 --- a/src/css/less/overrides.less +++ b/src/css/less/overrides.less @@ -317,13 +317,38 @@ div.flot-text { color: @textColor !important; } -.dashboard-notice { +.page-alert-list { z-index:8000; - margin-left:0px; - padding:3px 0px 3px 0px; - width:100%; - padding-left:20px; - color: @white; + min-width: 300px; + max-width: 300px; + position: fixed; + right: 20px; + top: 56px; + + .alert { + color: @white; + padding-bottom: 13px; + position: relative; + } + + .alert-close { + position: absolute; + top: -4px; + right: -2px; + width: 19px; + height: 19px; + padding: 0; + background: @grayLighter; + border-radius: 50%; + border: none; + font-size: 1.1rem; + color: @grayDarker; + } + + .alert-title { + font-weight: bold; + padding-bottom: 2px; + } } diff --git a/src/index.html b/src/index.html index 1c99649d8b7..84e7787b83d 100644 --- a/src/index.html +++ b/src/index.html @@ -24,12 +24,17 @@ -
- - {{alert.title}}
{{$index + 1}} alert(s)
-
+
+
+ +
{{alert.title}}
+
+
+
-
+
- + diff --git a/src/test/specs/kbn-format-specs.js b/src/test/specs/kbn-format-specs.js index a44475556b0..85807c277ec 100644 --- a/src/test/specs/kbn-format-specs.js +++ b/src/test/specs/kbn-format-specs.js @@ -15,6 +15,12 @@ define([ expect(str).to.be('1.02 hour'); }); + it('should not downscale when value is zero', function() { + var str = kbn.msFormat(0, 2); + expect(str).to.be('0.00 ms'); + }); + + it('should translate 365445 as 6.09 min', function() { var str = kbn.msFormat(365445, 2); expect(str).to.be('6.09 min');