From 0e9dcc2b1f2ba18dcd3625534c9ec49d30c84b71 Mon Sep 17 00:00:00 2001 From: Nicoleta Panaghiu Date: Fri, 14 Jun 2024 12:28:53 +0300 Subject: [PATCH] RED-9321: refactored admin module. --- apps/red-ui/src/app/app-routing.module.ts | 2 +- .../src/app/modules/admin/admin.module.ts | 139 ------------------ ...dmin-routing.module.ts => admin.routes.ts} | 23 +-- .../base-admin-screen.component.ts | 4 + .../base-dossier-template-screen.component.ts | 16 ++ .../base-entity-screen.component.ts | 19 ++- .../users-stats/users-stats.component.ts | 5 + ...clone-dossier-template-dialog.component.ts | 7 +- .../add-edit-user-dialog.component.ts | 11 +- .../reset-password.component.ts | 8 +- .../user-details/user-details.component.ts | 9 +- .../add-entity-dialog.component.ts | 13 +- .../audit-info-dialog.component.ts | 7 +- .../configure-certificate-dialog.component.ts | 27 +++- .../kms-signature-configuration.component.ts | 12 +- .../pkcs-signature-configuration.component.ts | 7 +- .../edit-color-dialog.component.ts | 10 +- .../smtp-auth-dialog.component.ts | 9 +- .../upload-dictionary-dialog.component.ts | 5 +- .../screens/audit/audit-screen.component.ts | 43 +++++- .../component-mappings-screen.component.ts | 26 ++++ .../default-colors-screen.component.ts | 16 +- .../digital-signature-screen.component.ts | 23 ++- .../entities-listing-screen.component.ts | 29 +++- .../general-config-form.component.ts | 9 +- .../general-config-screen.component.ts | 5 +- .../smtp-form/smtp-form.component.ts | 16 +- .../system-preferences-form.component.ts | 9 +- .../user-listing-screen.component.ts | 26 +++- .../admin/services/admin-dialog.service.ts | 2 +- 30 files changed, 348 insertions(+), 189 deletions(-) delete mode 100644 apps/red-ui/src/app/modules/admin/admin.module.ts rename apps/red-ui/src/app/modules/admin/{admin-routing.module.ts => admin.routes.ts} (94%) diff --git a/apps/red-ui/src/app/app-routing.module.ts b/apps/red-ui/src/app/app-routing.module.ts index 670377328..a6dbcb214 100644 --- a/apps/red-ui/src/app/app-routing.module.ts +++ b/apps/red-ui/src/app/app-routing.module.ts @@ -103,7 +103,7 @@ const mainRoutes: IqserRoutes = [ }, { path: 'admin', - loadChildren: () => import('./modules/admin/admin.module').then(m => m.AdminModule), + loadChildren: () => import('./modules/admin/admin.routes'), canActivate: [RedRoleGuard], }, { diff --git a/apps/red-ui/src/app/modules/admin/admin.module.ts b/apps/red-ui/src/app/modules/admin/admin.module.ts deleted file mode 100644 index 946cba067..000000000 --- a/apps/red-ui/src/app/modules/admin/admin.module.ts +++ /dev/null @@ -1,139 +0,0 @@ -import { NgModule } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { AdminRoutingModule } from './admin-routing.module'; -import { SharedModule } from '@shared/shared.module'; -import { AuditScreenComponent } from './screens/audit/audit-screen.component'; -import { DefaultColorsScreenComponent } from './screens/default-colors/default-colors-screen.component'; -import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component'; -import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component'; -import { UserListingScreenComponent } from './screens/user-listing/user-listing-screen.component'; -import { DossierTemplateBreadcrumbsComponent } from './shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component'; -import { AddEntityDialogComponent } from './dialogs/add-entity-dialog/add-entity-dialog.component'; -import { EditColorDialogComponent } from './dialogs/edit-color-dialog/edit-color-dialog.component'; -import { AdminDialogService } from './services/admin-dialog.service'; -import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component'; -import { SmtpAuthDialogComponent } from './dialogs/smtp-auth-dialog/smtp-auth-dialog.component'; -import { AddEditUserDialogComponent } from './dialogs/add-edit-user-dialog/add-edit-user-dialog.component'; -import { UsersStatsComponent } from './components/users-stats/users-stats.component'; -import { ResetPasswordComponent } from './dialogs/add-edit-user-dialog/reset-password/reset-password.component'; -import { UserDetailsComponent } from './dialogs/add-edit-user-dialog/user-details/user-details.component'; -import { AuditService } from './services/audit.service'; -import { DigitalSignatureService } from './services/digital-signature.service'; -import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component'; -import { RulesService } from './services/rules.service'; -import { SmtpConfigService } from './services/smtp-config.service'; -import { UploadDictionaryDialogComponent } from './dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component'; -import { GeneralConfigFormComponent } from './screens/general-config/general-config-form/general-config-form.component'; -import { SmtpFormComponent } from './screens/general-config/smtp-form/smtp-form.component'; -import { BaseDossierTemplateScreenComponent } from './base-dossier-templates-screen/base-dossier-template-screen.component'; -import { A11yModule } from '@angular/cdk/a11y'; -import { BaseEntityScreenComponent } from './base-entity-screen/base-entity-screen.component'; -import { AdminSideNavComponent } from './shared/components/admin-side-nav/admin-side-nav.component'; -import { SystemPreferencesFormComponent } from './screens/general-config/system-preferences-form/system-preferences-form.component'; -import { ConfigureCertificateDialogComponent } from './dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component'; -import { PkcsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component'; -import { KmsSignatureConfigurationComponent } from './dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component'; -import { - ChevronButtonComponent, - CircleButtonComponent, - DetailsRadioComponent, - EditableInputComponent, - EmptyStateComponent, - HasScrollbarDirective, - HumanizePipe, - IconButtonComponent, - InputWithActionComponent, - IqserAllowDirective, - IqserDenyDirective, - IqserHelpModeModule, - IqserListingModule, - RoundCheckboxComponent, - UploadFileComponent, -} from '@iqser/common-ui'; -import { TranslateModule } from '@ngx-translate/core'; -import { AuditInfoDialogComponent } from './dialogs/audit-info-dialog/audit-info-dialog.component'; -import { DossierTemplateActionsComponent } from './shared/components/dossier-template-actions/dossier-template-actions.component'; -import { InitialsAvatarComponent, IqserUsersModule } from '@iqser/common-ui/lib/users'; -import { SelectComponent } from '@shared/components/select/select.component'; -import { PaginationComponent } from '@common-ui/pagination/pagination.component'; -import { AddCloneDossierTemplateDialogComponent } from './dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component'; -import { ComponentMappingsScreenComponent } from './screens/component-mappings/component-mappings-screen.component'; -import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component'; -import { NamePipe } from '@common-ui/users/name.pipe'; -import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component'; - -const dialogs = [ - AddCloneDossierTemplateDialogComponent, - AddEntityDialogComponent, - EditColorDialogComponent, - SmtpAuthDialogComponent, - AddEditUserDialogComponent, - UploadDictionaryDialogComponent, - ConfigureCertificateDialogComponent, - AuditInfoDialogComponent, -]; - -const screens = [ - AuditScreenComponent, - DefaultColorsScreenComponent, - EntitiesListingScreenComponent, - DigitalSignatureScreenComponent, - UserListingScreenComponent, - GeneralConfigScreenComponent, - ComponentMappingsScreenComponent, -]; - -const components = [ - UsersStatsComponent, - ResetPasswordComponent, - UserDetailsComponent, - BaseAdminScreenComponent, - BaseDossierTemplateScreenComponent, - BaseEntityScreenComponent, - GeneralConfigFormComponent, - SmtpFormComponent, - SystemPreferencesFormComponent, - PkcsSignatureConfigurationComponent, - KmsSignatureConfigurationComponent, - - ...dialogs, - ...screens, -]; - -@NgModule({ - declarations: [...components], - providers: [AdminDialogService, AuditService, DigitalSignatureService, RulesService, SmtpConfigService], - imports: [ - CommonModule, - SharedModule, - AdminRoutingModule, - A11yModule, - IqserUsersModule, - TranslateModule, - HumanizePipe, - IqserListingModule, - IqserHelpModeModule, - AdminSideNavComponent, - DossierTemplateActionsComponent, - DossierTemplateBreadcrumbsComponent, - IconButtonComponent, - CircleButtonComponent, - ChevronButtonComponent, - EmptyStateComponent, - HasScrollbarDirective, - RoundCheckboxComponent, - InputWithActionComponent, - EditableInputComponent, - DetailsRadioComponent, - IqserAllowDirective, - IqserDenyDirective, - SelectComponent, - PaginationComponent, - AnnotationIconComponent, - InitialsAvatarComponent, - UploadFileComponent, - NamePipe, - AddEditEntityComponent, - ], -}) -export class AdminModule {} diff --git a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts b/apps/red-ui/src/app/modules/admin/admin.routes.ts similarity index 94% rename from apps/red-ui/src/app/modules/admin/admin-routing.module.ts rename to apps/red-ui/src/app/modules/admin/admin.routes.ts index 5f101b124..27e2ed7a6 100644 --- a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts +++ b/apps/red-ui/src/app/modules/admin/admin.routes.ts @@ -1,4 +1,3 @@ -import { NgModule } from '@angular/core'; import { CompositeRouteGuard, IqserPermissionsGuard, IqserRoutes } from '@iqser/common-ui'; import { RedRoleGuard } from '@users/red-role.guard'; import { EntitiesListingScreenComponent } from './screens/entities-listing/entities-listing-screen.component'; @@ -7,7 +6,6 @@ import { DefaultColorsScreenComponent } from './screens/default-colors/default-c import { UserListingScreenComponent } from './screens/user-listing/user-listing-screen.component'; import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component'; import { AuditScreenComponent } from './screens/audit/audit-screen.component'; -import { RouterModule } from '@angular/router'; import { GeneralConfigScreenComponent } from './screens/general-config/general-config-screen.component'; import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component'; import { BaseDossierTemplateScreenComponent } from './base-dossier-templates-screen/base-dossier-template-screen.component'; @@ -20,6 +18,11 @@ import { PermissionsGuard } from '@guards/permissions-guard'; import { Roles } from '@users/roles'; import { IqserAuthGuard } from '@iqser/common-ui/lib/users'; import { ComponentMappingsScreenComponent } from './screens/component-mappings/component-mappings-screen.component'; +import { AdminDialogService } from './services/admin-dialog.service'; +import { AuditService } from './services/audit.service'; +import { DigitalSignatureService } from './services/digital-signature.service'; +import { RulesService } from './services/rules.service'; +import { SmtpConfigService } from './services/smtp-config.service'; const entityRoutes: IqserRoutes = [ { @@ -70,6 +73,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [ }, type: 'ENTITY', }, + providers: [RulesService], }, { path: 'component-rules', @@ -84,6 +88,7 @@ const dossierTemplateIdRoutes: IqserRoutes = [ }, type: 'COMPONENT', }, + providers: [RulesService], }, { path: 'component-mappings', @@ -178,7 +183,7 @@ const dossierTemplatesRoutes: IqserRoutes = [ }, ]; -const routes: IqserRoutes = [ +export default [ { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' }, { path: 'dossier-templates', @@ -196,6 +201,7 @@ const routes: IqserRoutes = [ { path: '', component: BaseAdminScreenComponent, + providers: [AdminDialogService], children: [ { path: 'users', @@ -243,6 +249,7 @@ const routes: IqserRoutes = [ redirectTo: '/', }, }, + providers: [DigitalSignatureService], }, { path: 'audit', @@ -254,6 +261,7 @@ const routes: IqserRoutes = [ redirectTo: '/', }, }, + providers: [AuditService], }, { path: 'general-config', @@ -267,13 +275,8 @@ const routes: IqserRoutes = [ redirectTo: '/', }, }, + providers: [SmtpConfigService], }, ], }, -]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule], -}) -export class AdminRoutingModule {} +] satisfies IqserRoutes; diff --git a/apps/red-ui/src/app/modules/admin/base-admin-screen/base-admin-screen.component.ts b/apps/red-ui/src/app/modules/admin/base-admin-screen/base-admin-screen.component.ts index 6da915279..f0917f16c 100644 --- a/apps/red-ui/src/app/modules/admin/base-admin-screen/base-admin-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/base-admin-screen/base-admin-screen.component.ts @@ -1,7 +1,11 @@ import { Component } from '@angular/core'; +import { AdminSideNavComponent } from '../shared/components/admin-side-nav/admin-side-nav.component'; +import { RouterOutlet } from '@angular/router'; @Component({ templateUrl: './base-admin-screen.component.html', styleUrls: ['./base-admin-screen.component.scss'], + standalone: true, + imports: [AdminSideNavComponent, RouterOutlet], }) export class BaseAdminScreenComponent {} diff --git a/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.ts b/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.ts index 298ec017c..d1da13877 100644 --- a/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/base-dossier-templates-screen/base-dossier-template-screen.component.ts @@ -1,7 +1,23 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { DossierTemplateBreadcrumbsComponent } from '../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component'; +import { DossierTemplateActionsComponent } from '../shared/components/dossier-template-actions/dossier-template-actions.component'; +import { CircleButtonComponent } from '@iqser/common-ui'; +import { RouterLink, RouterOutlet } from '@angular/router'; +import { TranslateModule } from '@ngx-translate/core'; +import { AdminSideNavComponent } from '../shared/components/admin-side-nav/admin-side-nav.component'; @Component({ templateUrl: './base-dossier-template-screen.component.html', changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [ + DossierTemplateBreadcrumbsComponent, + DossierTemplateActionsComponent, + CircleButtonComponent, + RouterLink, + TranslateModule, + AdminSideNavComponent, + RouterOutlet, + ], }) export class BaseDossierTemplateScreenComponent {} diff --git a/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts b/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts index 1bd8db957..6022e0fbb 100644 --- a/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/base-entity-screen/base-entity-screen.component.ts @@ -1,19 +1,34 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { DOSSIER_TEMPLATE_ID, ENTITY_TYPE } from '@red/domain'; -import { Router } from '@angular/router'; +import { Router, RouterLink, RouterOutlet } from '@angular/router'; import { firstValueFrom, Observable } from 'rxjs'; import { AdminDialogService } from '../services/admin-dialog.service'; import { DictionaryService } from '@services/entity-services/dictionary.service'; -import { LoadingService } from '@iqser/common-ui'; +import { CircleButtonComponent, LoadingService } from '@iqser/common-ui'; import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; import { map } from 'rxjs/operators'; import { PermissionsService } from '@services/permissions.service'; import { getParam } from '@iqser/common-ui/lib/utils'; +import { DossierTemplateBreadcrumbsComponent } from '../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component'; +import { AsyncPipe, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { AdminSideNavComponent } from '../shared/components/admin-side-nav/admin-side-nav.component'; @Component({ templateUrl: './base-entity-screen.component.html', changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [ + DossierTemplateBreadcrumbsComponent, + CircleButtonComponent, + NgIf, + AsyncPipe, + TranslateModule, + RouterLink, + AdminSideNavComponent, + RouterOutlet, + ], }) export class BaseEntityScreenComponent implements OnInit { readonly disabledItems$: Observable; diff --git a/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts b/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts index 01ad53850..f90183514 100644 --- a/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts +++ b/apps/red-ui/src/app/modules/admin/components/users-stats/users-stats.component.ts @@ -1,10 +1,15 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; import { DonutChartConfig } from '@red/domain'; +import { CircleButtonComponent } from '@iqser/common-ui'; +import { TranslateModule } from '@ngx-translate/core'; +import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component'; @Component({ selector: 'redaction-users-stats', templateUrl: './users-stats.component.html', styleUrls: ['./users-stats.component.scss'], + standalone: true, + imports: [CircleButtonComponent, TranslateModule, DonutChartComponent], }) export class UsersStatsComponent { @Output() toggleCollapse = new EventEmitter(); diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts index f3805d392..7d5632859 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-clone-dossier-template-dialog/add-clone-dossier-template-dialog.component.ts @@ -1,12 +1,13 @@ import { HttpStatusCode } from '@angular/common/http'; import { Component, Inject } from '@angular/core'; -import { Validators } from '@angular/forms'; +import { ReactiveFormsModule, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { BaseDialogComponent, getConfig, SaveOptions } from '@iqser/common-ui'; +import { BaseDialogComponent, CircleButtonComponent, getConfig, IconButtonComponent, SaveOptions } from '@iqser/common-ui'; import { DossierTemplate } from '@red/domain'; import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service'; import { Router } from '@angular/router'; +import { TranslateModule } from '@ngx-translate/core'; export interface CloneTemplateData { dossierTemplateId?: string; @@ -15,6 +16,8 @@ export interface CloneTemplateData { @Component({ templateUrl: './add-clone-dossier-template-dialog.component.html', styleUrls: ['./add-clone-dossier-template-dialog.component.scss'], + standalone: true, + imports: [TranslateModule, ReactiveFormsModule, IconButtonComponent, CircleButtonComponent], }) export class AddCloneDossierTemplateDialogComponent extends BaseDialogComponent { readonly dossierTemplate?: DossierTemplate; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/add-edit-user-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/add-edit-user-dialog.component.ts index 9d8e12ad2..9a17d38f9 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/add-edit-user-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/add-edit-user-dialog.component.ts @@ -2,17 +2,24 @@ import { Component, Inject, ViewChild } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { User } from '@red/domain'; import { UserDetailsComponent } from './user-details/user-details.component'; -import { BaseDialogComponent } from '@iqser/common-ui'; +import { BaseDialogComponent, CircleButtonComponent } from '@iqser/common-ui'; +import { ResetPasswordComponent } from './reset-password/reset-password.component'; +import { AdminDialogService } from '../../services/admin-dialog.service'; @Component({ selector: 'redaction-add-edit-user-dialog', templateUrl: './add-edit-user-dialog.component.html', + standalone: true, + imports: [UserDetailsComponent, ResetPasswordComponent, CircleButtonComponent], }) export class AddEditUserDialogComponent extends BaseDialogComponent { resettingPassword = false; @ViewChild(UserDetailsComponent) private readonly _userDetailsComponent: UserDetailsComponent; - constructor(protected readonly _dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) readonly user: User) { + constructor( + protected readonly _dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) readonly user: User, + ) { super(_dialogRef, !!user); } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts index 9c4871613..973402838 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/reset-password/reset-password.component.ts @@ -1,13 +1,17 @@ import { Component, EventEmitter, Input, Output } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { UserService } from '@users/user.service'; -import { IconButtonTypes, LoadingService } from '@iqser/common-ui'; +import { IconButtonComponent, IconButtonTypes, LoadingService } from '@iqser/common-ui'; import { User } from '@red/domain'; import { firstValueFrom } from 'rxjs'; +import { TranslateModule } from '@ngx-translate/core'; +import { NamePipe } from '@common-ui/users/name.pipe'; @Component({ selector: 'redaction-reset-password', templateUrl: './reset-password.component.html', + standalone: true, + imports: [TranslateModule, NamePipe, ReactiveFormsModule, IconButtonComponent], }) export class ResetPasswordComponent { readonly iconButtonTypes = IconButtonTypes; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts index 7222506d5..7dd08ff7a 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-edit-user-dialog/user-details/user-details.component.ts @@ -1,7 +1,7 @@ import { Component, EventEmitter, Input, OnChanges, Output } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms'; import { AdminDialogService } from '../../../services/admin-dialog.service'; -import { BaseFormComponent, LoadingService, Toaster } from '@iqser/common-ui'; +import { BaseFormComponent, IconButtonComponent, LoadingService, Toaster } from '@iqser/common-ui'; import { rolesTranslations } from '@translations/roles-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { User } from '@red/domain'; @@ -9,11 +9,16 @@ import { UserService } from '@users/user.service'; import { HttpStatusCode } from '@angular/common/http'; import { firstValueFrom } from 'rxjs'; import { IProfileUpdateRequest } from '@iqser/common-ui/lib/users'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatCheckbox } from '@angular/material/checkbox'; +import { NgForOf, NgIf } from '@angular/common'; @Component({ selector: 'redaction-user-details', templateUrl: './user-details.component.html', styleUrls: ['./user-details.component.scss'], + standalone: true, + imports: [TranslateModule, ReactiveFormsModule, MatCheckbox, NgForOf, IconButtonComponent, NgIf], }) export class UserDetailsComponent extends BaseFormComponent implements OnChanges { /** e.g. a RED_ADMIN is automatically a RED_USER_ADMIN => can't disable RED_USER_ADMIN as long as RED_ADMIN is checked */ diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.ts index 9d36614e6..8a0c01ec1 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/add-entity-dialog/add-entity-dialog.component.ts @@ -1,7 +1,16 @@ import { Component, inject, ViewChild } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { BaseDialogComponent, getConfig, IconButtonTypes } from '@iqser/common-ui'; +import { + BaseDialogComponent, + CircleButtonComponent, + getConfig, + IconButtonComponent, + IconButtonTypes, + IqserHelpModeModule, +} from '@iqser/common-ui'; import { AddEditEntityComponent } from '@shared/components/add-edit-entity/add-edit-entity.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgIf } from '@angular/common'; interface DialogData { readonly dossierTemplateId: string; @@ -10,6 +19,8 @@ interface DialogData { @Component({ templateUrl: './add-entity-dialog.component.html', styleUrls: ['./add-entity-dialog.component.scss'], + standalone: true, + imports: [AddEditEntityComponent, TranslateModule, IconButtonComponent, IqserHelpModeModule, NgIf, CircleButtonComponent], }) export class AddEntityDialogComponent extends BaseDialogComponent { @ViewChild(AddEditEntityComponent, { static: true }) private readonly _addEditEntityComponent: AddEditEntityComponent; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/audit-info-dialog/audit-info-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/audit-info-dialog/audit-info-dialog.component.ts index 323176785..d038df97a 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/audit-info-dialog/audit-info-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/audit-info-dialog/audit-info-dialog.component.ts @@ -1,8 +1,9 @@ -import { KeyValue } from '@angular/common'; +import { KeyValue, KeyValuePipe, NgForOf } from '@angular/common'; import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { BaseDialogComponent } from '@iqser/common-ui'; +import { BaseDialogComponent, CircleButtonComponent, HumanizePipe } from '@iqser/common-ui'; import { IAudit } from '@red/domain'; +import { TranslateModule } from '@ngx-translate/core'; interface DialogData { readonly auditEntry: IAudit; @@ -15,6 +16,8 @@ type OrderFn = (a: KeyValue, b: KeyValue) => num templateUrl: './audit-info-dialog.component.html', styleUrls: ['./audit-info-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [TranslateModule, NgForOf, KeyValuePipe, HumanizePipe, CircleButtonComponent], }) export class AuditInfoDialogComponent extends BaseDialogComponent { constructor( diff --git a/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component.ts index 8029c5ec0..e1b29d59f 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/configure-certificate-dialog.component.ts @@ -1,12 +1,22 @@ import { ChangeDetectorRef, Component, ViewChild } from '@angular/core'; import { digitalSignatureDialogTranslations } from '../../translations/digital-signature-dialog-translations'; -import { BaseDialogComponent, DetailsRadioOption } from '@iqser/common-ui'; -import { MatDialogRef } from '@angular/material/dialog'; +import { + BaseDialogComponent, + CircleButtonComponent, + DetailsRadioComponent, + DetailsRadioOption, + IconButtonComponent, +} from '@iqser/common-ui'; +import { MatDialogClose, MatDialogRef } from '@angular/material/dialog'; import { PkcsSignatureConfigurationComponent } from './form/pkcs-signature-configuration/pkcs-signature-configuration.component'; import { KmsSignatureConfigurationComponent } from './form/kms-signature-configuration/kms-signature-configuration.component'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { HttpStatusCode } from '@angular/common/http'; import { DigitalSignatureOption, DigitalSignatureOptions } from '@red/domain'; +import { NgIf } from '@angular/common'; +import { ReactiveFormsModule } from '@angular/forms'; +import { TranslateModule } from '@ngx-translate/core'; +import { DigitalSignatureService } from '../../services/digital-signature.service'; const DEFAULT_DIALOG_WIDTH = '662px'; const KMS_SIGNATURE_DIALOG_WIDTH = '810px'; @@ -14,6 +24,19 @@ const KMS_SIGNATURE_DIALOG_WIDTH = '810px'; @Component({ templateUrl: './configure-certificate-dialog.component.html', styleUrls: ['./configure-certificate-dialog.component.scss'], + standalone: true, + imports: [ + DetailsRadioComponent, + NgIf, + ReactiveFormsModule, + TranslateModule, + PkcsSignatureConfigurationComponent, + KmsSignatureConfigurationComponent, + IconButtonComponent, + MatDialogClose, + CircleButtonComponent, + ], + providers: [DigitalSignatureService], }) export class ConfigureCertificateDialogComponent extends BaseDialogComponent { @ViewChild(PkcsSignatureConfigurationComponent) pkcsSignatureConfigurationComponent: PkcsSignatureConfigurationComponent; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component.ts index f709855c3..5d6cd3e8c 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/kms-signature-configuration/kms-signature-configuration.component.ts @@ -1,20 +1,28 @@ import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; -import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms'; import { BaseSignatureConfigurationComponent } from '../base-signature-configuration-component'; import { DigitalSignatureOptions, IKmsDigitalSignature, IKmsDigitalSignatureRequest } from '@red/domain'; import { firstValueFrom } from 'rxjs'; import { DigitalSignatureService } from '../../../../services/digital-signature.service'; +import { UploadFileComponent } from '@iqser/common-ui'; +import { NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-kms-signature-configuration', templateUrl: './kms-signature-configuration.component.html', styleUrls: ['./kms-signature-configuration.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [UploadFileComponent, ReactiveFormsModule, NgIf, TranslateModule], }) export class KmsSignatureConfigurationComponent extends BaseSignatureConfigurationComponent implements OnInit { @Input() digitalSignature!: IKmsDigitalSignatureRequest; - constructor(protected readonly _digitalSignatureService: DigitalSignatureService, private readonly _formBuilder: UntypedFormBuilder) { + constructor( + protected readonly _digitalSignatureService: DigitalSignatureService, + private readonly _formBuilder: UntypedFormBuilder, + ) { super(_digitalSignatureService, DigitalSignatureOptions.KMS); } diff --git a/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component.ts index f3ca8e9ee..deb4f039f 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/configure-digital-signature-dialog/form/pkcs-signature-configuration/pkcs-signature-configuration.component.ts @@ -1,16 +1,21 @@ import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; -import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms'; import { DigitalSignatureOptions, IPkcsDigitalSignature, IPkcsDigitalSignatureRequest } from '@red/domain'; import { lastIndexOfEnd } from '@utils/functions'; import { firstValueFrom } from 'rxjs'; import { DigitalSignatureService } from '../../../../services/digital-signature.service'; import { BaseSignatureConfigurationComponent } from '../base-signature-configuration-component'; +import { UploadFileComponent } from '@iqser/common-ui'; +import { NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-pkcs-signature-configuration', templateUrl: './pkcs-signature-configuration.component.html', styleUrls: ['./pkcs-signature-configuration.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [UploadFileComponent, ReactiveFormsModule, NgIf, TranslateModule], }) export class PkcsSignatureConfigurationComponent extends BaseSignatureConfigurationComponent implements OnInit { @Input() digitalSignature!: IPkcsDigitalSignatureRequest; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts index cdb50b7ce..0dd76f928 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/edit-color-dialog/edit-color-dialog.component.ts @@ -1,12 +1,16 @@ import { Component, Inject } from '@angular/core'; import { DefaultColorType } from '@red/domain'; -import { BaseDialogComponent, IconButtonTypes } from '@iqser/common-ui'; -import { UntypedFormGroup, Validators } from '@angular/forms'; +import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent, IconButtonTypes } from '@iqser/common-ui'; +import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms'; import { defaultColorsTranslations } from '@translations/default-colors-translations'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { firstValueFrom } from 'rxjs'; import { DefaultColorsService } from '@services/entity-services/default-colors.service'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { TranslateModule } from '@ngx-translate/core'; +import { ColorPickerModule } from 'ngx-color-picker'; +import { MatIcon } from '@angular/material/icon'; +import { NgIf } from '@angular/common'; interface IEditColorData { colorKey: DefaultColorType; @@ -16,6 +20,8 @@ interface IEditColorData { @Component({ templateUrl: './edit-color-dialog.component.html', styleUrls: ['./edit-color-dialog.component.scss'], + standalone: true, + imports: [ReactiveFormsModule, TranslateModule, ColorPickerModule, MatIcon, NgIf, IconButtonComponent, CircleButtonComponent], }) export class EditColorDialogComponent extends BaseDialogComponent { readonly iconButtonTypes = IconButtonTypes; diff --git a/apps/red-ui/src/app/modules/admin/dialogs/smtp-auth-dialog/smtp-auth-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/smtp-auth-dialog/smtp-auth-dialog.component.ts index f87cd4345..a8879ebbb 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/smtp-auth-dialog/smtp-auth-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/smtp-auth-dialog/smtp-auth-dialog.component.ts @@ -1,13 +1,16 @@ import { Component, Inject } from '@angular/core'; -import { Validators } from '@angular/forms'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { BaseDialogComponent } from '@iqser/common-ui'; +import { ReactiveFormsModule, Validators } from '@angular/forms'; +import { MAT_DIALOG_DATA, MatDialogClose, MatDialogRef } from '@angular/material/dialog'; +import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui'; import { ISmtpConfiguration } from '@red/domain'; import { getCurrentUser } from '@users/user.service'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-smtp-auth-dialog', templateUrl: './smtp-auth-dialog.component.html', + standalone: true, + imports: [ReactiveFormsModule, TranslateModule, IconButtonComponent, CircleButtonComponent, MatDialogClose], }) export class SmtpAuthDialogComponent extends BaseDialogComponent { readonly #currentUser = getCurrentUser(); diff --git a/apps/red-ui/src/app/modules/admin/dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component.ts b/apps/red-ui/src/app/modules/admin/dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component.ts index f9376b2e2..824ba642b 100644 --- a/apps/red-ui/src/app/modules/admin/dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component.ts +++ b/apps/red-ui/src/app/modules/admin/dialogs/upload-dictionary-dialog/upload-dictionary-dialog.component.ts @@ -1,11 +1,14 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; import { MatDialogRef } from '@angular/material/dialog'; -import { IconButtonTypes } from '@iqser/common-ui'; +import { IconButtonComponent, IconButtonTypes } from '@iqser/common-ui'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ templateUrl: './upload-dictionary-dialog.component.html', styleUrls: ['./upload-dictionary-dialog.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [IconButtonComponent, TranslateModule], }) export class UploadDictionaryDialogComponent { readonly iconButtonTypes = IconButtonTypes; diff --git a/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts index 012371425..424f8d01a 100644 --- a/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/audit/audit-screen.component.ts @@ -1,8 +1,17 @@ import { Component, inject, OnDestroy, OnInit } from '@angular/core'; -import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { IqserPermissionsService, ListingComponent, listingProvidersFactory, LoadingService, TableColumnConfig } from '@iqser/common-ui'; -import { getCurrentUser } from '@iqser/common-ui/lib/users'; +import { + CircleButtonComponent, + HumanizePipe, + IqserListingModule, + IqserPermissionsService, + ListingComponent, + listingProvidersFactory, + LoadingService, + TableColumnConfig, +} from '@iqser/common-ui'; +import { getCurrentUser, InitialsAvatarComponent } from '@iqser/common-ui/lib/users'; import { Audit, IAudit, IAuditResponse, IAuditSearchRequest, User } from '@red/domain'; import { RouterHistoryService } from '@services/router-history.service'; import { auditCategoriesTranslations } from '@translations/audit-categories-translations'; @@ -12,6 +21,13 @@ import { Dayjs } from 'dayjs'; import { firstValueFrom } from 'rxjs'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { AuditService } from '../../services/audit.service'; +import { TranslateModule } from '@ngx-translate/core'; +import { PaginationComponent } from '@common-ui/pagination'; +import { MatFormField, MatSuffix } from '@angular/material/form-field'; +import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select'; +import { AsyncPipe, DatePipe, NgForOf, NgIf } from '@angular/common'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { MatIcon } from '@angular/material/icon'; const PAGE_SIZE = 50; @@ -19,6 +35,27 @@ const PAGE_SIZE = 50; templateUrl: './audit-screen.component.html', styleUrls: ['./audit-screen.component.scss'], providers: listingProvidersFactory(AuditScreenComponent), + standalone: true, + imports: [ + IqserListingModule, + TranslateModule, + PaginationComponent, + ReactiveFormsModule, + MatFormField, + MatOption, + NgForOf, + InitialsAvatarComponent, + NgIf, + MatIcon, + MatSuffix, + AsyncPipe, + DatePipe, + HumanizePipe, + CircleButtonComponent, + MatSelectTrigger, + MatSelect, + MatDatepickerModule, + ], }) export class AuditScreenComponent extends ListingComponent implements OnInit, OnDestroy { private _previousFrom: Dayjs; diff --git a/apps/red-ui/src/app/modules/admin/screens/component-mappings/component-mappings-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/component-mappings/component-mappings-screen.component.ts index 44065a958..e4ffec6fa 100644 --- a/apps/red-ui/src/app/modules/admin/screens/component-mappings/component-mappings-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/component-mappings/component-mappings-screen.component.ts @@ -6,6 +6,11 @@ import { LoadingService, IconButtonTypes, IqserDialog, + CircleButtonComponent, + IqserListingModule, + InputWithActionComponent, + IconButtonComponent, + IqserAllowDirective, } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { defaultColorsTranslations } from '@translations/default-colors-translations'; @@ -19,11 +24,32 @@ import { map, tap } from 'rxjs/operators'; import { AddEditComponentMappingDialogComponent } from './add-edit-component-mapping-dialog/add-edit-component-mapping-dialog.component'; import { AdminDialogService } from '../../services/admin-dialog.service'; import { getParam } from '@common-ui/utils'; +import { DossierTemplateBreadcrumbsComponent } from '../../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component'; +import { AsyncPipe, NgIf } from '@angular/common'; +import { DossierTemplateActionsComponent } from '../../shared/components/dossier-template-actions/dossier-template-actions.component'; +import { TranslateModule } from '@ngx-translate/core'; +import { RouterLink } from '@angular/router'; +import { AdminSideNavComponent } from '../../shared/components/admin-side-nav/admin-side-nav.component'; @Component({ templateUrl: './component-mappings-screen.component.html', changeDetection: ChangeDetectionStrategy.OnPush, providers: listingProvidersFactory(ComponentMappingsScreenComponent), + standalone: true, + imports: [ + DossierTemplateBreadcrumbsComponent, + AsyncPipe, + NgIf, + DossierTemplateActionsComponent, + CircleButtonComponent, + TranslateModule, + RouterLink, + AdminSideNavComponent, + IqserListingModule, + InputWithActionComponent, + IconButtonComponent, + IqserAllowDirective, + ], }) export class ComponentMappingsScreenComponent extends ListingComponent implements OnInit { tableColumnConfigs: readonly TableColumnConfig[] = [ diff --git a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts index e1a4cb5a3..1e85cfa5f 100644 --- a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.ts @@ -1,6 +1,16 @@ import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { getConfig, IListable, ListingComponent, listingProvidersFactory, LoadingService, TableColumnConfig } from '@iqser/common-ui'; +import { + CircleButtonComponent, + getConfig, + IListable, + IqserAllowDirective, + IqserListingModule, + ListingComponent, + listingProvidersFactory, + LoadingService, + TableColumnConfig, +} from '@iqser/common-ui'; import { getCurrentUser } from '@iqser/common-ui/lib/users'; import { getParam } from '@iqser/common-ui/lib/utils'; import { DefaultColorTypes, DOSSIER_TEMPLATE_ID, User } from '@red/domain'; @@ -10,6 +20,8 @@ import { Roles } from '@users/roles'; import { combineLatest } from 'rxjs'; import { map, tap } from 'rxjs/operators'; import { AdminDialogService } from '../../services/admin-dialog.service'; +import { AsyncPipe, NgIf, NgStyle } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; interface ListItem extends IListable { readonly key: string; @@ -21,6 +33,8 @@ interface ListItem extends IListable { styleUrls: ['./default-colors-screen.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, providers: listingProvidersFactory(DefaultColorsScreenComponent), + standalone: true, + imports: [IqserListingModule, NgStyle, CircleButtonComponent, IqserAllowDirective, TranslateModule, AsyncPipe, NgIf], }) export class DefaultColorsScreenComponent extends ListingComponent implements OnInit { readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); diff --git a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts index 849dea75c..e54f6b61c 100644 --- a/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/digital-signature/digital-signature-screen.component.ts @@ -1,5 +1,13 @@ import { ChangeDetectorRef, Component, computed, OnInit, ViewChild } from '@angular/core'; -import { IconButtonTypes, IqserPermissionsService, LoadingService, Toaster } from '@iqser/common-ui'; +import { + EmptyStateComponent, + IconButtonComponent, + IconButtonTypes, + IqserListingModule, + IqserPermissionsService, + LoadingService, + Toaster, +} from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { RouterHistoryService } from '@services/router-history.service'; import { DigitalSignatureService } from '../../services/digital-signature.service'; @@ -10,11 +18,24 @@ import { KmsSignatureConfigurationComponent } from '../../dialogs/configure-digi import { DigitalSignatureOptions, IKmsDigitalSignatureRequest, IPkcsDigitalSignatureRequest, User } from '@red/domain'; import { Roles } from '@users/roles'; import { getCurrentUser } from '@iqser/common-ui/lib/users'; +import { AsyncPipe, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-digital-signature-screen', templateUrl: './digital-signature-screen.component.html', styleUrls: ['./digital-signature-screen.component.scss'], + standalone: true, + imports: [ + IqserListingModule, + EmptyStateComponent, + NgIf, + TranslateModule, + AsyncPipe, + PkcsSignatureConfigurationComponent, + KmsSignatureConfigurationComponent, + IconButtonComponent, + ], }) export class DigitalSignatureScreenComponent implements OnInit { @ViewChild(PkcsSignatureConfigurationComponent) pkcsSignatureConfigurationComponent: PkcsSignatureConfigurationComponent; diff --git a/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.ts index 9f59158a2..b72086c06 100644 --- a/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.ts @@ -1,6 +1,16 @@ import { Component, OnInit } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { IconButtonTypes, ListingComponent, listingProvidersFactory, LoadingService, TableColumnConfig } from '@iqser/common-ui'; +import { + CircleButtonComponent, + IconButtonComponent, + IconButtonTypes, + InputWithActionComponent, + IqserListingModule, + ListingComponent, + listingProvidersFactory, + LoadingService, + TableColumnConfig, +} from '@iqser/common-ui'; import { getParam } from '@iqser/common-ui/lib/utils'; import { Dictionary, DOSSIER_TEMPLATE_ID, DossierTemplateStats } from '@red/domain'; import { DictionariesMapService } from '@services/entity-services/dictionaries-map.service'; @@ -10,11 +20,28 @@ import { PermissionsService } from '@services/permissions.service'; import { firstValueFrom, Observable } from 'rxjs'; import { tap } from 'rxjs/operators'; import { AdminDialogService } from '../../services/admin-dialog.service'; +import { TranslateModule } from '@ngx-translate/core'; +import { AsyncPipe, NgIf, NgStyle } from '@angular/common'; +import { AnnotationIconComponent } from '@shared/components/annotation-icon/annotation-icon.component'; +import { RouterLink } from '@angular/router'; @Component({ templateUrl: './entities-listing-screen.component.html', styleUrls: ['./entities-listing-screen.component.scss'], providers: listingProvidersFactory(EntitiesListingScreenComponent), + standalone: true, + imports: [ + IqserListingModule, + TranslateModule, + CircleButtonComponent, + NgIf, + InputWithActionComponent, + IconButtonComponent, + NgStyle, + AnnotationIconComponent, + AsyncPipe, + RouterLink, + ], }) export class EntitiesListingScreenComponent extends ListingComponent implements OnInit { readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID); diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-form/general-config-form.component.ts b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-form/general-config-form.component.ts index f235e191a..9b8da7ce6 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-form/general-config-form.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-form/general-config-form.component.ts @@ -1,15 +1,20 @@ import { Component, OnInit } from '@angular/core'; -import { BaseFormComponent, IqserPermissionsService, LoadingService } from '@iqser/common-ui'; +import { BaseFormComponent, IconButtonComponent, IqserPermissionsService, LoadingService } from '@iqser/common-ui'; import { GeneralSettingsService } from '@services/general-settings.service'; import { IGeneralConfiguration } from '@red/domain'; import { ConfigService } from '@services/config.service'; -import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { firstValueFrom } from 'rxjs'; import { Roles } from '@users/roles'; +import { TranslateModule } from '@ngx-translate/core'; +import { NgIf } from '@angular/common'; +import { MatSlideToggle } from '@angular/material/slide-toggle'; @Component({ selector: 'redaction-general-config-form', templateUrl: './general-config-form.component.html', + standalone: true, + imports: [ReactiveFormsModule, TranslateModule, NgIf, MatSlideToggle, IconButtonComponent], }) export class GeneralConfigFormComponent extends BaseFormComponent implements OnInit { private _initialConfiguration: IGeneralConfiguration; diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts index 3dfa5c33e..6d0470579 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/general-config-screen.component.ts @@ -2,14 +2,17 @@ import { AfterViewInit, Component, inject, ViewChild } from '@angular/core'; import { UserService } from '@users/user.service'; import { GeneralConfigFormComponent } from './general-config-form/general-config-form.component'; import { SmtpFormComponent } from './smtp-form/smtp-form.component'; -import { BaseFormComponent } from '@iqser/common-ui'; +import { BaseFormComponent, IqserListingModule } from '@iqser/common-ui'; import { SystemPreferencesFormComponent } from './system-preferences-form/system-preferences-form.component'; import { RouterHistoryService } from '@services/router-history.service'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'redaction-general-config-screen', templateUrl: './general-config-screen.component.html', styleUrls: ['./general-config-screen.component.scss'], + standalone: true, + imports: [IqserListingModule, GeneralConfigFormComponent, SystemPreferencesFormComponent, SmtpFormComponent, TranslateModule], }) export class GeneralConfigScreenComponent extends BaseFormComponent implements AfterViewInit { readonly currentUser = inject(UserService).currentUser; diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts b/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts index 8cd62c76d..6ce6c1c74 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/smtp-form/smtp-form.component.ts @@ -1,16 +1,28 @@ import { Component, OnInit } from '@angular/core'; -import { FormBuilder, Validators } from '@angular/forms'; +import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; -import { BaseFormComponent, IconButtonTypes, IqserPermissionsService, LoadingService, Toaster } from '@iqser/common-ui'; +import { + BaseFormComponent, + IconButtonComponent, + IconButtonTypes, + IqserPermissionsService, + LoadingService, + Toaster, +} from '@iqser/common-ui'; import { ISmtpConfiguration } from '@red/domain'; import { Roles } from '@users/roles'; import { firstValueFrom } from 'rxjs'; import { AdminDialogService } from '../../../services/admin-dialog.service'; import { SmtpConfigService } from '../../../services/smtp-config.service'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatSlideToggle } from '@angular/material/slide-toggle'; +import { NgIf } from '@angular/common'; @Component({ selector: 'redaction-smtp-form', templateUrl: './smtp-form.component.html', + standalone: true, + imports: [ReactiveFormsModule, TranslateModule, MatSlideToggle, IconButtonComponent, NgIf], }) export class SmtpFormComponent extends BaseFormComponent implements OnInit { #initialConfiguration: ISmtpConfiguration; diff --git a/apps/red-ui/src/app/modules/admin/screens/general-config/system-preferences-form/system-preferences-form.component.ts b/apps/red-ui/src/app/modules/admin/screens/general-config/system-preferences-form/system-preferences-form.component.ts index 44f01f82a..a21dcfd73 100644 --- a/apps/red-ui/src/app/modules/admin/screens/general-config/system-preferences-form/system-preferences-form.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/general-config/system-preferences-form/system-preferences-form.component.ts @@ -1,17 +1,22 @@ import { Component } from '@angular/core'; -import { UntypedFormBuilder, Validators } from '@angular/forms'; +import { ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms'; import { SystemPreferences } from '@red/domain'; -import { BaseFormComponent, IqserPermissionsService, LoadingService } from '@iqser/common-ui'; +import { BaseFormComponent, IconButtonComponent, IqserPermissionsService, LoadingService } from '@iqser/common-ui'; import { SystemPreferencesService } from '@services/system-preferences.service'; import { systemPreferencesTranslations } from '@translations/system-preferences-translations'; import { Roles } from '@users/roles'; import { KeysOf } from '@iqser/common-ui/lib/utils'; +import { NgForOf, NgIf } from '@angular/common'; +import { TranslateModule } from '@ngx-translate/core'; +import { MatSlideToggle } from '@angular/material/slide-toggle'; export type ValueType = 'number' | 'string' | 'boolean'; @Component({ selector: 'redaction-system-preferences-form', templateUrl: './system-preferences-form.component.html', + standalone: true, + imports: [NgIf, ReactiveFormsModule, NgForOf, TranslateModule, MatSlideToggle, IconButtonComponent], }) export class SystemPreferencesFormComponent extends BaseFormComponent { #initialConfiguration: SystemPreferences; diff --git a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts index 790710995..ac0a427a4 100644 --- a/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts +++ b/apps/red-ui/src/app/modules/admin/screens/user-listing/user-listing-screen.component.ts @@ -2,7 +2,11 @@ import { Component, inject, OnInit } from '@angular/core'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { ButtonConfig, + CircleButtonComponent, + HasScrollbarDirective, IconButtonTypes, + IqserAllowDirective, + IqserListingModule, ListingComponent, listingProvidersFactory, LoadingService, @@ -10,7 +14,7 @@ import { TableColumnConfig, } from '@iqser/common-ui'; import { NestedFilter } from '@iqser/common-ui/lib/filtering'; -import { TranslateService } from '@ngx-translate/core'; +import { TranslateModule, TranslateService } from '@ngx-translate/core'; import { DonutChartConfig, User, UserTypes } from '@red/domain'; import { RouterHistoryService } from '@services/router-history.service'; import { TranslateChartService } from '@services/translate-chart.service'; @@ -21,6 +25,11 @@ import { firstValueFrom, Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { userTypeChecker, userTypeFilters } from '../../../../utils'; import { AdminDialogService } from '../../services/admin-dialog.service'; +import { UsersStatsComponent } from '../../components/users-stats/users-stats.component'; +import { AsyncPipe, NgClass, NgIf } from '@angular/common'; +import { InitialsAvatarComponent } from '@common-ui/users'; +import { MatSlideToggle } from '@angular/material/slide-toggle'; +import { MatIcon } from '@angular/material/icon'; function configToFilter({ key, label }: DonutChartConfig) { return new NestedFilter({ @@ -36,6 +45,21 @@ function configToFilter({ key, label }: DonutChartConfig) { entitiesService: UserService, component: UserListingScreenComponent, }), + standalone: true, + imports: [ + IqserListingModule, + TranslateModule, + UsersStatsComponent, + CircleButtonComponent, + HasScrollbarDirective, + NgIf, + AsyncPipe, + InitialsAvatarComponent, + MatSlideToggle, + MatIcon, + NgClass, + IqserAllowDirective, + ], }) export class UserListingScreenComponent extends ListingComponent implements OnInit { readonly routerHistoryService = inject(RouterHistoryService); diff --git a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts index f627f6b78..7eb857064 100644 --- a/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts +++ b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts @@ -35,7 +35,7 @@ type DialogType = | 'uploadDictionary' | 'configureCertificate'; -@Injectable() +@Injectable({ providedIn: 'root' }) export class AdminDialogService extends DialogService { protected readonly _config: DialogConfig = { confirm: {