Merge pull request #4545 from tsiegleauq/projector-offline-indicator
Add offline indicator to projector
This commit is contained in:
commit
193514ec9a
@ -1,4 +1,5 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
|
import { WebsocketService } from './websocket.service';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This service handles everything connected with being offline.
|
* This service handles everything connected with being offline.
|
||||||
@ -18,7 +19,16 @@ export class OfflineService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public constructor() {}
|
public constructor(private socketService: WebsocketService) {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Determines of you are either in Offline mode or not connected via websocket
|
||||||
|
*
|
||||||
|
* @returns whether the client is offline or not connected
|
||||||
|
*/
|
||||||
|
public isOffline(): boolean {
|
||||||
|
return this.offline || !this.socketService.isConnected;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the offline flag. Restores the DataStoreService to the last known configuration.
|
* Sets the offline flag. Restores the DataStoreService to the last known configuration.
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
<div id="container" [osResized]="resizeSubject" [ngStyle]="containerStyle" #container>
|
<div id="container" [osResized]="resizeSubject" [ngStyle]="containerStyle" #container>
|
||||||
<div id="projector" [ngStyle]="projectorStyle">
|
<div id="projector" [ngStyle]="projectorStyle">
|
||||||
|
<div id="offline-indicator" *ngIf="isOffline()">
|
||||||
|
<mat-icon>
|
||||||
|
fiber_manual_record
|
||||||
|
</mat-icon>
|
||||||
|
</div>
|
||||||
<div id="header" [ngStyle]="headerFooterStyle" *ngIf="projector && projector.show_header_footer">
|
<div id="header" [ngStyle]="headerFooterStyle" *ngIf="projector && projector.show_header_footer">
|
||||||
<!-- projector logo -->
|
<!-- projector logo -->
|
||||||
<img *ngIf="enableLogo && projectorLogo" src="{{ projectorLogo }}" class="projector-logo-main" />
|
<img *ngIf="enableLogo && projectorLogo" src="{{ projectorLogo }}" class="projector-logo-main" />
|
||||||
@ -16,7 +21,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngFor="let slide of slides">
|
<div *ngFor="let slide of slides">
|
||||||
<os-slide-container [slideData]="slide" [scroll]="scroll" [scale]="scale" [projector]="projector"></os-slide-container>
|
<os-slide-container
|
||||||
|
[slideData]="slide"
|
||||||
|
[scroll]="scroll"
|
||||||
|
[scale]="scale"
|
||||||
|
[projector]="projector"
|
||||||
|
></os-slide-container>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="footer" [ngStyle]="headerFooterStyle" *ngIf="projector && projector.show_header_footer">
|
<div id="footer" [ngStyle]="headerFooterStyle" *ngIf="projector && projector.show_header_footer">
|
||||||
|
@ -8,6 +8,17 @@
|
|||||||
background-color: lightgoldenrodyellow;
|
background-color: lightgoldenrodyellow;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|
||||||
|
#offline-indicator {
|
||||||
|
top: 5;
|
||||||
|
right: 0;
|
||||||
|
color: red;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 100;
|
||||||
|
.mat-icon {
|
||||||
|
font-size: 14pt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#projector {
|
#projector {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
@ -8,6 +8,7 @@ import { BaseComponent } from 'app/base.component';
|
|||||||
import { ConfigService } from 'app/core/ui-services/config.service';
|
import { ConfigService } from 'app/core/ui-services/config.service';
|
||||||
import { ViewProjector } from 'app/site/projector/models/view-projector';
|
import { ViewProjector } from 'app/site/projector/models/view-projector';
|
||||||
import { Size } from 'app/site/projector/size';
|
import { Size } from 'app/site/projector/size';
|
||||||
|
import { OfflineService } from 'app/core/core-services/offline.service';
|
||||||
import { SlideData, ProjectorDataService } from 'app/core/core-services/projector-data.service';
|
import { SlideData, ProjectorDataService } from 'app/core/core-services/projector-data.service';
|
||||||
import { ProjectorRepositoryService } from 'app/core/repositories/projector/projector-repository.service';
|
import { ProjectorRepositoryService } from 'app/core/repositories/projector/projector-repository.service';
|
||||||
|
|
||||||
@ -160,7 +161,8 @@ export class ProjectorComponent extends BaseComponent implements OnDestroy {
|
|||||||
translate: TranslateService,
|
translate: TranslateService,
|
||||||
private projectorDataService: ProjectorDataService,
|
private projectorDataService: ProjectorDataService,
|
||||||
private projectorRepository: ProjectorRepositoryService,
|
private projectorRepository: ProjectorRepositoryService,
|
||||||
private configService: ConfigService
|
private configService: ConfigService,
|
||||||
|
private offlineService: OfflineService
|
||||||
) {
|
) {
|
||||||
super(titleService, translate);
|
super(titleService, translate);
|
||||||
// projector logo / background-image
|
// projector logo / background-image
|
||||||
@ -192,6 +194,15 @@ export class ProjectorComponent extends BaseComponent implements OnDestroy {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* determine if the server is offline
|
||||||
|
*
|
||||||
|
* @returns whether the client is offlien
|
||||||
|
*/
|
||||||
|
public isOffline(): boolean {
|
||||||
|
return this.offlineService.isOffline();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scales the projector to the right format.
|
* Scales the projector to the right format.
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user