mirror of https://github.com/grafana/grafana.git
tech(playlist): refactor playlistSrv to typescript
This commit is contained in:
parent
899a44a735
commit
bc21862661
|
|
@ -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;
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
|
@ -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)
|
||||
Loading…
Reference in New Issue