Explorar o código

Merge branch 'master' into valuepanel

Torkel Ödegaard %!s(int64=11) %!d(string=hai) anos
pai
achega
69fdfd5cb3

+ 2 - 0
CHANGELOG.md

@@ -10,9 +10,11 @@
 
 **Misc**
 - [Issue #938](https://github.com/grafana/grafana/issues/938). Panel: Plugin panels now reside outside of app/panels directory
+- [Issue #952](https://github.com/grafana/grafana/issues/952). Help: Shortcut "?" to open help modal with list of all shortcuts
 
 **Fixes**
 - [Issue #925](https://github.com/grafana/grafana/issues/925). Graph: bar width calculation fix for some edge cases (bars would render on top of each other)
+- [Issue #505](https://github.com/grafana/grafana/issues/505). Graph: fix for second y axis tick unit labels wrapping on the next line
 
 =======
 # 1.8.1 (2014-09-30)

+ 0 - 1
src/app/components/settings.js

@@ -17,7 +17,6 @@ function (_, crypto) {
       window_title_prefix           : 'Grafana - ',
       panels                        : {
         'graph': { path: 'panels/graph' },
-        'stats': { path: 'panels/stats' },
         'text': { path: 'panels/text' }
       },
       plugins                       : {},

+ 1 - 1
src/app/directives/grafanaGraph.tooltip.js

@@ -153,7 +153,7 @@ function ($) {
       }
       // single series tooltip
       else if (item) {
-        series = item.series;
+        series = seriesList[item.seriesIndex];
         group = '<i class="icon-minus" style="color:' + item.series.color +';"></i> ' + series.label;
 
         if (scope.panel.stack && scope.panel.tooltip.value_type === 'individual') {

+ 46 - 0
src/app/partials/help_modal.html

@@ -0,0 +1,46 @@
+<div class="modal-body">
+	<div class="dashboard-editor-header">
+		<div class="dashboard-editor-title">
+			<i class="icon icon-keyboard"></i>
+			Keyboard shutcuts
+		</div>
+	</div>
+
+	<div class="dashboard-editor-body">
+		<table class="shortcut-table">
+			<tr>
+				<th></th>
+				<th style="text-align: left;">Dashboard wide shortcuts</th>
+			</tr>
+			<tr>
+				<td style="text-align: right;"><span class="label label-info">ESC</span></td>
+				<td>Exit fullscreen edit/view mode, close search or any editor view</td>
+			</tr>
+			<tr>
+				<td><span class="label label-info">CTRL+F</span></td>
+				<td>Open dashboard search view (also contains import/playlist controls)</td>
+			</tr>
+			<tr>
+				<td><span class="label label-info">CTRL+S</span></td>
+				<td>Save dashboard</td>
+			</tr>
+			<tr>
+				<td><span class="label label-info">CTRL+H</span></td>
+				<td>Hide row controls</td>
+			</tr>
+			<tr>
+				<td><span class="label label-info">CTRL+Z</span></td>
+				<td>Zoom out</td>
+			</tr>
+			<tr>
+				<td><span class="label label-info">CTRL+R</span></td>
+				<td>Refresh (Fetches new data and rerenders panels)</td>
+			</tr>
+		</table>
+	</div>
+
+</div>
+
+<div class="modal-footer">
+	<button type="button" class="btn btn-info" ng-click="dismiss()">Close</button>
+</div>

+ 19 - 1
src/app/services/dashboard/dashboardKeyBindings.js

@@ -8,7 +8,7 @@ function(angular, $) {
 
   var module = angular.module('grafana.services');
 
-  module.service('dashboardKeybindings', function($rootScope, keyboardManager) {
+  module.service('dashboardKeybindings', function($rootScope, keyboardManager, $modal, $q) {
 
     this.shortcuts = function(scope) {
 
@@ -22,6 +22,24 @@ function(angular, $) {
         keyboardManager.unbind('esc');
       });
 
+      var helpModalScope = null;
+      keyboardManager.bind('shift+¿', function() {
+        if (helpModalScope) { return; }
+
+        helpModalScope = $rootScope.$new();
+        var helpModal = $modal({
+          template: './app/partials/help_modal.html',
+          persist: false,
+          show: false,
+          scope: helpModalScope,
+          keyboard: false
+        });
+
+        helpModalScope.$on('$destroy', function() { helpModalScope = null; });
+        $q.when(helpModal).then(function(modalEl) { modalEl.modal('show'); });
+
+      }, { inputDisabled: true });
+
       keyboardManager.bind('ctrl+f', function() {
         scope.appEvent('show-dash-editor', { src: 'app/partials/search.html' });
       }, { inputDisabled: true });

+ 1 - 1
src/app/services/keyboardManager.js

@@ -277,4 +277,4 @@ function (angular) {
     return keyboardManagerService;
   }]);
 
-});
+});

+ 7 - 0
src/css/less/grafana.less

@@ -136,6 +136,7 @@
   .main-view-container {
     height: 0;
     overflow: hidden;
+    padding: 0;
   }
 }
 
@@ -552,3 +553,9 @@ select.grafana-target-segment-input {
 .grafana-tip {
   padding-left: 5px;
 }
+
+.shortcut-table {
+  td { padding: 3px; }
+  th:last-child { text-align: left; }
+  td:first-child { text-align: right; }
+}

+ 2 - 1
src/vendor/jquery/jquery.flot.js

@@ -1416,7 +1416,8 @@ Licensed under the MIT license.
 
                 var info = surface.getTextInfo(layer, t.label, font, null, maxWidth);
 
-                labelWidth = Math.max(labelWidth, info.width);
+                /// Grafana fix, add +1 to label width
+                labelWidth = Math.max(labelWidth, info.width + 1);
                 labelHeight = Math.max(labelHeight, info.height);
             }