- vpn_key
-
-
-
- API Key
-
-
-
-
- (undefined);
showApiKey = signal(false);
@@ -66,8 +64,10 @@ export class DevelopersSettingsComponent implements OnInit {
}
async ngOnInit() {
+ this.isLoading.set(true);
await this.loadApiKeyData();
await this.loadWebhookConfig();
+ this.isLoading.set(false);
}
// ===== API KEY METHODS =====
diff --git a/frontend/projects/shared-meet-components/src/lib/pages/console/users-permissions/users-permissions.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/console/users-permissions/users-permissions.component.ts
index 2e54575..5722cfd 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/console/users-permissions/users-permissions.component.ts
+++ b/frontend/projects/shared-meet-components/src/lib/pages/console/users-permissions/users-permissions.component.ts
@@ -31,7 +31,7 @@ import { AuthMode } from '@lib/typings/ce';
styleUrl: './users-permissions.component.scss'
})
export class UsersPermissionsComponent implements OnInit {
- isLoading = signal(false);
+ isLoading = signal(true);
adminCredentialsForm = new FormGroup({
adminUsername: new FormControl({ value: '', disabled: true }, [Validators.required]),
-
-
+ @if (isLoading()) {
+
+
diff --git a/frontend/projects/shared-meet-components/src/lib/pages/console/developers/developers.component.ts b/frontend/projects/shared-meet-components/src/lib/pages/console/developers/developers.component.ts
index 6c519e1..63292da 100644
--- a/frontend/projects/shared-meet-components/src/lib/pages/console/developers/developers.component.ts
+++ b/frontend/projects/shared-meet-components/src/lib/pages/console/developers/developers.component.ts
@@ -1,15 +1,13 @@
import { Clipboard } from '@angular/cdk/clipboard';
-import { CommonModule } from '@angular/common';
import { Component, OnInit, signal } from '@angular/core';
import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
-import { MatDividerModule } from '@angular/material/divider';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatIconModule } from '@angular/material/icon';
import { MatInputModule } from '@angular/material/input';
+import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
-import { MatSnackBarModule } from '@angular/material/snack-bar';
import { MatTooltipModule } from '@angular/material/tooltip';
import { AuthService, GlobalPreferencesService, NotificationService } from '@lib/services';
import { MeetApiKey } from '@lib/typings/ce';
@@ -18,22 +16,22 @@ import { MeetApiKey } from '@lib/typings/ce';
selector: 'ov-developers-settings',
standalone: true,
imports: [
- CommonModule,
MatCardModule,
MatButtonModule,
MatIconModule,
MatInputModule,
MatFormFieldModule,
MatSlideToggleModule,
- MatSnackBarModule,
MatTooltipModule,
- MatDividerModule,
- ReactiveFormsModule
+ ReactiveFormsModule,
+ MatProgressSpinnerModule
],
templateUrl: './developers.component.html',
styleUrl: './developers.component.scss'
})
export class DevelopersSettingsComponent implements OnInit {
+ isLoading = signal(true);
+
apiKeyData = signal
+
+
+ API KEY
+ Generate and manage your API key for REST API access
+
+
+
+ @if (apiKeyData()) {
+
+ delete
+ Revoke Key
+
+
}
-
+
- @if (apiKeyData()) {
-
-
- refresh
- Regenerate Key
-
-
- delete
- Revoke Key
-
-
- }
-
-
-
-
-
- WEBHOOKS
- Configure webhook notifications for real-time event updates
-
-
-
-
+
+ }
+
-
+
+ settings
+
+ Loading Settings
Please wait while we fetch your settings...
+
+ vpn_key
+
+
+
+ API Key
+
+
+
+
+
+
+
- } @else {
-
+
+
+
-
+ No API Key Generated
-Generate an API key to access OpenVidu Meet REST API endpoints.
-
- webhook
-
-