diff --git a/CHANGELOG.md b/CHANGELOG.md index 8dd273541f7..257564d41a1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# 1.7.0 (unreleased) + +**Fixes** +- [Issue #655](https://github.com/grafana/grafana/issues/655). General: Auto refresh not initiated / started after dashboard loading +- [Issue #652](https://github.com/grafana/grafana/issues/652). Timepicker: Entering custom date range impossible when refresh is low (now is constantly reset) +- [Issue #450](https://github.com/grafana/grafana/issues/450). Graph: Tooltip does not disappear sometimes and would get stuck + # 1.7.0-rc1 (2014-08-05) **New features or improvements** diff --git a/src/app/components/extend-jquery.js b/src/app/components/extend-jquery.js index 00fe4666d6f..ce5c8afb1a9 100644 --- a/src/app/components/extend-jquery.js +++ b/src/app/components/extend-jquery.js @@ -19,9 +19,8 @@ function ($) { $tooltip.addClass('grafana-tooltip'); - if (!$.contains(document.body, $tooltip[0])) { - $tooltip.appendTo(document.body); - } + $("#tooltip").remove(); + $tooltip.appendTo(document.body); width = $tooltip.outerWidth(true); height = $tooltip.outerHeight(true); diff --git a/src/app/controllers/dash.js b/src/app/controllers/dash.js index 44e5d47c339..a39cc8b7bb4 100644 --- a/src/app/controllers/dash.js +++ b/src/app/controllers/dash.js @@ -42,6 +42,11 @@ function (angular, $, config, _) { window.document.title = 'Grafana - ' + $scope.dashboard.title; + // start auto refresh + if($scope.dashboard.refresh) { + $scope.dashboard.set_interval($scope.dashboard.refresh); + } + dashboardKeybindings.shortcuts($scope); $scope.emitAppEvent("dashboard-loaded", $scope.dashboard); diff --git a/src/app/directives/grafanaGraph.js b/src/app/directives/grafanaGraph.js index 5744f3334c0..9ffa55d2254 100755 --- a/src/app/directives/grafanaGraph.js +++ b/src/app/directives/grafanaGraph.js @@ -327,7 +327,7 @@ function (angular, $, kbn, moment, _) { return "%H:%M"; } - var $tooltip = $('
'); + var $tooltip = $('
'); elem.bind("plothover", function (event, pos, item) { var group, value, timestamp, seriesInfo, format; @@ -357,11 +357,8 @@ function (angular, $, kbn, moment, _) { timestamp = dashboard.timezone === 'browser' ? moment(item.datapoint[0]).format('YYYY-MM-DD HH:mm:ss') : moment.utc(item.datapoint[0]).format('YYYY-MM-DD HH:mm:ss'); - $tooltip - .html( - group + value + " @ " + timestamp - ) - .place_tt(pos.pageX, pos.pageY); + + $tooltip.html(group + value + " @ " + timestamp).place_tt(pos.pageX, pos.pageY); } else { $tooltip.detach(); } diff --git a/src/app/panels/timepicker/custom.html b/src/app/panels/timepicker/custom.html index 474d1ce8f8e..0784cf987e0 100644 --- a/src/app/panels/timepicker/custom.html +++ b/src/app/panels/timepicker/custom.html @@ -49,17 +49,17 @@
- +
-
+
@ : : .
-   Right Now +   Right Now
diff --git a/src/app/panels/timepicker/module.js b/src/app/panels/timepicker/module.js index 614c3000690..da9f91a0e66 100644 --- a/src/app/panels/timepicker/module.js +++ b/src/app/panels/timepicker/module.js @@ -78,6 +78,7 @@ function (angular, app, _, moment, kbn) { // Assume the form is valid since we're setting it to something valid $scope.input.$setValidity("dummy", true); $scope.temptime = cloneTime($scope.time); + $scope.tempnow = $scope.panel.now; // Date picker needs the date to be at the start of the day $scope.temptime.from.date.setHours(1,0,0,0); @@ -129,7 +130,7 @@ function (angular, app, _, moment, kbn) { // Create filter object var _filter = _.clone(time); - if($scope.panel.now) { + if($scope.tempnow) { _filter.to = "now"; } diff --git a/src/app/services/dashboard/dashboardKeyBindings.js b/src/app/services/dashboard/dashboardKeyBindings.js index 8db1723671a..304e10ea5d3 100644 --- a/src/app/services/dashboard/dashboardKeyBindings.js +++ b/src/app/services/dashboard/dashboardKeyBindings.js @@ -61,6 +61,12 @@ function(angular, $) { if (popups.length > 0) { return; } + // close modals + var modalData = $(".modal").data(); + if (modalData && modalData.$scope && modalData.$scope.dismiss) { + modalData.$scope.dismiss(); + } + scope.emitAppEvent('panel-fullscreen-exit'); }, { inputDisabled: true }); }; diff --git a/src/app/services/dashboard/dashboardModel.js b/src/app/services/dashboard/dashboardModel.js index ecb5af07494..13642984526 100644 --- a/src/app/services/dashboard/dashboardModel.js +++ b/src/app/services/dashboard/dashboardModel.js @@ -28,6 +28,7 @@ function (angular, $, kbn, _) { this.nav = data.nav || []; this.time = data.time || { from: 'now-6h', to: 'now' }; this.templating = data.templating || { list: [] }; + this.refresh = data.refresh; if (this.nav.length === 0) { this.nav.push({ type: 'timepicker' }); diff --git a/src/vendor/jquery/jquery.flot.events.js b/src/vendor/jquery/jquery.flot.events.js index c9ed3359dc0..4924b16d03b 100644 --- a/src/vendor/jquery/jquery.flot.events.js +++ b/src/vendor/jquery/jquery.flot.events.js @@ -611,4 +611,4 @@ if (ao.min < bo.min) return -1; return 0; }; -})(jQuery); \ No newline at end of file +})(jQuery);