|
@@ -3,6 +3,7 @@
|
|
|
import angular from 'angular';
|
|
import angular from 'angular';
|
|
|
import coreModule from '../../core/core_module';
|
|
import coreModule from '../../core/core_module';
|
|
|
import kbn from 'app/core/utils/kbn';
|
|
import kbn from 'app/core/utils/kbn';
|
|
|
|
|
+import appEvents from 'app/core/app_events';
|
|
|
|
|
|
|
|
class PlaylistSrv {
|
|
class PlaylistSrv {
|
|
|
private cancelPromise: any;
|
|
private cancelPromise: any;
|
|
@@ -14,7 +15,13 @@ class PlaylistSrv {
|
|
|
public isPlaying: boolean;
|
|
public isPlaying: boolean;
|
|
|
|
|
|
|
|
/** @ngInject */
|
|
/** @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() {
|
|
next() {
|
|
|
this.$timeout.cancel(this.cancelPromise);
|
|
this.$timeout.cancel(this.cancelPromise);
|
|
@@ -22,14 +29,32 @@ class PlaylistSrv {
|
|
|
var playedAllDashboards = this.index > this.dashboards.length - 1;
|
|
var playedAllDashboards = this.index > this.dashboards.length - 1;
|
|
|
|
|
|
|
|
if (playedAllDashboards) {
|
|
if (playedAllDashboards) {
|
|
|
- window.location.href = this.startUrl;
|
|
|
|
|
- } else {
|
|
|
|
|
- var dash = this.dashboards[this.index];
|
|
|
|
|
- this.$location.url('dashboard/' + dash.uri);
|
|
|
|
|
|
|
+ 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');
|
|
|
|
|
|
|
|
- this.index++;
|
|
|
|
|
- this.cancelPromise = this.$timeout(() => this.next(), this.interval);
|
|
|
|
|
|
|
+ // 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() {
|
|
prev() {
|
|
@@ -45,6 +70,10 @@ class PlaylistSrv {
|
|
|
this.playlistId = playlistId;
|
|
this.playlistId = playlistId;
|
|
|
this.isPlaying = true;
|
|
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}`).then(playlist => {
|
|
|
this.backendSrv.get(`/api/playlists/${playlistId}/dashboards`).then(dashboards => {
|
|
this.backendSrv.get(`/api/playlists/${playlistId}/dashboards`).then(dashboards => {
|
|
|
this.dashboards = dashboards;
|
|
this.dashboards = dashboards;
|