frontend: Refactor user management components and update routes
This commit is contained in:
parent
f95b02e42b
commit
f677b18879
@ -3,5 +3,5 @@ export * from './config/config.component';
|
|||||||
export * from './console/console.component';
|
export * from './console/console.component';
|
||||||
export * from './embedded/embedded.component';
|
export * from './embedded/embedded.component';
|
||||||
export * from './overview/overview.component';
|
export * from './overview/overview.component';
|
||||||
export * from './users-permissions/users-permissions.component';
|
export * from './users/users.component';
|
||||||
|
|
||||||
|
|||||||
@ -1,12 +1,10 @@
|
|||||||
<div class="ov-page-container ov-mb-xxl">
|
<div class="ov-page-container ov-mb-xxl">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<mat-icon class="material-symbols-outlined ov-users-permissions">passkey</mat-icon>
|
<mat-icon class="material-symbols-outlined ov-users">group</mat-icon>
|
||||||
<h1>Users & Permissions</h1>
|
<h1>Users</h1>
|
||||||
</div>
|
</div>
|
||||||
<p class="subtitle">
|
<p class="subtitle">Manage your users, control access, and register new accounts.</p>
|
||||||
Manage who can access your video meeting rooms and control their permissions.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@if (isLoading()) {
|
@if (isLoading()) {
|
||||||
@ -80,8 +78,8 @@
|
|||||||
<div class="form-field-header">
|
<div class="form-field-header">
|
||||||
<h3>Administrator Password</h3>
|
<h3>Administrator Password</h3>
|
||||||
<p class="field-description">
|
<p class="field-description">
|
||||||
Update your administrator password to keep your account secure.
|
Update your administrator password to keep your account secure. We recommend using a
|
||||||
We recommend using a strong, unique password.
|
strong, unique password.
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -139,7 +137,10 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>{{ showNewPassword() ? 'visibility_off' : 'visibility' }}</mat-icon>
|
<mat-icon>{{ showNewPassword() ? 'visibility_off' : 'visibility' }}</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
<mat-hint>Minimum 5 characters. We recommend using letters, numbers, and symbols</mat-hint>
|
<mat-hint
|
||||||
|
>Minimum 5 characters. We recommend using letters, numbers, and
|
||||||
|
symbols</mat-hint
|
||||||
|
>
|
||||||
@if (getNewPasswordError()) {
|
@if (getNewPasswordError()) {
|
||||||
<mat-error>{{ getNewPasswordError() }}</mat-error>
|
<mat-error>{{ getNewPasswordError() }}</mat-error>
|
||||||
}
|
}
|
||||||
@ -187,50 +188,6 @@
|
|||||||
</button>
|
</button>
|
||||||
</mat-card-actions>
|
</mat-card-actions>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
|
|
||||||
<!-- Access & Permissions Section -->
|
|
||||||
<!-- <mat-card class="section-card access-section">
|
|
||||||
<mat-card-header>
|
|
||||||
<div mat-card-avatar>
|
|
||||||
<mat-icon class="section-icon">security</mat-icon>
|
|
||||||
</div>
|
|
||||||
<mat-card-title>Access & Permissions</mat-card-title>
|
|
||||||
</mat-card-header>
|
|
||||||
|
|
||||||
<mat-divider class="section-divider"></mat-divider>
|
|
||||||
|
|
||||||
<mat-card-content>
|
|
||||||
<form [formGroup]="accessSettingsForm" (ngSubmit)="onSaveAccessSettings()"> -->
|
|
||||||
<!-- Authentication for joining room -->
|
|
||||||
<!-- <div class="form-section">
|
|
||||||
<div class="form-field-header">
|
|
||||||
<h3>Authentication for joining room</h3>
|
|
||||||
</div>
|
|
||||||
<p class="field-description">Choose which users must authenticate for joining room.</p>
|
|
||||||
|
|
||||||
<mat-form-field subscriptSizing="dynamic" appearance="outline" class="auth-select-field">
|
|
||||||
<mat-label>Select...</mat-label>
|
|
||||||
<mat-select formControlName="authModeToAccessRoom">
|
|
||||||
@for (option of authModeOptions; track option.value) {
|
|
||||||
<mat-option [value]="option.value">{{ option.label }}</mat-option>
|
|
||||||
}
|
|
||||||
</mat-select>
|
|
||||||
</mat-form-field>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</mat-card-content>
|
|
||||||
<mat-card-actions>
|
|
||||||
<button
|
|
||||||
mat-button
|
|
||||||
type="submit"
|
|
||||||
(click)="onSaveAccessSettings()"
|
|
||||||
[disabled]="!hasAccessSettingsChanges()"
|
|
||||||
class="primary-button"
|
|
||||||
>
|
|
||||||
Save configuration
|
|
||||||
</button>
|
|
||||||
</mat-card-actions>
|
|
||||||
</mat-card> -->
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
@ -24,7 +24,7 @@ import { NotificationService } from '../../../../shared/services/notification.se
|
|||||||
import { AuthService } from '../../../auth/services/auth.service';
|
import { AuthService } from '../../../auth/services/auth.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'ov-users-permissions',
|
selector: 'ov-users',
|
||||||
imports: [
|
imports: [
|
||||||
MatCardModule,
|
MatCardModule,
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
@ -38,10 +38,10 @@ import { AuthService } from '../../../auth/services/auth.service';
|
|||||||
ReactiveFormsModule
|
ReactiveFormsModule
|
||||||
// ProFeatureBadgeComponent
|
// ProFeatureBadgeComponent
|
||||||
],
|
],
|
||||||
templateUrl: './users-permissions.component.html',
|
templateUrl: './users.component.html',
|
||||||
styleUrl: './users-permissions.component.scss'
|
styleUrl: './users.component.scss'
|
||||||
})
|
})
|
||||||
export class UsersPermissionsComponent implements OnInit {
|
export class UsersComponent implements OnInit {
|
||||||
isLoading = signal(true);
|
isLoading = signal(true);
|
||||||
|
|
||||||
showCurrentPassword = signal(false);
|
showCurrentPassword = signal(false);
|
||||||
@ -23,6 +23,19 @@ export const consoleChildRoutes: DomainRouteConfig[] = [
|
|||||||
},
|
},
|
||||||
...roomsConsoleRoutes,
|
...roomsConsoleRoutes,
|
||||||
...recordingsConsoleRoutes,
|
...recordingsConsoleRoutes,
|
||||||
|
{
|
||||||
|
route: {
|
||||||
|
path: 'users',
|
||||||
|
loadComponent: () => import('../pages/users/users.component').then((m) => m.UsersComponent)
|
||||||
|
},
|
||||||
|
navMetadata: {
|
||||||
|
label: 'Users',
|
||||||
|
route: 'users',
|
||||||
|
icon: 'group',
|
||||||
|
iconClass: 'ov-users material-symbols-outlined',
|
||||||
|
order: 4
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
route: {
|
route: {
|
||||||
path: 'embedded',
|
path: 'embedded',
|
||||||
@ -33,20 +46,6 @@ export const consoleChildRoutes: DomainRouteConfig[] = [
|
|||||||
route: 'embedded',
|
route: 'embedded',
|
||||||
icon: 'code_blocks',
|
icon: 'code_blocks',
|
||||||
iconClass: 'material-symbols-outlined ov-developer-icon',
|
iconClass: 'material-symbols-outlined ov-developer-icon',
|
||||||
order: 4
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
route: {
|
|
||||||
path: 'users-permissions',
|
|
||||||
loadComponent: () =>
|
|
||||||
import('../pages/users-permissions/users-permissions.component').then((m) => m.UsersPermissionsComponent)
|
|
||||||
},
|
|
||||||
navMetadata: {
|
|
||||||
label: 'Users & Permissions',
|
|
||||||
route: 'users-permissions',
|
|
||||||
icon: 'passkey',
|
|
||||||
iconClass: 'ov-users-permissions material-symbols-outlined',
|
|
||||||
order: 5
|
order: 5
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@ -24,7 +24,7 @@
|
|||||||
--ov-meet-icon-rooms: var(--ov-meet-color-primary); // video_chat, meeting_room
|
--ov-meet-icon-rooms: var(--ov-meet-color-primary); // video_chat, meeting_room
|
||||||
--ov-meet-icon-recordings: var(--ov-meet-color-accent); // video_library, play_circle
|
--ov-meet-icon-recordings: var(--ov-meet-color-accent); // video_library, play_circle
|
||||||
--ov-meet-icon-developer: var(--ov-meet-color-warning); // code, api
|
--ov-meet-icon-developer: var(--ov-meet-color-warning); // code, api
|
||||||
--ov-meet-icon-users-permissions: #e05200; // group, manage_accounts
|
--ov-meet-icon-users: #37b953; // group, manage_accounts
|
||||||
--ov-meet-icon-settings: var(--ov-meet-color-secondary); // settings, tune
|
--ov-meet-icon-settings: var(--ov-meet-color-secondary); // settings, tune
|
||||||
|
|
||||||
// --ov-meet-icon-about: var(--ov-meet-color-info); // info, security, help
|
// --ov-meet-icon-about: var(--ov-meet-color-info); // info, security, help
|
||||||
|
|||||||
@ -107,8 +107,8 @@
|
|||||||
@include layout.ov-theme-transition;
|
@include layout.ov-theme-transition;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ov-users-permissions {
|
.ov-users {
|
||||||
color: var(--ov-meet-icon-users-permissions) !important;
|
color: var(--ov-meet-icon-users) !important;
|
||||||
overflow: none;
|
overflow: none;
|
||||||
@include layout.ov-theme-transition;
|
@include layout.ov-theme-transition;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user