index_pattern.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. define([
  2. 'lodash',
  3. 'moment',
  4. ],
  5. function (_, moment) {
  6. 'use strict';
  7. function IndexPattern(pattern, interval) {
  8. this.pattern = pattern;
  9. this.interval = interval;
  10. }
  11. IndexPattern.intervalMap = {
  12. "Hourly": { startOf: 'hour', amount: 'hours'},
  13. "Daily": { startOf: 'day', amount: 'days'},
  14. "Weekly": { startOf: 'isoWeek', amount: 'weeks'},
  15. "Monthly": { startOf: 'month', amount: 'months'},
  16. "Yearly": { startOf: 'year', amount: 'years'},
  17. };
  18. IndexPattern.prototype.getIndexForToday = function() {
  19. if (this.interval) {
  20. return moment.utc().format(this.pattern);
  21. } else {
  22. return this.pattern;
  23. }
  24. };
  25. IndexPattern.prototype.getIndexList = function(from, to) {
  26. if (!this.interval) {
  27. return this.pattern;
  28. }
  29. var intervalInfo = IndexPattern.intervalMap[this.interval];
  30. var start = moment(from).utc().startOf(intervalInfo.startOf);
  31. var end = moment(to).utc().startOf(intervalInfo.startOf).valueOf();
  32. var indexList = [];
  33. while (start <= end) {
  34. indexList.push(start.format(this.pattern));
  35. start.add(1, intervalInfo.amount);
  36. }
  37. return indexList;
  38. };
  39. return IndexPattern;
  40. });