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 >
< mat-checkbox class = "subscribe-checkbox" name = "subscribeTo" ( change ) = " toggleSubscribeTo ( ) " [ checked ] = " subscribeTo & & checkSubscribeTo "
[disabled]="session">Subscribe< / mat-checkbox >
< mat-checkbox class = "publish-checkbox" name = "publishTo" ( change ) = " togglePublishTo ( ) " [ checked ] = " publishTo & & checkPublishTo "
[disabled]="session || disablePublishTo">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 >
2017-10-16 17:16:14 +02:00
< mat-checkbox class = "send-audio-checkbox" name = "sendAudio" ( change ) = " toggleSendAudio ( ) " [ checked ] = " sendAudio & & checkSendAudio "
[disabled]="session || disableSendAudio">Audio< / mat-checkbox >
< mat-checkbox class = "send-video-checkbox" name = "sendVideo" ( change ) = " toggleSendVideo ( ) " [ checked ] = " sendVideo & & checkSendVideo "
[disabled]="session || disableSendVideo">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 >
2017-10-16 17:16:14 +02:00
< mat-checkbox class = "active-audio-checkbox" name = "activeAudio" ( change ) = " toggleActiveAudio ( ) " [ checked ] = " activeAudio & & checkActiveAudio "
[disabled]="session || disableActiveAudio">Audio< / mat-checkbox >
< mat-checkbox class = "active-video-checkbox" name = "activeVideo" ( change ) = " toggleActiveVideo ( ) " [ checked ] = " activeVideo & & checkActiveVideo "
[disabled]="session || disableActiveVideo">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" >
2017-10-16 17:16:14 +02:00
< mat-radio-group [ ( ngModel ) ] = " optionsVideo " [ disabled ] = " session | | disableRadioButtons " [ ngModelOptions ] = " { standalone: true } " >
2017-09-30 13:48:40 +02:00
< div >
2017-10-16 17:16:14 +02:00
< mat-radio-button class = "video-radio" value = "video" [ checked ] = " checkRadioVideo & & optionsVideo = =='video'" > Video< / mat-radio-button >
2017-09-30 13:48:40 +02:00
< / div >
< div >
2017-10-16 17:16:14 +02:00
< mat-radio-button class = "screen-radio" value = "screen" [ checked ] = " checkRadioScreen & & optionsVideo = =='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 >
< mat-checkbox class = "subscribe-remote-check" name = "subscribeToRemote" ( change ) = " subscribeToRemote = !subscribeToRemote" [ disabled ] = " ( ! sendAudio & & ! sendVideo ) | | ! publishTo | | session "
2017-10-16 15:49:23 +02:00
[checked]="(sendAudio || sendVideo) & & 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" >
< button mat-icon-button title = "Publisher properties" [ id ] = " ' session-settings-btn- ' + index " class = "mat-icon-custom" ( click ) = " advancedPublisherOptions ( ) "
[disabled]="(!sendAudio & & !sendVideo) || !publishTo">
< mat-icon class = "mat-icon-custom-ic" aria-label = "Session properties button" > settings< / mat-icon >
< / button >
< 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)">
< 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-29 18:32:49 +02:00
< app-video * ngIf = "this.publisher" [ streamManager ] = " this . publisher " [ OV ] = " OV " ( updateEventListInParent ) = " udpateEventFromChild ( $ event ) " >
< / app-video >
< app-video * ngFor = "let subscriber of this.subscribers" [ streamManager ] = " subscriber " [ OV ] = " OV " ( updateEventListInParent ) = " udpateEventFromChild ( $ event ) " ( reSubbed ) = " updateSubscriberFromChild ( $ event ) " >
< / 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 >