mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
playlist: fixes #6727. Remember Kiosk mode
This commit is contained in:
parent
91ad260517
commit
3ac306a72e
@ -3,6 +3,7 @@
|
||||
import angular from 'angular';
|
||||
import coreModule from '../../core/core_module';
|
||||
import kbn from 'app/core/utils/kbn';
|
||||
import appEvents from 'app/core/app_events';
|
||||
|
||||
class PlaylistSrv {
|
||||
private cancelPromise: any;
|
||||
@ -14,7 +15,13 @@ class PlaylistSrv {
|
||||
public isPlaying: boolean;
|
||||
|
||||
/** @ngInject */
|
||||
constructor(private $rootScope: any, private $location: any, private $timeout: any, private backendSrv: any) { }
|
||||
constructor(
|
||||
private $rootScope: any,
|
||||
private $location: any,
|
||||
private $timeout: any,
|
||||
private backendSrv: any,
|
||||
private $routeParams: any
|
||||
) { }
|
||||
|
||||
next() {
|
||||
this.$timeout.cancel(this.cancelPromise);
|
||||
@ -22,14 +29,32 @@ class PlaylistSrv {
|
||||
var playedAllDashboards = this.index > this.dashboards.length - 1;
|
||||
|
||||
if (playedAllDashboards) {
|
||||
window.location.href = this.startUrl;
|
||||
} else {
|
||||
var dash = this.dashboards[this.index];
|
||||
this.$location.url('dashboard/' + dash.uri);
|
||||
|
||||
this.index++;
|
||||
this.cancelPromise = this.$timeout(() => this.next(), this.interval);
|
||||
window.location.href = this.getUrlWithKioskMode();
|
||||
return;
|
||||
}
|
||||
|
||||
var dash = this.dashboards[this.index];
|
||||
this.$location.url('dashboard/' + dash.uri);
|
||||
|
||||
this.index++;
|
||||
this.cancelPromise = this.$timeout(() => this.next(), this.interval);
|
||||
}
|
||||
|
||||
getUrlWithKioskMode() {
|
||||
const inKioskMode = document.body.classList.contains('page-kiosk-mode');
|
||||
|
||||
// check if should add kiosk query param
|
||||
if (inKioskMode && this.startUrl.indexOf('kiosk') === -1) {
|
||||
return this.startUrl + '?kiosk=true';
|
||||
}
|
||||
|
||||
// check if should remove kiosk query param
|
||||
if (!inKioskMode) {
|
||||
return this.startUrl.split("?")[0];
|
||||
}
|
||||
|
||||
// already has kiosk query param, just return startUrl
|
||||
return this.startUrl;
|
||||
}
|
||||
|
||||
prev() {
|
||||
@ -45,6 +70,10 @@ class PlaylistSrv {
|
||||
this.playlistId = playlistId;
|
||||
this.isPlaying = true;
|
||||
|
||||
if (this.$routeParams.kiosk) {
|
||||
appEvents.emit('toggle-kiosk-mode');
|
||||
}
|
||||
|
||||
this.backendSrv.get(`/api/playlists/${playlistId}`).then(playlist => {
|
||||
this.backendSrv.get(`/api/playlists/${playlistId}/dashboards`).then(dashboards => {
|
||||
this.dashboards = dashboards;
|
||||
|
Loading…
Reference in New Issue
Block a user