2017-09-30 13:48:40 +02:00
|
|
|
<div class="div-wrapper">
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2017-09-30 13:48:40 +02:00
|
|
|
<div>
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-card class="join-card">
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-card-content>
|
2017-09-30 13:48:40 +02:00
|
|
|
<form class="session-form">
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2018-05-18 12:46:41 +02:00
|
|
|
<div fxLayout="row">
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-form-field style="margin-right: 10px">
|
2018-05-29 18:32:49 +02:00
|
|
|
<input matInput placeholder="Session name" [id]="'session-name-input-' + index" name="sessionName" [(ngModel)]="sessionName"
|
|
|
|
[disabled]="session">
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-form-field>
|
2017-09-29 13:54:22 +02:00
|
|
|
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-form-field>
|
2018-05-29 18:32:49 +02:00
|
|
|
<input matInput placeholder="Client data" [id]="'client-data-input-'+ index" name="clientData" [(ngModel)]="clientData" [disabled]="session">
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-form-field>
|
2018-05-18 12:46:41 +02:00
|
|
|
|
|
|
|
<div fxLayout="column" class="session-btns-div">
|
2018-05-29 18:32:49 +02:00
|
|
|
<button mat-icon-button title="Session properties" [id]="'session-settings-btn-' + index" class="mat-icon-custom" (click)="openSessionPropertiesDialog()"
|
|
|
|
[disabled]="session">
|
2018-05-18 12:46:41 +02:00
|
|
|
<mat-icon class="mat-icon-custom-ic" aria-label="Session properties button">settings</mat-icon>
|
|
|
|
</button>
|
2018-05-29 18:32:49 +02:00
|
|
|
<button mat-icon-button title="Session API" [id]="'session-api-btn-' + index" class="mat-icon-custom" (click)="openSessionApiDialog()">
|
2018-05-18 12:46:41 +02:00
|
|
|
<mat-icon class="mat-icon-custom-ic" aria-label="Session API button">cloud_circle</mat-icon>
|
|
|
|
</button>
|
2018-05-29 18:32:49 +02:00
|
|
|
<button mat-icon-button title="Session events" [id]="'session-events-btn-' + index" class="mat-icon-custom" (click)="openSessionEventsDialog()">
|
|
|
|
<mat-icon class="mat-icon-custom-ic" aria-label="Session events button">notifications</mat-icon>
|
|
|
|
</button>
|
2018-05-18 12:46:41 +02:00
|
|
|
</div>
|
|
|
|
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2017-09-30 13:48:40 +02:00
|
|
|
<div>
|
2017-10-16 17:16:14 +02:00
|
|
|
<button class="join-btn" mat-button (click)="joinSession()" [disabled]="session">JOIN</button>
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-checkbox class="subscribe-checkbox" name="subscribeTo" (click)="toggleSubscribeTo()" [checked]="subscribeTo" [disabled]="session">Subscribe</mat-checkbox>
|
|
|
|
<mat-checkbox class="publish-checkbox" name="publishTo" (click)="togglePublishTo()" [checked]="publishTo" [disabled]="session">Publish</mat-checkbox>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="inner-card" fxLayout="row" fxLayoutAlign="start start">
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2018-05-29 18:32:49 +02:00
|
|
|
<div fxFlex="55">
|
2017-09-28 19:13:29 +02:00
|
|
|
<div>
|
2017-09-30 13:48:40 +02:00
|
|
|
<h4>Send</h4>
|
|
|
|
<div>
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-checkbox class="send-audio-checkbox" name="sendAudio" (click)="toggleSendAudio()" [checked]="publisherProperties.audioSource !== false"
|
|
|
|
[disabled]="session || !publishTo">Audio</mat-checkbox>
|
|
|
|
<mat-checkbox class="send-video-checkbox" name="sendVideo" (click)="toggleSendVideo()" [checked]="publisherProperties.videoSource !== false"
|
|
|
|
[disabled]="session || !publishTo">Video</mat-checkbox>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
</div>
|
2017-09-30 13:48:40 +02:00
|
|
|
<div style="padding-top: 5px;">
|
|
|
|
<h4>Enter active</h4>
|
|
|
|
<div>
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-checkbox class="active-audio-checkbox" name="activeAudio" [(ngModel)]="publisherProperties.publishAudio" (click)="publisherProperties.publishAudio = !publisherProperties.publishAudio"
|
|
|
|
[disabled]="session || !publishTo">Audio</mat-checkbox>
|
|
|
|
<mat-checkbox class="active-video-checkbox" name="activeVideo" [(ngModel)]="publisherProperties.publishVideo" (click)="publisherProperties.publishVideo = !publisherProperties.publishVideo"
|
|
|
|
[disabled]="session || !publishTo">Video</mat-checkbox>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-29 13:54:22 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
</div>
|
|
|
|
|
2018-05-29 18:32:49 +02:00
|
|
|
<div fxFlex="35">
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-radio-group [(ngModel)]="optionsVideo" (change)="updateOptionsVideo($event)" [disabled]="session || !publishTo" [ngModelOptions]="{standalone: true}">
|
2017-09-30 13:48:40 +02:00
|
|
|
<div>
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-radio-button class="video-radio" value="video">Video</mat-radio-button>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
|
|
|
<div>
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-radio-button class="screen-radio" value="screen">Screen</mat-radio-button>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-radio-group>
|
2018-05-31 13:08:34 +02:00
|
|
|
<mat-checkbox class="subscribe-remote-check" name="subscribeToRemote" (click)="subscribeToRemote = !subscribeToRemote" [disabled]="!publishTo || session"
|
|
|
|
[checked]="publishTo && subscribeToRemote">Subscribe
|
2017-10-16 17:16:14 +02:00
|
|
|
<br>to remote</mat-checkbox>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2018-05-29 18:32:49 +02:00
|
|
|
<div fxFlex="10">
|
|
|
|
<div fxLayout="column" class="publisher-btns-div">
|
2018-05-31 13:08:34 +02:00
|
|
|
<button mat-icon-button title="Publisher properties" [id]="'publisher-settings-btn-' + index" class="mat-icon-custom" (click)="openPublisherPropertiesDialog()"
|
|
|
|
[disabled]="!publishTo">
|
2018-05-29 18:32:49 +02:00
|
|
|
<mat-icon class="mat-icon-custom-ic" aria-label="Session properties button">settings</mat-icon>
|
|
|
|
</button>
|
2018-05-31 13:08:34 +02:00
|
|
|
<button mat-icon-button title="Add new publisher to running session" [id]="'session-api-btn-' + index" class="mat-icon-custom"
|
|
|
|
(click)="addNewPublisher()" [disabled]="!session || ((!sendAudio && !sendVideo) || !publishTo)">
|
2018-05-29 18:32:49 +02:00
|
|
|
<mat-icon class="mat-icon-custom-ic" aria-label="Session API button">add_circle</mat-icon>
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2017-09-30 13:48:40 +02:00
|
|
|
</form>
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-card-content>
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-card>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
|
2017-09-30 13:48:40 +02:00
|
|
|
<div *ngIf="session">
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-card class="session-card">
|
2017-09-30 13:48:40 +02:00
|
|
|
<div class="session-card-header">
|
|
|
|
<div class="session-card-inner">
|
|
|
|
<div class="session-title">{{sessionName}}</div>
|
|
|
|
<div class="session-actions">
|
2018-01-18 16:09:39 +01:00
|
|
|
<button class="message-btn" (click)="sendMessage()" title="Broadcast message">
|
2018-01-11 11:13:50 +01:00
|
|
|
<mat-icon aria-label="Send message button" style="font-size: 20px">chat</mat-icon>
|
2017-12-11 17:09:57 +01:00
|
|
|
</button>
|
2018-01-18 16:09:39 +01:00
|
|
|
<button class="leave-btn" (click)="leaveSession()" title="Leave session">
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-icon aria-label="Leave button">clear</mat-icon>
|
2017-10-16 15:49:23 +02:00
|
|
|
</button>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-09-29 13:54:22 +02:00
|
|
|
</div>
|
2017-09-28 19:13:29 +02:00
|
|
|
</div>
|
2017-09-30 13:48:40 +02:00
|
|
|
<div *ngIf="session.connection" fxLayout>
|
2018-02-27 14:47:03 +01:00
|
|
|
<div fxFlex="140px" class="video-container">
|
2017-10-04 10:30:15 +02:00
|
|
|
|
2017-10-09 18:48:05 +02:00
|
|
|
<div class="event-list-div scroll-custom">
|
2017-10-16 17:16:14 +02:00
|
|
|
<mat-accordion [attr.id]="'events-' + session.connection.connectionId" class="event-list">
|
|
|
|
<mat-expansion-panel *ngFor="let event of events" class="event-item">
|
|
|
|
<mat-expansion-panel-header [attr.id]="event.name + '-' + session.connection.connectionId" [collapsedHeight]="'20px'" [expandedHeight]="'20px'"
|
2017-10-16 15:49:23 +02:00
|
|
|
class="event-name">
|
2017-10-04 10:30:15 +02:00
|
|
|
{{event.name}}
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-expansion-panel-header>
|
2017-10-09 18:48:05 +02:00
|
|
|
<div class="event-content">{{event.content}}</div>
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-expansion-panel>
|
|
|
|
</mat-accordion>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
|
|
|
</div>
|
2018-02-27 14:47:03 +01:00
|
|
|
<div [attr.id]="'remote-vid-' + session.connection.connectionId" fxFlex="240px" class="video-container">
|
2017-10-04 10:30:15 +02:00
|
|
|
<div [attr.id]="'local-vid-' + session.connection.connectionId"></div>
|
2018-05-31 13:08:34 +02:00
|
|
|
<app-video *ngIf="this.publisher" [streamManager]="this.publisher" [OV]="OV" [properties]="publisherProperties" (updateEventListInParent)="udpateEventFromChild($event)">
|
2018-05-29 18:32:49 +02:00
|
|
|
</app-video>
|
2018-05-31 13:08:34 +02:00
|
|
|
<app-video *ngFor="let subscriber of this.subscribers" [streamManager]="subscriber" [OV]="OV" (updateEventListInParent)="udpateEventFromChild($event)"
|
|
|
|
(reSubbed)="updateSubscriberFromChild($event)">
|
2018-05-29 18:32:49 +02:00
|
|
|
</app-video>
|
2017-10-04 10:30:15 +02:00
|
|
|
</div>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
2017-10-16 17:16:14 +02:00
|
|
|
</mat-card>
|
2017-09-30 13:48:40 +02:00
|
|
|
</div>
|
|
|
|
|
2018-05-18 12:46:41 +02:00
|
|
|
</div>
|