Просмотр исходного кода

tech(playlist): refactor playlistSrv to typescript

bergquist 10 лет назад
Родитель
Сommit
bc21862661
2 измененных файлов с 58 добавлено и 56 удалено
  1. 0 56
      public/app/features/playlist/playlistSrv.js
  2. 58 0
      public/app/features/playlist/playlistSrv.ts

+ 0 - 56
public/app/features/playlist/playlistSrv.js

@@ -1,56 +0,0 @@
-define([
-  'angular',
-  'lodash',
-  'app/core/utils/kbn',
-],
-function (angular, _, kbn) {
-  'use strict';
-
-  var module = angular.module('grafana.services');
-
-  module.service('playlistSrv', function($location, $rootScope, $timeout) {
-    var self = this;
-
-    this.next = function() {
-      $timeout.cancel(self.cancelPromise);
-
-      angular.element(window).unbind('resize');
-      var dash = self.dashboards[self.index % self.dashboards.length];
-
-      $location.url('dashboard/' + dash.uri);
-
-      self.index++;
-      self.cancelPromise = $timeout(self.next, self.interval);
-    };
-
-    this.prev = function() {
-      self.index = Math.max(self.index - 2, 0);
-      self.next();
-    };
-
-    this.start = function(dashboards, interval) {
-      self.stop();
-
-      self.index = 0;
-      self.interval = kbn.interval_to_ms(interval);
-
-      self.dashboards = dashboards;
-      $rootScope.playlistSrv = this;
-
-      self.cancelPromise = $timeout(self.next, self.interval);
-      self.next();
-    };
-
-    this.stop = function() {
-      self.index = 0;
-
-      if (self.cancelPromise) {
-        $timeout.cancel(self.cancelPromise);
-      }
-
-      $rootScope.playlistSrv = null;
-    };
-
-  });
-
-});

+ 58 - 0
public/app/features/playlist/playlistSrv.ts

@@ -0,0 +1,58 @@
+///<reference path="../../headers/common.d.ts" />
+
+import angular from 'angular';
+import coreModule from '../../core/core_module';
+import kbn from 'app/core/utils/kbn';
+
+class PlaylistSrv {
+  private cancelPromise: any
+  private dashboards: any
+  private index: number
+  private interval: any
+
+  /** @ngInject */
+  constructor(private $rootScope:any, private $location:any, private $timeout:any) {
+  }
+
+  next() {
+    this.$timeout.cancel(this.cancelPromise);
+
+    angular.element(window).unbind('resize');
+    var dash = this.dashboards[this.index % this.dashboards.length];
+
+    this.$location.url('dashboard/' + dash.uri);
+
+    this.index++;
+    this.cancelPromise = this.$timeout(() => { this.next(); }, this.interval);
+  }
+
+  prevfunction() {
+    this.index = Math.max(this.index - 2, 0);
+    this.next();
+  }
+
+  start(dashboards, interval) {
+    this.stop();
+
+    this.index = 0;
+    this.interval = kbn.interval_to_ms(interval);
+
+    this.dashboards = dashboards;
+    this.$rootScope.playlistSrv = this;
+
+    this.cancelPromise = this.$timeout(() => { this.next(); }, this.interval);
+    this.next();
+  }
+
+  stop() {
+    this.index = 0;
+
+    if (this.cancelPromise) {
+        this.$timeout.cancel(this.cancelPromise);
+    }
+
+    this.$rootScope.playlistSrv = null;
+  }
+}
+
+coreModule.service('playlistSrv', PlaylistSrv)