diff --git a/openvidu-testapp/src/app/app.material.module.ts b/openvidu-testapp/src/app/app.material.module.ts
index c2adc4ea..15a89525 100644
--- a/openvidu-testapp/src/app/app.material.module.ts
+++ b/openvidu-testapp/src/app/app.material.module.ts
@@ -18,7 +18,8 @@ import {
MatChipsModule,
MatExpansionModule,
MatSlideToggleModule,
- MatSidenavModule
+ MatSidenavModule,
+ MatFormFieldModule
} from '@angular/material';
@NgModule({
@@ -41,7 +42,8 @@ import {
MatChipsModule,
MatExpansionModule,
MatSlideToggleModule,
- MatSidenavModule
+ MatSidenavModule,
+ MatFormFieldModule
],
})
export class AppMaterialModule { }
diff --git a/openvidu-testapp/src/app/app.module.ts b/openvidu-testapp/src/app/app.module.ts
index d1093a87..ed4f1a80 100644
--- a/openvidu-testapp/src/app/app.module.ts
+++ b/openvidu-testapp/src/app/app.module.ts
@@ -10,13 +10,15 @@ import { AppComponent } from './app.component';
import { TestSessionsComponent } from './components/test-sessions/test-sessions.component';
import { TestApirestComponent } from './components/test-apirest/test-apirest.component';
import { OpenviduInstanceComponent } from './components/openvidu-instance/openvidu-instance.component';
-import { ExtensionDialogComponent } from './components/openvidu-instance/extension-dialog.component';
-import { LocalRecordingDialogComponent } from './components/test-sessions/local-recording-dialog.component';
+import { ExtensionDialogComponent } from './components/dialogs/extension-dialog.component';
+import { LocalRecordingDialogComponent } from './components/dialogs/local-recording-dialog.component';
import { OpenviduRestService } from './services/openvidu-rest.service';
import { OpenviduParamsService } from './services/openvidu-params.service';
import { TestFeedService } from './services/test-feed.service';
import { MuteSubscribersService } from './services/mute-subscribers.service';
+import { SessionPropertiesDialogComponent } from './components/dialogs/session-properties-dialog.component';
+import { SessionApiDialogComponent } from './components/dialogs/session-api-dialog.component';
@NgModule({
declarations: [
@@ -25,6 +27,8 @@ import { MuteSubscribersService } from './services/mute-subscribers.service';
TestSessionsComponent,
TestApirestComponent,
ExtensionDialogComponent,
+ SessionPropertiesDialogComponent,
+ SessionApiDialogComponent,
LocalRecordingDialogComponent
],
imports: [
@@ -43,6 +47,8 @@ import { MuteSubscribersService } from './services/mute-subscribers.service';
],
entryComponents: [
ExtensionDialogComponent,
+ SessionPropertiesDialogComponent,
+ SessionApiDialogComponent,
LocalRecordingDialogComponent
],
bootstrap: [AppComponent]
diff --git a/openvidu-testapp/src/app/components/openvidu-instance/extension-dialog.component.ts b/openvidu-testapp/src/app/components/dialogs/extension-dialog.component.ts
similarity index 100%
rename from openvidu-testapp/src/app/components/openvidu-instance/extension-dialog.component.ts
rename to openvidu-testapp/src/app/components/dialogs/extension-dialog.component.ts
diff --git a/openvidu-testapp/src/app/components/test-sessions/local-recording-dialog.component.ts b/openvidu-testapp/src/app/components/dialogs/local-recording-dialog.component.ts
similarity index 100%
rename from openvidu-testapp/src/app/components/test-sessions/local-recording-dialog.component.ts
rename to openvidu-testapp/src/app/components/dialogs/local-recording-dialog.component.ts
diff --git a/openvidu-testapp/src/app/components/dialogs/session-api-dialog.component.ts b/openvidu-testapp/src/app/components/dialogs/session-api-dialog.component.ts
new file mode 100644
index 00000000..cf83d78b
--- /dev/null
+++ b/openvidu-testapp/src/app/components/dialogs/session-api-dialog.component.ts
@@ -0,0 +1,112 @@
+import { Component, Inject } from '@angular/core';
+import { MatDialog, MAT_DIALOG_DATA, MatDialogConfig, MatDialogRef } from '@angular/material';
+
+import { Session } from 'openvidu-browser';
+import { OpenVidu as OpenViduAPI } from 'openvidu-node-client';
+
+@Component({
+ selector: 'app-session-properties-dialog',
+ template: `
+
+
API REST
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `,
+ styles: [
+ '#response-text-area { width: 100%; color: #808080; }',
+ '#response-text-area textarea { resize: none; }',
+ 'mat-dialog-content button, mat-divider { margin-bottom: 5px; }',
+ ]
+})
+export class SessionApiDialogComponent {
+
+ OV: OpenViduAPI;
+ sessionId: string;
+ recordingId: string;
+ response: string;
+
+ constructor(public dialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data) {
+ this.OV = data.openVidu;
+ this.sessionId = data.sessionId;
+ }
+
+ startRecording() {
+ console.log('Starting recording');
+ this.OV.startRecording(this.sessionId)
+ .then(recording => {
+ this.response = 'Recording started [' + recording.id + ']';
+ })
+ .catch(error => {
+ this.response = 'Error [' + error.message + ']';
+ });
+ }
+
+ stopRecording() {
+ console.log('Stopping recording');
+ this.OV.stopRecording(this.recordingId)
+ .then(recording => {
+ this.response = 'Recording stopped [' + recording.id + ']';
+ })
+ .catch(error => {
+ this.response = 'Error [' + error.message + ']';
+ });
+ }
+
+ getRecording() {
+ console.log('Getting recording');
+ this.OV.getRecording(this.recordingId)
+ .then(recording => {
+ this.response = 'Recording got [' + recording.id + ']';
+ })
+ .catch(error => {
+ this.response = 'Error [' + error.message + ']';
+ });
+ }
+
+ listRecordings() {
+ console.log('Listing recordings');
+ this.OV.listRecordings()
+ .then(recordingList => {
+ let recordingIds = '';
+ recordingList.forEach((rec, index) => {
+ recordingIds += rec.id;
+ if (index !== recordingList.length - 1) {
+ recordingIds += ', ';
+ }
+ });
+ this.response = 'Recording list [' + recordingIds + ']';
+ })
+ .catch(error => {
+ this.response = 'Error [' + error.message + ']';
+ });
+ }
+
+ deleteRecording() {
+ console.log('Deleting recording');
+ this.OV.deleteRecording(this.recordingId)
+ .then(() => {
+ this.response = 'Recording deleted';
+ })
+ .catch(error => {
+ this.response = 'Error [' + error.message + ']';
+ });
+ }
+
+}
diff --git a/openvidu-testapp/src/app/components/dialogs/session-properties-dialog.component.ts b/openvidu-testapp/src/app/components/dialogs/session-properties-dialog.component.ts
new file mode 100644
index 00000000..7a5440bd
--- /dev/null
+++ b/openvidu-testapp/src/app/components/dialogs/session-properties-dialog.component.ts
@@ -0,0 +1,64 @@
+import { Component, Inject } from '@angular/core';
+import { MatDialog, MAT_DIALOG_DATA, MatDialogConfig, MatDialogRef } from '@angular/material';
+
+import { SessionProperties, MediaMode, RecordingMode, RecordingLayout } from 'openvidu-node-client';
+
+@Component({
+ selector: 'app-session-properties-dialog',
+ template: `
+
+
Session properties
+
+
+
+
+ {{ enumerator }}
+
+
+
+
+
+
+ {{ enumerator }}
+
+
+
+
+
+
+ {{ enumerator }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `
+})
+export class SessionPropertiesDialogComponent {
+
+ sessionProperties: SessionProperties;
+
+ private mediaMode = MediaMode;
+ private recordingMode = RecordingMode;
+ private defaultRecordingLayout = RecordingLayout;
+
+ constructor(public dialogRef: MatDialogRef,
+ @Inject(MAT_DIALOG_DATA) public data: SessionProperties) {
+ this.sessionProperties = data;
+ }
+
+ enumToArray(enumerator: any) {
+ return Object.keys(enumerator);
+ }
+
+}
diff --git a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.css b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.css
index cb2a9269..fad4dfe6 100644
--- a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.css
+++ b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.css
@@ -18,11 +18,14 @@ mat-card.session-card {
}
.session-form mat-form-field {
- width: 130px;
+ width: 110px;
}
.join-card {
width: fit-content;
+ min-height: 215px;
+ padding-top: 20px;
+ padding-bottom: 10px;
}
.join-card mat-card-content {
@@ -33,6 +36,7 @@ mat-card.session-card {
border: 1px solid #e1e1e1;
padding: 10px 15px 10px 15px;
background: #ffffff;
+ margin-top: 5px;
}
.inner-card h4 {
@@ -93,7 +97,7 @@ mat-radio-button {
.event-list-div {
display: inline-block;
width: 130px;
- height: 183.5px;
+ height: 180px;
overflow-y: auto;
overflow-x: hidden;
}
@@ -133,6 +137,20 @@ mat-expansion-panel-header {
padding: 0 7px 0 9px !important;
}
-.secure-div mat-checkbox {
- padding-right: 10px;
+.mat-icon-custom {
+ width: 29px;
+ height: 29px;
+ line-height: 18px;
+}
+
+.mat-icon-custom-ic {
+ width: 20px;
+ height: 20px;
+ font-size: 20px;
+ line-height: 20px;
+}
+
+.session-btns-div {
+ margin-top: -14px;
+ margin-right: -14px;
}
\ No newline at end of file
diff --git a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html
index 5340afe7..783208cb 100644
--- a/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html
+++ b/openvidu-testapp/src/app/components/openvidu-instance/openvidu-instance.component.html
@@ -6,14 +6,7 @@