From 19d1cc315e7827406c75f3b7a9ce996fd5bf7870 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 3 Feb 2016 19:54:44 +0300 Subject: [PATCH 1/3] Trigger panel: able to set custom last change time format (based on moment.js). --- plugins/panel-triggers/editor.html | 34 +++++++++++++++++++++++++++++- plugins/panel-triggers/module.js | 12 ++++++++--- 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/plugins/panel-triggers/editor.html b/plugins/panel-triggers/editor.html index bed41eb..d92105c 100644 --- a/plugins/panel-triggers/editor.html +++ b/plugins/panel-triggers/editor.html @@ -61,7 +61,7 @@ placeholder="trigger name" class="input-large tight-form-input last" ng-style="panel.triggers.trigger.style" - empty-to-null"> + empty-to-null>
@@ -192,6 +192,38 @@
+
+ +
+
diff --git a/plugins/panel-triggers/module.js b/plugins/panel-triggers/module.js index 6bf8cff..8f780bd 100644 --- a/plugins/panel-triggers/module.js +++ b/plugins/panel-triggers/module.js @@ -81,7 +81,7 @@ function (angular, app, _, $, moment, config, PanelMeta) { sortTriggersBy: { text: 'last change', value: 'lastchange' }, showEvents: { text: 'Problem events', value: '1' }, triggerSeverity: grafanaDefaultSeverity, - okEventColor: '#890F02' + okEventColor: '#890F02', }; _.defaults($scope.panel, panelDefaults); @@ -97,7 +97,8 @@ function (angular, app, _, $, moment, config, PanelMeta) { var scopeDefaults = { metric: {}, inputStyles: {}, - oldTarget: _.cloneDeep($scope.panel.triggers) + oldTarget: _.cloneDeep($scope.panel.triggers), + defaultTimeFormat: "DD MMM YYYY HH:mm:ss" }; _.defaults($scope, scopeDefaults); @@ -141,7 +142,12 @@ function (angular, app, _, $, moment, config, PanelMeta) { // Format last change and age trigger.lastchangeUnix = Number(trigger.lastchange); var timestamp = moment.unix(trigger.lastchangeUnix); - triggerObj.lastchange = timestamp.format("DD MMM YYYY, HH:mm:ss"); + if ($scope.panel.customLastChangeFormat) { + // User defined format + triggerObj.lastchange = timestamp.format($scope.panel.lastChangeFormat); + } else { + triggerObj.lastchange = timestamp.format($scope.defaultTimeFormat); + } triggerObj.age = timestamp.fromNow(true); // Set color From a23dbe6aa71b3918d65e3cdc97ecd42683471e27 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 3 Feb 2016 20:47:24 +0300 Subject: [PATCH 2/3] Trigger panel: color picker changed to spectrum picker. --- plugins/panel-triggers/editor.html | 46 ++++++++---------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/plugins/panel-triggers/editor.html b/plugins/panel-triggers/editor.html index d92105c..a4986f0 100644 --- a/plugins/panel-triggers/editor.html +++ b/plugins/panel-triggers/editor.html @@ -229,35 +229,23 @@
Customize triggers severity and colors
+ ng-repeat="trigger in panel.triggerSeverity">
    -
  • +
  • {{ trigger.priority }}
  • -
  • -   -   - +
  • +
  • @@ -272,25 +260,15 @@
-
+
    -
  • +
  • OK event color
  • -
  • -   -   - +
  • +
From 80022e85988e5a5befd7c8fd6bf9a6328e248eb3 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 3 Feb 2016 21:04:10 +0300 Subject: [PATCH 3/3] Trigger panel: added custom trigger status field (OK or Problem). --- plugins/panel-triggers/editor.html | 11 ++++++++++- plugins/panel-triggers/module.html | 8 ++++++++ plugins/panel-triggers/module.js | 6 ++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/plugins/panel-triggers/editor.html b/plugins/panel-triggers/editor.html index a4986f0..1bb0e3b 100644 --- a/plugins/panel-triggers/editor.html +++ b/plugins/panel-triggers/editor.html @@ -130,7 +130,7 @@ Show events
  • - + +
  • + +
    Status
    +
    Severity
    @@ -35,6 +38,11 @@ {{trigger.host}}
  • + +
    + {{triggerStatusMap[trigger.value]}} +
    +
    {{trigger.severity}} diff --git a/plugins/panel-triggers/module.js b/plugins/panel-triggers/module.js index 8f780bd..197e865 100644 --- a/plugins/panel-triggers/module.js +++ b/plugins/panel-triggers/module.js @@ -54,6 +54,11 @@ function (angular, app, _, $, moment, config, PanelMeta) { { text: 'Problem events', value: 1 } ]; + $scope.triggerStatusMap = { + '0': 'OK', + '1': 'Problem' + }; + var grafanaDefaultSeverity = [ { priority: 0, severity: 'Not classified', color: '#B7DBAB', show: true }, { priority: 1, severity: 'Information', color: '#82B5D8', show: true }, @@ -72,6 +77,7 @@ function (angular, app, _, $, moment, config, PanelMeta) { trigger: {filter: ""} }, hostField: true, + statusField: false, severityField: false, lastChangeField: true, ageField: true,