frontend: update users & permissions page for improved clarity and consistency in UI elements

This commit is contained in:
Carlos Santos 2025-09-29 12:12:49 +02:00
parent 4f97c1a1db
commit d9ec6d687f
2 changed files with 20 additions and 26 deletions

View File

@ -1,12 +1,11 @@
<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-settings-icon">passkey</mat-icon> <mat-icon class="material-symbols-outlined ov-users-permissions">passkey</mat-icon>
<h1>Users & permissions</h1> <h1>Users & Permissions</h1>
</div> </div>
<p class="subtitle"> <p class="subtitle">
Configure authentication settings and access controls to manage who can join your rooms and their Manage who can access your video meeting rooms and control their permissions.
permissions.
</p> </p>
</div> </div>
@ -16,9 +15,9 @@
<div class="loading-header"> <div class="loading-header">
<div class="loading-title"> <div class="loading-title">
<mat-icon class="ov-settings-icon loading-icon">settings</mat-icon> <mat-icon class="ov-settings-icon loading-icon">settings</mat-icon>
<h1>Loading Settings</h1> <h1>Loading Configuration</h1>
</div> </div>
<p class="loading-subtitle">Please wait while we fetch your settings...</p> <p class="loading-subtitle">Please wait while we load your security configurations...</p>
</div> </div>
<div class="loading-spinner-container"> <div class="loading-spinner-container">
@ -45,10 +44,10 @@
</mat-card> --> </mat-card> -->
<!-- Users Section --> <!-- Users Section -->
<mat-card class="section-card branding-section"> <mat-card class="section-card users-section">
<mat-card-header class="users-header"> <mat-card-header class="users-header">
<div mat-card-avatar class="users-avatar"> <div mat-card-avatar class="users-avatar">
<mat-icon class="section-icon users-icon">group</mat-icon> <mat-icon class="section-icon users-icon">admin_panel_settings</mat-icon>
</div> </div>
<mat-card-title class="users-title">Users</mat-card-title> <mat-card-title class="users-title">Users</mat-card-title>
</mat-card-header> </mat-card-header>
@ -79,15 +78,19 @@
<form [formGroup]="adminCredentialsForm" (ngSubmit)="onSaveAdminCredentials()"> <form [formGroup]="adminCredentialsForm" (ngSubmit)="onSaveAdminCredentials()">
<div class="form-section"> <div class="form-section">
<div class="form-field-header"> <div class="form-field-header">
<h3>Admin Credentials</h3> <h3>Administrator Password</h3>
<p class="field-description">Change the password for the admin user.</p> <p class="field-description">
Update your administrator password to keep your account secure.
We recommend using a strong, unique password.
</p>
</div> </div>
<div class="admin-auth-form"> <div class="admin-auth-form">
<!-- Username Field --> <!-- Username Field -->
<mat-form-field subscriptSizing="dynamic" appearance="outline" class="username-field"> <mat-form-field subscriptSizing="dynamic" appearance="outline" class="username-field">
<mat-label>Username</mat-label> <mat-label>Administrator Username</mat-label>
<input matInput type="text" formControlName="username" placeholder="admin" /> <input matInput type="text" formControlName="username" placeholder="admin" />
<mat-hint>This is your username to access the administration panel</mat-hint>
</mat-form-field> </mat-form-field>
<!-- Current Password Field --> <!-- Current Password Field -->
@ -111,6 +114,7 @@
showCurrentPassword() ? 'visibility_off' : 'visibility' showCurrentPassword() ? 'visibility_off' : 'visibility'
}}</mat-icon> }}</mat-icon>
</button> </button>
<mat-hint>We need to verify your identity with your current password</mat-hint>
@if (getCurrentPasswordError()) { @if (getCurrentPasswordError()) {
<mat-error>{{ getCurrentPasswordError() }}</mat-error> <mat-error>{{ getCurrentPasswordError() }}</mat-error>
} }
@ -123,7 +127,7 @@
matInput matInput
[type]="showNewPassword() ? 'text' : 'password'" [type]="showNewPassword() ? 'text' : 'password'"
formControlName="newPassword" formControlName="newPassword"
placeholder="Enter your new password" placeholder="Create a strong, secure password"
/> />
<button <button
mat-icon-button mat-icon-button
@ -135,7 +139,7 @@
> >
<mat-icon>{{ showNewPassword() ? 'visibility_off' : 'visibility' }}</mat-icon> <mat-icon>{{ showNewPassword() ? 'visibility_off' : 'visibility' }}</mat-icon>
</button> </button>
<mat-hint>Minimum of 5 characters</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>
} }
@ -148,7 +152,7 @@
matInput matInput
[type]="showConfirmPassword() ? 'text' : 'password'" [type]="showConfirmPassword() ? 'text' : 'password'"
formControlName="confirmPassword" formControlName="confirmPassword"
placeholder="Confirm your new password" placeholder="Type the new password again"
/> />
<button <button
mat-icon-button mat-icon-button
@ -162,6 +166,7 @@
showConfirmPassword() ? 'visibility_off' : 'visibility' showConfirmPassword() ? 'visibility_off' : 'visibility'
}}</mat-icon> }}</mat-icon>
</button> </button>
<mat-hint>Must match exactly with your new password</mat-hint>
@if (getConfirmPasswordError()) { @if (getConfirmPasswordError()) {
<mat-error>{{ getConfirmPasswordError() }}</mat-error> <mat-error>{{ getConfirmPasswordError() }}</mat-error>
} }
@ -178,7 +183,7 @@
[disabled]="adminCredentialsForm.invalid" [disabled]="adminCredentialsForm.invalid"
(click)="onSaveAdminCredentials()" (click)="onSaveAdminCredentials()"
> >
Save admin password Update Administrator Password
</button> </button>
</mat-card-actions> </mat-card-actions>
</mat-card> </mat-card>

View File

@ -1,13 +1,5 @@
@import '../../../../../../../src/assets/styles/design-tokens'; @import '../../../../../../../src/assets/styles/design-tokens';
.branding-section {
@extend .ov-section-card-primary;
}
.access-section {
@extend .ov-section-card-accent;
}
.form-field-header { .form-field-header {
position: relative; position: relative;
} }
@ -49,7 +41,6 @@
.password-field { .password-field {
::ng-deep { ::ng-deep {
.mat-mdc-form-field { .mat-mdc-form-field {
// Agregar indicador visual para campo requerido
.mat-mdc-floating-label { .mat-mdc-floating-label {
&.mdc-floating-label--required::after { &.mdc-floating-label--required::after {
content: ' *'; content: ' *';
@ -61,7 +52,6 @@
} }
} }
// Estilos adicionales para mejorar la apariencia general
.form-section { .form-section {
margin-bottom: var(--ov-meet-spacing-lg, 24px); margin-bottom: var(--ov-meet-spacing-lg, 24px);
@ -83,7 +73,6 @@
} }
} }
// Specific form customizations
.mat-mdc-form-field { .mat-mdc-form-field {
width: 100%; width: 100%;