فهرست منبع

Added relative time func and code refactoring

ubhatnagar 10 سال پیش
والد
کامیت
03e2f25adb
2فایلهای تغییر یافته به همراه31 افزوده شده و 5 حذف شده
  1. 18 3
      public/app/features/dashboard/dashboardSrv.js
  2. 13 2
      public/app/panels/graph/graph.tooltip.js

+ 18 - 3
public/app/features/dashboard/dashboardSrv.js

@@ -216,9 +216,8 @@ function (angular, $, kbn, _, moment) {
     };
     };
 
 
     p.formatDate = function(date, format) {
     p.formatDate = function(date, format) {
-      if (!moment.isMoment(date)) {
-        date = moment(date);
-      }
+
+      date = this.checkDate(date);
 
 
       format = format || 'YYYY-MM-DD HH:mm:ss';
       format = format || 'YYYY-MM-DD HH:mm:ss';
 
 
@@ -227,6 +226,22 @@ function (angular, $, kbn, _, moment) {
         moment.utc(date).format(format);
         moment.utc(date).format(format);
     };
     };
 
 
+    p.formatRelativeDate = function(date) {
+
+      date = this.checkDate(date);
+
+      return this.timezone === 'browser' ?
+        moment(date).fromNow() :
+        moment.utc(date).fromNow();
+    };
+
+    p.checkDate = function(date) {
+      if (!moment.isMoment(date)) {
+        date = moment(date);
+      }
+      return date;
+    };
+
     p._updateSchema = function(old) {
     p._updateSchema = function(old) {
       var i, j, k;
       var i, j, k;
       var oldVersion = this.schemaVersion;
       var oldVersion = this.schemaVersion;

+ 13 - 2
public/app/panels/graph/graph.tooltip.js

@@ -117,7 +117,11 @@ function ($) {
         var seriesHoverInfo = self.getMultiSeriesPlotHoverInfo(plotData, pos);
         var seriesHoverInfo = self.getMultiSeriesPlotHoverInfo(plotData, pos);
 
 
         seriesHtml = '';
         seriesHtml = '';
-        timestamp = dashboard.formatDate(seriesHoverInfo.time,scope.panel.tooltip.relativeTimestamp);
+        if(scope.panel.tooltip.relativeTimestamp) {
+          timestamp = dashboard.formatRelativeDate(seriesHoverInfo.time);
+        } else {
+          timestamp = dashboard.formatDate(seriesHoverInfo.time);
+        }
 
 
         for (i = 0; i < seriesHoverInfo.length; i++) {
         for (i = 0; i < seriesHoverInfo.length; i++) {
           hoverInfo = seriesHoverInfo[i];
           hoverInfo = seriesHoverInfo[i];
@@ -127,6 +131,7 @@ function ($) {
           }
           }
 
 
           series = seriesList[i];
           series = seriesList[i];
+
           value = series.formatValue(hoverInfo.value);
           value = series.formatValue(hoverInfo.value);
 
 
           seriesHtml += '<div class="graph-tooltip-list-item"><div class="graph-tooltip-series-name">';
           seriesHtml += '<div class="graph-tooltip-list-item"><div class="graph-tooltip-series-name">';
@@ -151,7 +156,13 @@ function ($) {
         }
         }
 
 
         value = series.formatValue(value);
         value = series.formatValue(value);
-        timestamp = dashboard.formatDate(item.datapoint[0]);
+
+        if(scope.panel.tooltip.relativeTimestamp) {
+          timestamp = dashboard.formatRelativeDate(item.datapoint[0]);
+        } else {
+          timestamp = dashboard.formatDate(item.datapoint[0]);
+        }
+
         group += '<div class="graph-tooltip-value">' + value + '</div>';
         group += '<div class="graph-tooltip-value">' + value + '</div>';
 
 
         self.showTooltip(timestamp, group, pos);
         self.showTooltip(timestamp, group, pos);