diff --git a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.html b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.html
index 33fc1d3..8962ee8 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.html
+++ b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.html
@@ -51,6 +51,14 @@
delete
}
+
diff --git a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.scss b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.scss
index 4a687d0..cac8494 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.scss
+++ b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.scss
@@ -90,6 +90,9 @@
.video-btns button #delete {
color: var(--ov-error-color);
}
+.video-btns button #share {
+ color: var(--ov-text-primary-color);
+}
.video-info-container > div {
width: 100%;
diff --git a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts
index 56ef960..0295f93 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts
+++ b/frontend/projects/shared-meet-components/src/lib/pages/room-recordings/room-recordings.component.ts
@@ -2,9 +2,11 @@ import { CommonModule, DatePipe, DecimalPipe } from '@angular/common';
import { Component, OnInit } from '@angular/core';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
+import { MatDialog } from '@angular/material/dialog';
import { MatIconModule } from '@angular/material/icon';
import { MatToolbarModule } from '@angular/material/toolbar';
import { ActivatedRoute } from '@angular/router';
+import { ShareRecordingDialogComponent } from '@lib/components';
import { ContextService, HttpService } from '@lib/services';
import {
ActionService,
@@ -40,7 +42,8 @@ export class RoomRecordingsComponent implements OnInit {
protected contextService: ContextService,
protected httpService: HttpService,
protected actionService: ActionService,
- protected route: ActivatedRoute
+ protected route: ActivatedRoute,
+ protected dialog: MatDialog
) {}
async ngOnInit() {
@@ -102,6 +105,13 @@ export class RoomRecordingsComponent implements OnInit {
}
}
+ openShareDialog(recording: MeetRecordingInfo) {
+ this.dialog.open(ShareRecordingDialogComponent, {
+ width: '400px',
+ data: { recordingId: recording.recordingId }
+ });
+ }
+
private async loadRecordings() {
try {
const recordingFilters: MeetRecordingFilters = {
diff --git a/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts b/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts
index e8a85e1..e33c69a 100644
--- a/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts
+++ b/frontend/projects/shared-meet-components/src/lib/services/http/http.service.ts
@@ -149,8 +149,16 @@ export class HttpService {
return this.getRequest(path);
}
- getRecordingMediaUrl(recordingId: string): string {
- return `${this.API_PATH_PREFIX}/recordings/${recordingId}/media`;
+ getRecordingMediaUrl(recordingId: string, secret?: string): string {
+ let path = `${this.API_PATH_PREFIX}/recordings/${recordingId}/media`;
+ if (secret) {
+ path += `?secret=${secret}`;
+ }
+ return path;
+ }
+
+ generateRecordingUrl(recordingId: string, privateAccess: boolean): Promise<{ url: string }> {
+ return this.getRequest(`${this.API_PATH_PREFIX}/recordings/${recordingId}/url?privateAccess=${privateAccess}`);
}
startRecording(roomId: string): Promise {