timeSeries.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. define([
  2. 'underscore'
  3. ],
  4. function (_) {
  5. 'use strict';
  6. var ts = {};
  7. ts.ZeroFilled = function (opts) {
  8. this.datapoints = opts.datapoints;
  9. this.info = opts.info;
  10. this.label = opts.info.alias;
  11. this.color = opts.info.color;
  12. this.yaxis = opts.info.yaxis;
  13. };
  14. ts.ZeroFilled.prototype.getFlotPairs = function (fillStyle) {
  15. var result = [];
  16. this.info.total = 0;
  17. this.info.max = null;
  18. this.info.min = 212312321312;
  19. _.each(this.datapoints, function(valueArray) {
  20. var currentTime = valueArray[1];
  21. var currentValue = valueArray[0];
  22. if (currentValue === null) {
  23. if (fillStyle === 'connected') {
  24. return;
  25. }
  26. if (fillStyle === 'null as zero') {
  27. currentValue = 0;
  28. }
  29. }
  30. if (_.isNumber(currentValue)) {
  31. this.info.total += currentValue;
  32. }
  33. if (currentValue > this.info.max) {
  34. this.info.max = currentValue;
  35. }
  36. if (currentValue < this.info.min) {
  37. this.info.min = currentValue;
  38. }
  39. result.push([currentTime * 1000, currentValue]);
  40. }, this);
  41. if (result.length) {
  42. this.info.avg = (this.info.total / result.length).toFixed(2);
  43. this.info.current = result[result.length-1][1];
  44. }
  45. return result;
  46. };
  47. return ts;
  48. });