Trigger panel: able to set custom last change time format (based

on moment.js).
This commit is contained in:
Alexander Zobnin
2016-02-03 19:54:44 +03:00
parent 4c73f74159
commit 19d1cc315e
2 changed files with 42 additions and 4 deletions

View File

@@ -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>
</li>
</ul>
<div class="clearfix"></div>
@@ -192,6 +192,38 @@
</ul>
<div class="clearfix"></div>
</div>
<div class="tight-form">
<ul class="tight-form-list">
<li class="tight-form-item">
<strong>Custom Last change format</strong>
<label class="checkbox-label" for="panel.customLastChangeFormat">&nbsp;</label>
<input class="cr1"
id="panel.customLastChangeFormat"
type="checkbox"
ng-change="get_data()"
ng-model="panel.customLastChangeFormat"
ng-checked="panel.customLastChangeFormat">
<label for="panel.customLastChangeFormat" class="cr1"></label>
</li>
<li ng-if="panel.customLastChangeFormat">
<input type="text"
ng-model="panel.lastChangeFormat"
ng-blur="get_data()"
placeholder="dddd, MMMM Do YYYY, h:mm:ss a"
class="tight-form-input"
style="width: 300px"
empty-to-null>
</li>
<li class="tight-form-item last" ng-if="panel.customLastChangeFormat">
<a href="http://momentjs.com/docs/#/displaying/format/" target="_blank">
<i class="fa fa-question-circle"
bs-tooltip="'See moment.js dosc for time format.'">
</i>
</a>
</li>
</ul>
<div class="clearfix"></div>
</div>
</div>
</div>
<div class="section">

View File

@@ -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