diff --git a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts
index 3d4098c35..4114c2532 100644
--- a/apps/red-ui/src/app/modules/admin/admin-routing.module.ts
+++ b/apps/red-ui/src/app/modules/admin/admin-routing.module.ts
@@ -1,4 +1,4 @@
-import { NgModule } from '@angular/core';
+import { inject, 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';
@@ -20,148 +20,157 @@ 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 { LicenseService } from '@services/license.service';
+
+const entityRoutes: IqserRoutes = [
+ {
+ path: '',
+ component: BaseDossierTemplateScreenComponent,
+ children: [{ path: '', component: EntitiesListingScreenComponent }],
+ canActivate: [CompositeRouteGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ },
+ },
+ {
+ path: `:${ENTITY_TYPE}`,
+ loadChildren: () => import('./screens/entities/entities.module').then(m => m.EntitiesModule),
+ component: BaseEntityScreenComponent,
+ canActivate: [CompositeRouteGuard, entityExistsGuard()],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ },
+ },
+];
const dossierTemplateIdRoutes: IqserRoutes = [
{
- path: 'info',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () => import('./screens/info/dossier-template-info.module').then(m => m.DossierTemplateInfoModule),
+ path: 'entities',
+ children: entityRoutes,
},
{
- path: 'entities',
+ path: '',
+ component: BaseDossierTemplateScreenComponent,
children: [
{
- path: '',
- component: EntitiesListingScreenComponent,
+ path: 'info',
+ loadComponent: () => import('./screens/info/dossier-template-info-screen/dossier-template-info-screen.component'),
+ canDeactivate: [PendingChangesGuard],
+ },
+ {
+ path: 'entity-rules',
+ loadComponent: () => import('./screens/rules/rules-screen/rules-screen.component'),
+ canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
+ canDeactivate: [PendingChangesGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ permissions: {
+ allow: [Roles.rules.read],
+ redirectTo: 'info',
+ },
+ type: 'ENTITY',
+ },
+ },
+ {
+ path: 'component-rules',
+ loadComponent: () => import('./screens/rules/rules-screen/rules-screen.component'),
+ canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
+ canDeactivate: [PendingChangesGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ permissions: {
+ allow: [Roles.rules.read],
+ redirectTo: 'info',
+ },
+ type: 'COMPONENT',
+ },
+ },
+ {
+ path: 'component-mappings',
+ component: ComponentMappingsScreenComponent,
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
{
- path: `:${ENTITY_TYPE}`,
- component: BaseEntityScreenComponent,
- canActivate: [CompositeRouteGuard, entityExistsGuard()],
- loadChildren: () => import('./screens/entities/entities.module').then(m => m.EntitiesModule),
+ path: 'file-attributes',
+ loadComponent: () => import('./screens/file-attributes-listing/file-attributes-listing-screen.component'),
+ canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, RedRoleGuard],
},
},
+ {
+ path: 'watermarks',
+ loadChildren: () => import('./screens/watermark/watermark.module').then(m => m.WatermarkModule),
+ },
+ {
+ path: 'reports',
+ loadComponent: () => import('./screens/reports/reports-screen/reports-screen.component'),
+ canActivate: [IqserAuthGuard, IqserPermissionsGuard],
+ data: {
+ permissions: {
+ allow: [Roles.reportTemplates.read],
+ redirectTo: '/auth-error',
+ },
+ },
+ },
+ {
+ path: 'dossier-attributes',
+ loadComponent: () => import('./screens/dossier-attributes-listing/dossier-attributes-listing-screen.component'),
+ canActivate: [CompositeRouteGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ },
+ },
+ {
+ path: 'dossier-states',
+ loadComponent: () =>
+ import('./screens/dossier-states-listing/dossier-states-listing-screen/dossier-states-listing-screen.component'),
+ canActivate: [CompositeRouteGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ },
+ },
+ {
+ path: 'default-colors',
+ component: DefaultColorsScreenComponent,
+ canActivate: [CompositeRouteGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ },
+ },
+ {
+ path: 'justifications',
+ loadComponent: () => import('./screens/justifications/justifications-screen/justifications-screen.component'),
+ canActivate: [IqserPermissionsGuard],
+ data: {
+ permissions: {
+ allow: [Roles.legalBasis.read],
+ redirectTo: '/auth-error',
+ },
+ },
+ },
+ { path: '', redirectTo: 'info', pathMatch: 'full' },
],
},
- {
- path: 'entity-rules',
- component: BaseDossierTemplateScreenComponent,
- canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- permissions: {
- allow: [Roles.rules.read],
- redirectTo: 'info',
- },
- type: 'ENTITY',
- },
- loadChildren: () => import('./screens/rules/rules.module').then(m => m.RulesModule),
- },
- {
- path: 'component-rules',
- component: BaseDossierTemplateScreenComponent,
- canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- permissions: {
- allow: [Roles.rules.read],
- redirectTo: 'info',
- },
- type: 'COMPONENT',
- },
- loadChildren: () => import('./screens/rules/rules.module').then(m => m.RulesModule),
- },
- {
- path: 'component-mappings',
- component: ComponentMappingsScreenComponent,
- canActivate: [CompositeRouteGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- },
- },
- {
- path: 'file-attributes',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () =>
- import('./screens/file-attributes-listing/file-attributes-listing.module').then(m => m.FileAttributesListingModule),
- canActivate: [CompositeRouteGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- },
- },
- {
- path: 'watermarks',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () => import('./screens/watermark/watermark.module').then(m => m.WatermarkModule),
- },
- {
- path: 'reports',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () => import('./screens/reports/reports.module').then(m => m.ReportsModule),
- canActivate: [IqserAuthGuard, IqserPermissionsGuard],
- data: {
- permissions: {
- allow: [Roles.reportTemplates.read],
- redirectTo: '/auth-error',
- },
- },
- },
- {
- path: 'dossier-attributes',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () =>
- import('./screens/dossier-attributes-listing/dossier-attributes-listing.module').then(m => m.DossierAttributesListingModule),
- canActivate: [CompositeRouteGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- },
- },
- {
- path: 'dossier-states',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () =>
- import('./screens/dossier-states-listing/dossier-states-listing.module').then(m => m.DossierStatesListingModule),
- canActivate: [CompositeRouteGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- },
- },
- {
- path: 'default-colors',
- component: DefaultColorsScreenComponent,
- canActivate: [CompositeRouteGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- },
- },
- {
- path: 'justifications',
- component: BaseDossierTemplateScreenComponent,
- loadChildren: () => import('./screens/justifications/justifications.module').then(m => m.JustificationsModule),
- canActivate: [IqserPermissionsGuard],
- data: {
- permissions: {
- allow: [Roles.legalBasis.read],
- redirectTo: '/auth-error',
- },
- },
- },
- { path: '', redirectTo: 'info', pathMatch: 'full' },
];
const dossierTemplatesRoutes: IqserRoutes = [
{
path: '',
component: BaseAdminScreenComponent,
+ children: [
+ {
+ path: '',
+ loadComponent: () =>
+ import(
+ './screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component'
+ ),
+ },
+ ],
canActivate: [IqserAuthGuard],
- loadChildren: () =>
- import('./screens/dossier-templates-listing/dossier-templates-listing.module').then(m => m.DossierTemplatesListingModule),
},
{
path: `:${DOSSIER_TEMPLATE_ID}`,
@@ -171,7 +180,6 @@ const dossierTemplatesRoutes: IqserRoutes = [
];
const routes: IqserRoutes = [
- { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' },
{
path: 'dossier-templates',
children: dossierTemplatesRoutes,
@@ -186,101 +194,85 @@ const routes: IqserRoutes = [
},
},
{
- path: 'users',
+ path: '',
component: BaseAdminScreenComponent,
children: [
{
- path: '',
+ path: 'users',
component: UserListingScreenComponent,
+ canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ permissions: {
+ allow: [Roles.users.read, 'RED_USER_ADMIN'],
+ redirectTo: '/',
+ },
+ },
},
- ],
- canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- permissions: {
- allow: [Roles.users.read, 'RED_USER_ADMIN'],
- redirectTo: '/',
- },
- },
- },
- {
- path: 'dossier-permissions',
- component: BaseAdminScreenComponent,
- canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard, PermissionsGuard],
- permissionsObject: 'Dossier',
- permissions: {
- allow: [Roles.manageAclPermissions, 'RED_ADMIN'],
- redirectTo: '/',
- },
- },
- loadChildren: () => import('./screens/permissions/permissions.module').then(m => m.PermissionsModule),
- },
- {
- path: 'license-info',
- component: BaseAdminScreenComponent,
- canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
- data: {
- permissions: {
- allow: [Roles.license.readReport, 'RED_ADMIN'],
- redirectTo: '/',
- },
- },
- loadChildren: () => import('./screens/license/license.module').then(m => m.LicenseModule),
- },
- {
- path: 'digital-signature',
- component: BaseAdminScreenComponent,
- children: [
{
- path: '',
+ path: 'dossier-permissions',
+ loadComponent: () => import('./screens/permissions/permissions-screen/permissions-screen.component'),
+ canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard, PermissionsGuard],
+ permissionsObject: 'Dossier',
+ permissions: {
+ allow: [Roles.manageAclPermissions, 'RED_ADMIN'],
+ redirectTo: '/',
+ },
+ },
+ },
+ {
+ path: 'license-info',
+ loadComponent: () => import('./screens/license/license-screen/license-screen.component'),
+ canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
+ data: {
+ permissions: {
+ allow: [Roles.license.readReport, 'RED_ADMIN'],
+ redirectTo: '/',
+ },
+ },
+ resolve: {
+ licenseData: () => inject(LicenseService).loadLicenseData(),
+ },
+ },
+ {
+ path: 'digital-signature',
component: DigitalSignatureScreenComponent,
+ canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
+ data: {
+ permissions: {
+ allow: [Roles.digitalSignature.read, 'RED_ADMIN'],
+ redirectTo: '/',
+ },
+ },
},
- ],
- canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
- data: {
- permissions: {
- allow: [Roles.digitalSignature.read, 'RED_ADMIN'],
- redirectTo: '/',
- },
- },
- },
- {
- path: 'audit',
- component: BaseAdminScreenComponent,
- children: [
{
- path: '',
+ path: 'audit',
component: AuditScreenComponent,
+ canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
+ data: {
+ permissions: {
+ allow: [Roles.searchAudit, 'RED_ADMIN'],
+ redirectTo: '/',
+ },
+ },
},
- ],
- canActivate: [IqserAuthGuard, IqserPermissionsGuard, RedRoleGuard],
- data: {
- permissions: {
- allow: [Roles.searchAudit, 'RED_ADMIN'],
- redirectTo: '/',
- },
- },
- },
- {
- path: 'general-config',
- component: BaseAdminScreenComponent,
- children: [
{
- path: '',
+ path: 'general-config',
component: GeneralConfigScreenComponent,
+ canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
+ canDeactivate: [PendingChangesGuard],
+ data: {
+ routeGuards: [IqserAuthGuard, RedRoleGuard],
+ permissions: {
+ allow: [Roles.generalConfiguration.read, Roles.smtp.read, 'RED_ADMIN'],
+ redirectTo: '/',
+ },
+ },
},
+ { path: '', redirectTo: 'dossier-templates', pathMatch: 'full' },
],
- canActivate: [CompositeRouteGuard, IqserPermissionsGuard],
- canDeactivate: [PendingChangesGuard],
- data: {
- routeGuards: [IqserAuthGuard, RedRoleGuard],
- permissions: {
- allow: [Roles.generalConfiguration.read, Roles.smtp.read, 'RED_ADMIN'],
- redirectTo: '/',
- },
- },
},
];
diff --git a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.html
index 27df03721..0a4bfb36e 100644
--- a/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.html
+++ b/apps/red-ui/src/app/modules/admin/screens/default-colors/default-colors-screen.component.html
@@ -1,29 +1,6 @@
-
+
+
+
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts
index 576c1878b..c186dd557 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing-screen.component.ts
@@ -2,8 +2,12 @@ import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import {
+ CircleButtonComponent,
defaultDialogConfig,
+ IconButtonComponent,
IconButtonTypes,
+ InputWithActionComponent,
+ IqserListingModule,
ListingComponent,
listingProvidersFactory,
LoadingService,
@@ -20,6 +24,9 @@ import {
AddEditDossierAttributeDialogComponent,
AddEditDossierAttributeDialogData,
} from './add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component';
+import { TranslateModule } from '@ngx-translate/core';
+import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
+import { TableItemComponent } from './table-item/table-item.component';
@Component({
templateUrl: './dossier-attributes-listing-screen.component.html',
@@ -28,8 +35,20 @@ import {
entitiesService: DossierAttributesService,
component: DossierAttributesListingScreenComponent,
}),
+ standalone: true,
+ imports: [
+ IqserListingModule,
+ TranslateModule,
+ CircleButtonComponent,
+ AsyncPipe,
+ NgIf,
+ InputWithActionComponent,
+ IconButtonComponent,
+ NgForOf,
+ TableItemComponent,
+ ],
})
-export class DossierAttributesListingScreenComponent extends ListingComponent
implements OnInit {
+export default class DossierAttributesListingScreenComponent extends ListingComponent implements OnInit {
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
readonly iconButtonTypes = IconButtonTypes;
readonly currentUser = getCurrentUser();
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing.module.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing.module.ts
deleted file mode 100644
index e7ce656fd..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing.module.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { NgModule } from '@angular/core';
-import { DossierAttributesListingScreenComponent } from './dossier-attributes-listing-screen.component';
-import { CommonModule } from '@angular/common';
-import {
- CircleButtonComponent,
- IconButtonComponent,
- InputWithActionComponent,
- IqserHelpModeModule,
- IqserListingModule,
- IqserRoutes,
-} from '@iqser/common-ui';
-import { RouterModule } from '@angular/router';
-import { TranslateModule } from '@ngx-translate/core';
-import { MatTooltipModule } from '@angular/material/tooltip';
-import { TableItemComponent } from './table-item/table-item.component';
-
-const routes: IqserRoutes = [
- {
- path: '',
- component: DossierAttributesListingScreenComponent,
- },
-];
-
-@NgModule({
- declarations: [DossierAttributesListingScreenComponent, TableItemComponent],
- imports: [
- CommonModule,
- RouterModule.forChild(routes),
- TranslateModule,
- CircleButtonComponent,
- InputWithActionComponent,
- IconButtonComponent,
- IqserHelpModeModule,
- MatTooltipModule,
- IqserListingModule,
- ],
-})
-export class DossierAttributesListingModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/table-item/table-item.component.ts
index 03cd1c36b..90d7298b7 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/table-item/table-item.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/table-item/table-item.component.ts
@@ -1,11 +1,17 @@
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { DossierAttributeConfig, IDossierAttributeConfig } from '@red/domain';
import { dossierAttributeTypesTranslations } from '@translations/dossier-attribute-types-translations';
+import { MatTooltip } from '@angular/material/tooltip';
+import { TranslateModule } from '@ngx-translate/core';
+import { CircleButtonComponent } from '@iqser/common-ui';
+import { NgIf } from '@angular/common';
@Component({
selector: 'redaction-table-item [attribute] [canEditDossierAttributes]',
templateUrl: './table-item.component.html',
styleUrls: ['./table-item.component.scss'],
+ standalone: true,
+ imports: [MatTooltip, TranslateModule, CircleButtonComponent, NgIf],
})
export class TableItemComponent {
readonly translations = dossierAttributeTypesTranslations;
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component.ts
index 70f623695..f989b751c 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component.ts
@@ -1,10 +1,14 @@
import { Component, Inject } from '@angular/core';
-import { BaseDialogComponent } from '@iqser/common-ui';
-import { Validators } from '@angular/forms';
+import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
+import { ReactiveFormsModule, Validators } from '@angular/forms';
import { IDossierState } from '@red/domain';
import { DossierStatesService } from '@services/entity-services/dossier-states.service';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
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';
export interface AddEditDossierStateDialogData {
readonly dossierState?: IDossierState;
@@ -14,6 +18,8 @@ export interface AddEditDossierStateDialogData {
@Component({
templateUrl: './add-edit-dossier-state-dialog.component.html',
styleUrls: ['./add-edit-dossier-state-dialog.component.scss'],
+ standalone: true,
+ imports: [TranslateModule, ReactiveFormsModule, ColorPickerModule, MatIcon, NgIf, IconButtonComponent, CircleButtonComponent],
})
export class AddEditDossierStateDialogComponent extends BaseDialogComponent {
readonly type = this.data.dossierState ? 'edit' : 'create';
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts
index bf8db1b8b..bd0e871f1 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component.ts
@@ -1,13 +1,18 @@
import { Component, Inject } from '@angular/core';
import { DossierState } from '@red/domain';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-import { FormBuilder } from '@angular/forms';
+import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { combineLatest, firstValueFrom } from 'rxjs';
import { DossierStatesService } from '@services/entity-services/dossier-states.service';
-import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
+import { CircleButtonComponent, IconButtonComponent, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
import { ActiveDossiersService } from '@services/dossiers/active-dossiers.service';
import { ArchivedDossiersService } from '@services/dossiers/archived-dossiers.service';
+import { TranslateModule } from '@ngx-translate/core';
+import { MatCheckbox } from '@angular/material/checkbox';
+import { MatFormField } from '@angular/material/form-field';
+import { MatOption, MatSelect } from '@angular/material/select';
+import { NgForOf, NgIf } from '@angular/common';
export interface ConfirmDeleteDossierStateDialogData {
readonly toBeDeletedState: DossierState;
@@ -18,6 +23,19 @@ export interface ConfirmDeleteDossierStateDialogData {
@Component({
templateUrl: './confirm-delete-dossier-state-dialog.component.html',
styleUrls: ['./confirm-delete-dossier-state-dialog.component.scss'],
+ standalone: true,
+ imports: [
+ TranslateModule,
+ ReactiveFormsModule,
+ MatCheckbox,
+ MatFormField,
+ MatSelect,
+ MatOption,
+ NgForOf,
+ IconButtonComponent,
+ CircleButtonComponent,
+ NgIf,
+ ],
})
export class ConfirmDeleteDossierStateDialogComponent {
readonly iconButtonTypes = IconButtonTypes;
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen/dossier-states-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen/dossier-states-listing-screen.component.ts
index 730e83923..5644f963c 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen/dossier-states-listing-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing-screen/dossier-states-listing-screen.component.ts
@@ -1,7 +1,10 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import {
defaultDialogConfig,
+ IconButtonComponent,
IconButtonTypes,
+ InputWithActionComponent,
+ IqserListingModule,
ListingComponent,
listingProvidersFactory,
LoadingService,
@@ -21,13 +24,28 @@ import {
} from '../add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component';
import { SortingOrders } from '@iqser/common-ui/lib/sorting';
import { getParam } from '@iqser/common-ui/lib/utils';
+import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
+import { AsyncPipe, NgIf } from '@angular/common';
+import { TranslateModule } from '@ngx-translate/core';
+import { DossierStatesTableItemComponent } from '../dossier-states-table-item/dossier-states-table-item.component';
@Component({
templateUrl: './dossier-states-listing-screen.component.html',
styleUrls: ['./dossier-states-listing-screen.component.scss'],
providers: listingProvidersFactory(DossierStatesListingScreenComponent),
+ standalone: true,
+ imports: [
+ IqserListingModule,
+ DonutChartComponent,
+ AsyncPipe,
+ NgIf,
+ TranslateModule,
+ InputWithActionComponent,
+ IconButtonComponent,
+ DossierStatesTableItemComponent,
+ ],
})
-export class DossierStatesListingScreenComponent extends ListingComponent implements OnInit, OnDestroy {
+export default class DossierStatesListingScreenComponent extends ListingComponent implements OnInit, OnDestroy {
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
readonly iconButtonTypes = IconButtonTypes;
readonly tableHeaderLabel = _('dossier-states-listing.table-header.title');
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing.module.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing.module.ts
deleted file mode 100644
index 4e5910f8a..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-listing.module.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { DossierStatesListingScreenComponent } from './dossier-states-listing-screen/dossier-states-listing-screen.component';
-import { DossierStatesTableItemComponent } from './dossier-states-table-item/dossier-states-table-item.component';
-import { RouterModule } from '@angular/router';
-import {
- CircleButtonComponent,
- IconButtonComponent,
- InputWithActionComponent,
- IqserHelpModeModule,
- IqserListingModule,
-} from '@iqser/common-ui';
-import { MatTooltipModule } from '@angular/material/tooltip';
-import { TranslateModule } from '@ngx-translate/core';
-import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
-import { AdminSideNavComponent } from '../../shared/components/admin-side-nav/admin-side-nav.component';
-import { DossierTemplateActionsComponent } from '../../shared/components/dossier-template-actions/dossier-template-actions.component';
-import { DossierTemplateBreadcrumbsComponent } from '../../shared/components/dossier-template-breadcrumbs/dossier-template-breadcrumbs.component';
-import { AddEditDossierStateDialogComponent } from './add-edit-dossier-state-dialog/add-edit-dossier-state-dialog.component';
-import { ReactiveFormsModule } from '@angular/forms';
-import { ColorPickerModule } from 'ngx-color-picker';
-import { MatIconModule } from '@angular/material/icon';
-import { ConfirmDeleteDossierStateDialogComponent } from './confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component';
-import { MatSelectModule } from '@angular/material/select';
-import { MatDialogModule } from '@angular/material/dialog';
-import { MatCheckboxModule } from '@angular/material/checkbox';
-
-@NgModule({
- declarations: [
- DossierStatesListingScreenComponent,
- DossierStatesTableItemComponent,
- AddEditDossierStateDialogComponent,
- ConfirmDeleteDossierStateDialogComponent,
- ],
- imports: [
- CommonModule,
- RouterModule.forChild([
- {
- path: '',
- component: DossierStatesListingScreenComponent,
- },
- ]),
- MatDialogModule,
- CircleButtonComponent,
- IqserHelpModeModule,
- MatTooltipModule,
- IconButtonComponent,
- TranslateModule,
- IqserListingModule,
- DonutChartComponent,
- AdminSideNavComponent,
- DossierTemplateActionsComponent,
- InputWithActionComponent,
- DossierTemplateBreadcrumbsComponent,
- ReactiveFormsModule,
- ColorPickerModule,
- MatIconModule,
- MatCheckboxModule,
- MatSelectModule,
- ],
-})
-export class DossierStatesListingModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-table-item/dossier-states-table-item.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-table-item/dossier-states-table-item.component.ts
index 1a81dbc2d..93dad3a49 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-table-item/dossier-states-table-item.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-states-listing/dossier-states-table-item/dossier-states-table-item.component.ts
@@ -1,6 +1,6 @@
import { Component, inject, Input } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
-import { defaultDialogConfig, EntitiesService } from '@iqser/common-ui';
+import { CircleButtonComponent, defaultDialogConfig, EntitiesService } from '@iqser/common-ui';
import { DossierState, IDossierState } from '@red/domain';
import { PermissionsService } from '@services/permissions.service';
import {
@@ -11,11 +11,16 @@ import {
ConfirmDeleteDossierStateDialogComponent,
ConfirmDeleteDossierStateDialogData,
} from '../confirm-delete-dossier-state-dialog/confirm-delete-dossier-state-dialog.component';
+import { MatTooltip } from '@angular/material/tooltip';
+import { TranslateModule } from '@ngx-translate/core';
+import { NgIf } from '@angular/common';
@Component({
selector: 'redaction-dossier-states-table-item',
templateUrl: './dossier-states-table-item.component.html',
styleUrls: ['./dossier-states-table-item.component.scss'],
+ standalone: true,
+ imports: [MatTooltip, CircleButtonComponent, TranslateModule, NgIf],
})
export class DossierStatesTableItemComponent {
readonly #dialog = inject(MatDialog);
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts
index fa61c02bf..585f709d0 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing-screen/dossier-templates-listing-screen.component.ts
@@ -1,7 +1,12 @@
import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import {
+ CircleButtonComponent,
+ IconButtonComponent,
IconButtonTypes,
+ InputWithActionComponent,
+ IqserAllowDirective,
+ IqserListingModule,
IqserPermissionsService,
ListingComponent,
listingProvidersFactory,
@@ -16,6 +21,9 @@ import { Roles } from '@users/roles';
import { UserPreferenceService } from '@users/user-preference.service';
import { firstValueFrom } from 'rxjs';
import { AdminDialogService } from '../../../services/admin-dialog.service';
+import { TranslateModule } from '@ngx-translate/core';
+import { AsyncPipe } from '@angular/common';
+import { TableItemComponent } from '../table-item/table-item.component';
@Component({
templateUrl: './dossier-templates-listing-screen.component.html',
@@ -25,8 +33,19 @@ import { AdminDialogService } from '../../../services/admin-dialog.service';
entitiesService: DossierTemplatesService,
component: DossierTemplatesListingScreenComponent,
}),
+ standalone: true,
+ imports: [
+ IqserListingModule,
+ TranslateModule,
+ AsyncPipe,
+ CircleButtonComponent,
+ IqserAllowDirective,
+ InputWithActionComponent,
+ IconButtonComponent,
+ TableItemComponent,
+ ],
})
-export class DossierTemplatesListingScreenComponent extends ListingComponent implements OnInit {
+export default class DossierTemplatesListingScreenComponent extends ListingComponent implements OnInit {
readonly iconButtonTypes = IconButtonTypes;
readonly roles = Roles;
readonly currentUser = getCurrentUser();
@@ -58,7 +77,7 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent {
- this._loadingService.loadWhile(this._deleteTemplates());
+ this._loadingService.loadWhile(this.#deleteTemplates());
});
}
@@ -66,7 +85,7 @@ export class DossierTemplatesListingScreenComponent extends ListingComponent d.dossierTemplateId)) {
+ async #deleteTemplates(templateIds = this.listingService.selected.map(d => d.dossierTemplateId)) {
await firstValueFrom(this._dossierTemplatesService.delete(templateIds));
}
}
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing.module.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing.module.ts
deleted file mode 100644
index b0dc3dc8f..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/dossier-templates-listing.module.ts
+++ /dev/null
@@ -1,39 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { RouterModule } from '@angular/router';
-import { SharedModule } from '@shared/shared.module';
-import { TableItemComponent } from './table-item/table-item.component';
-import { DossierTemplatesListingScreenComponent } from './dossier-templates-listing-screen/dossier-templates-listing-screen.component';
-import {
- CircleButtonComponent,
- IconButtonComponent,
- InputWithActionComponent,
- IqserAllowDirective,
- IqserHelpModeModule,
- IqserListingModule,
- IqserRoutes,
-} from '@iqser/common-ui';
-import { TranslateModule } from '@ngx-translate/core';
-import { DossierTemplateActionsComponent } from '../../shared/components/dossier-template-actions/dossier-template-actions.component';
-import { IqserUsersModule } from '@iqser/common-ui/lib/users';
-
-const routes: IqserRoutes = [{ path: '', component: DossierTemplatesListingScreenComponent }];
-
-@NgModule({
- declarations: [TableItemComponent, DossierTemplatesListingScreenComponent],
- imports: [
- RouterModule.forChild(routes),
- CommonModule,
- SharedModule,
- IqserUsersModule,
- TranslateModule,
- IqserListingModule,
- IqserHelpModeModule,
- DossierTemplateActionsComponent,
- CircleButtonComponent,
- IconButtonComponent,
- InputWithActionComponent,
- IqserAllowDirective,
- ],
-})
-export class DossierTemplatesListingModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/table-item/table-item.component.ts b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/table-item/table-item.component.ts
index 2c9f4c4e7..ecda4d86b 100644
--- a/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/table-item/table-item.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-templates-listing/table-item/table-item.component.ts
@@ -4,12 +4,20 @@ import { BehaviorSubject, Observable } from 'rxjs';
import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service';
import { switchMap } from 'rxjs/operators';
import { dossierTemplateStatusTranslations } from '@translations/dossier-template-status-translations';
+import { MatTooltip } from '@angular/material/tooltip';
+import { AsyncPipe, DatePipe, NgIf } from '@angular/common';
+import { MatIcon } from '@angular/material/icon';
+import { TranslateModule } from '@ngx-translate/core';
+import { IqserUsersModule } from '@common-ui/users';
+import { DossierTemplateActionsComponent } from '../../../shared/components/dossier-template-actions/dossier-template-actions.component';
@Component({
selector: 'redaction-table-item [dossierTemplate]',
templateUrl: './table-item.component.html',
styleUrls: ['./table-item.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [MatTooltip, NgIf, AsyncPipe, MatIcon, TranslateModule, IqserUsersModule, DatePipe, DossierTemplateActionsComponent],
})
export class TableItemComponent implements OnChanges {
@Input() dossierTemplate!: DossierTemplate;
diff --git a/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.html b/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.html
index dd78bc33b..208e2504f 100644
--- a/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.html
+++ b/apps/red-ui/src/app/modules/admin/screens/entities-listing/entities-listing-screen.component.html
@@ -1,41 +1,18 @@
-
+
+
+
implements OnChanges {
readonly translations = fileAttributeTypesTranslations;
diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts
index 19abe8403..e9f36d9cf 100644
--- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component.ts
@@ -1,15 +1,30 @@
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
-import { AbstractControl, UntypedFormBuilder, UntypedFormGroup, ValidatorFn, Validators } from '@angular/forms';
+import { AbstractControl, ReactiveFormsModule, UntypedFormBuilder, UntypedFormGroup, ValidatorFn, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import * as Papa from 'papaparse';
import { firstValueFrom, Observable } from 'rxjs';
import { map, startWith } from 'rxjs/operators';
-import { IconButtonTypes, ListingComponent, listingProvidersFactory, TableColumnConfig, Toaster } from '@iqser/common-ui';
+import {
+ CircleButtonComponent,
+ IconButtonComponent,
+ IconButtonTypes,
+ InputWithActionComponent,
+ IqserTranslateModule,
+ ListingComponent,
+ listingProvidersFactory,
+ TableColumnConfig,
+ Toaster,
+} from '@iqser/common-ui';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { FileAttributeConfig, FileAttributeConfigTypes, FileAttributeEncodingTypes, IField, IFileAttributesConfig } from '@red/domain';
import { FileAttributesService } from '@services/entity-services/file-attributes.service';
import { fileAttributeEncodingTypesTranslations } from '@translations/file-attribute-encoding-types-translations';
import { trackByFactory } from '@iqser/common-ui/lib/utils';
+import { MatFormField } from '@angular/material/form-field';
+import { MatAutocomplete, MatAutocompleteTrigger, MatOption } from '@angular/material/autocomplete';
+import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
+import { MatSelect } from '@angular/material/select';
+import { ActiveFieldsListingComponent } from './active-fields-listing/active-fields-listing.component';
export interface IFileAttributesCSVImportData {
readonly csv: File;
@@ -22,6 +37,23 @@ export interface IFileAttributesCSVImportData {
styleUrls: ['./file-attributes-csv-import-dialog.component.scss'],
providers: listingProvidersFactory(),
changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [
+ IqserTranslateModule,
+ ReactiveFormsModule,
+ MatFormField,
+ MatAutocompleteTrigger,
+ MatAutocomplete,
+ AsyncPipe,
+ MatOption,
+ MatSelect,
+ CircleButtonComponent,
+ NgIf,
+ InputWithActionComponent,
+ IconButtonComponent,
+ NgForOf,
+ ActiveFieldsListingComponent,
+ ],
})
export class FileAttributesCsvImportDialogComponent extends ListingComponent {
readonly iconButtonTypes = IconButtonTypes;
diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.module.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.module.ts
deleted file mode 100644
index c7f221f32..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.module.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import { NgModule } from '@angular/core';
-import { FileAttributesCsvImportDialogComponent } from './file-attributes-csv-import-dialog.component';
-import { ActiveFieldsListingComponent } from './active-fields-listing/active-fields-listing.component';
-import {
- ChevronButtonComponent,
- CircleButtonComponent,
- EditableInputComponent,
- IconButtonComponent,
- InputWithActionComponent,
- IqserListingModule,
- RoundCheckboxComponent,
-} from '@iqser/common-ui';
-import { CommonModule } from '@angular/common';
-import { TranslateModule } from '@ngx-translate/core';
-import { MatDialogModule } from '@angular/material/dialog';
-import { MatFormFieldModule } from '@angular/material/form-field';
-import { MatSelectModule } from '@angular/material/select';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { MatAutocompleteModule } from '@angular/material/autocomplete';
-import { MatInputModule } from '@angular/material/input';
-import { MatMenuModule } from '@angular/material/menu';
-import { MatSlideToggleModule } from '@angular/material/slide-toggle';
-
-@NgModule({
- declarations: [FileAttributesCsvImportDialogComponent, ActiveFieldsListingComponent],
- imports: [
- CommonModule,
- CircleButtonComponent,
- TranslateModule,
- MatDialogModule,
- IconButtonComponent,
- InputWithActionComponent,
- MatFormFieldModule,
- MatSelectModule,
- ReactiveFormsModule,
- MatAutocompleteModule,
- MatInputModule,
- IqserListingModule,
- MatMenuModule,
- ChevronButtonComponent,
- EditableInputComponent,
- FormsModule,
- MatSlideToggleModule,
- RoundCheckboxComponent,
- ],
-})
-export class FileAttributesCsvImportDialogModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts
index ae1f798a6..7fb89faab 100644
--- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing-screen.component.ts
@@ -3,12 +3,18 @@ import { Component, ElementRef, OnDestroy, OnInit, TemplateRef, ViewChild } from
import { MatDialog } from '@angular/material/dialog';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import {
+ CircleButtonComponent,
defaultDialogConfig,
+ IconButtonComponent,
IconButtonTypes,
+ InputWithActionComponent,
+ IqserAllowDirective,
+ IqserListingModule,
largeDialogConfig,
ListingComponent,
listingProvidersFactory,
LoadingService,
+ RoundCheckboxComponent,
TableColumnConfig,
Toaster,
} from '@iqser/common-ui';
@@ -31,13 +37,32 @@ import {
FileAttributesCsvImportDialogComponent,
IFileAttributesCSVImportData,
} from './file-attributes-csv-import-dialog/file-attributes-csv-import-dialog.component';
+import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
+import { MatIcon } from '@angular/material/icon';
+import { MatTooltip } from '@angular/material/tooltip';
+import { TranslateModule } from '@ngx-translate/core';
@Component({
templateUrl: './file-attributes-listing-screen.component.html',
styleUrls: ['./file-attributes-listing-screen.component.scss'],
providers: listingProvidersFactory(FileAttributesListingScreenComponent),
+ standalone: true,
+ imports: [
+ IqserListingModule,
+ NgForOf,
+ TranslateModule,
+ CircleButtonComponent,
+ NgIf,
+ AsyncPipe,
+ InputWithActionComponent,
+ IqserAllowDirective,
+ IconButtonComponent,
+ MatIcon,
+ MatTooltip,
+ RoundCheckboxComponent,
+ ],
})
-export class FileAttributesListingScreenComponent extends ListingComponent implements OnInit, OnDestroy {
+export default class FileAttributesListingScreenComponent extends ListingComponent implements OnInit, OnDestroy {
@ViewChild('impactedTemplates') private readonly _impactedTemplatesRef: TemplateRef;
#existingConfiguration: IFileAttributesConfig;
@ViewChild('fileInput') private _fileInput: ElementRef;
diff --git a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing.module.ts b/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing.module.ts
deleted file mode 100644
index 07b2937e3..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/file-attributes-listing/file-attributes-listing.module.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { NgModule } from '@angular/core';
-import { FileAttributesListingScreenComponent } from './file-attributes-listing-screen.component';
-import { RouterModule } from '@angular/router';
-import {
- CircleButtonComponent,
- IconButtonComponent,
- InputWithActionComponent,
- IqserAllowDirective,
- IqserHelpModeModule,
- IqserListingModule,
- IqserRoutes,
- RoundCheckboxComponent,
-} from '@iqser/common-ui';
-import { CommonModule } from '@angular/common';
-import { TranslateModule } from '@ngx-translate/core';
-import { MatIconModule } from '@angular/material/icon';
-import { MatTooltipModule } from '@angular/material/tooltip';
-
-const routes: IqserRoutes = [
- {
- path: '',
- component: FileAttributesListingScreenComponent,
- },
-];
-
-@NgModule({
- declarations: [FileAttributesListingScreenComponent],
- imports: [
- CommonModule,
- RouterModule.forChild(routes),
- IqserListingModule,
- TranslateModule,
- CircleButtonComponent,
- InputWithActionComponent,
- IqserHelpModeModule,
- IqserAllowDirective,
- IconButtonComponent,
- MatIconModule,
- MatTooltipModule,
- RoundCheckboxComponent,
- ],
-})
-export class FileAttributesListingModule {}
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 c5c2c7f03..3dfa5c33e 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
@@ -4,7 +4,7 @@ import { GeneralConfigFormComponent } from './general-config-form/general-config
import { SmtpFormComponent } from './smtp-form/smtp-form.component';
import { BaseFormComponent } from '@iqser/common-ui';
import { SystemPreferencesFormComponent } from './system-preferences-form/system-preferences-form.component';
-import { RouterHistoryService } from '../../../../services/router-history.service';
+import { RouterHistoryService } from '@services/router-history.service';
@Component({
selector: 'redaction-general-config-screen',
diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts
index 2ddbd44f7..7b197262b 100644
--- a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-details/dossier-template-details.component.ts
@@ -4,6 +4,10 @@ import { type DossierTemplate, type DossierTemplateStats } from '@red/domain';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
import { DossierTemplateStatsService } from '@services/entity-services/dossier-template-stats.service';
import { dossierTemplateStatusTranslations } from '@translations/dossier-template-status-translations';
+import { AsyncPipe, DatePipe, NgIf } from '@angular/common';
+import { IqserUsersModule } from '@common-ui/users';
+import { MatIcon } from '@angular/material/icon';
+import { TranslateModule } from '@ngx-translate/core';
interface Context {
readonly dossierTemplate: DossierTemplate;
@@ -14,6 +18,8 @@ interface Context {
selector: 'redaction-dossier-template-details',
templateUrl: './dossier-template-details.component.html',
styleUrls: ['./dossier-template-details.component.scss'],
+ standalone: true,
+ imports: [NgIf, AsyncPipe, IqserUsersModule, MatIcon, TranslateModule, DatePipe],
})
export class DossierTemplateDetailsComponent extends ContextComponent implements OnInit {
readonly translations = dossierTemplateStatusTranslations;
diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts
index 3cf61bb37..0d21402f1 100644
--- a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info-screen/dossier-template-info-screen.component.ts
@@ -1,5 +1,13 @@
import { Component, OnInit, signal, untracked, WritableSignal } from '@angular/core';
-import { BaseFormComponent, getConfig, IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
+import {
+ BaseFormComponent,
+ getConfig,
+ HasScrollbarDirective,
+ IconButtonComponent,
+ IconButtonTypes,
+ LoadingService,
+ Toaster,
+} from '@iqser/common-ui';
import { getParam } from '@iqser/common-ui/lib/utils';
import { DOSSIER_TEMPLATE_ID, type DossierTemplate, IDossierTemplate } from '@red/domain';
import { DossierTemplatesService } from '@services/dossier-templates/dossier-templates.service';
@@ -8,9 +16,16 @@ import dayjs, { Dayjs } from 'dayjs';
import { HttpStatusCode } from '@angular/common/http';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { applyIntervalConstraints } from '@utils/date-inputs-utils';
-import { AbstractControl, UntypedFormBuilder, Validators } from '@angular/forms';
+import { AbstractControl, ReactiveFormsModule, UntypedFormBuilder, Validators } from '@angular/forms';
import { downloadTypesTranslations } from '@translations/download-types-translations';
import { Observable } from 'rxjs';
+import { DossierTemplateDetailsComponent } from '../dossier-template-details/dossier-template-details.component';
+import { TranslateModule } from '@ngx-translate/core';
+import { MatCheckbox } from '@angular/material/checkbox';
+import { NgIf } from '@angular/common';
+import { MatDatepickerModule } from '@angular/material/datepicker';
+import { MatIcon } from '@angular/material/icon';
+import { SelectComponent } from '@shared/components/select/select.component';
const downloadTypes = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(type => ({
key: type,
@@ -20,8 +35,21 @@ const downloadTypes = ['ORIGINAL', 'PREVIEW', 'DELTA_PREVIEW', 'REDACTED'].map(t
@Component({
templateUrl: './dossier-template-info-screen.component.html',
styleUrls: ['./dossier-template-info-screen.component.scss'],
+ standalone: true,
+ imports: [
+ HasScrollbarDirective,
+ ReactiveFormsModule,
+ DossierTemplateDetailsComponent,
+ TranslateModule,
+ MatCheckbox,
+ NgIf,
+ MatDatepickerModule,
+ SelectComponent,
+ IconButtonComponent,
+ MatIcon,
+ ],
})
-export class DossierTemplateInfoScreenComponent extends BaseFormComponent implements OnInit {
+export default class DossierTemplateInfoScreenComponent extends BaseFormComponent implements OnInit {
readonly translations = dossierTemplateStatusTranslations;
readonly iconButtonTypes = IconButtonTypes;
readonly isDocumine = getConfig().IS_DOCUMINE;
@@ -31,10 +59,14 @@ export class DossierTemplateInfoScreenComponent extends BaseFormComponent implem
readonly dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
readonly hasValidFrom: WritableSignal;
readonly hasValidTo: WritableSignal;
- private _previousValidFrom: Dayjs;
- private _previousValidTo: Dayjs;
- private _lastValidFrom: Dayjs;
- private _lastValidTo: Dayjs;
+ #previousValidFrom: Dayjs;
+ #previousValidTo: Dayjs;
+ #lastValidFrom: Dayjs;
+ #lastValidTo: Dayjs;
+
+ get disabled(): boolean {
+ return !this.valid || !this.changed;
+ }
constructor(
private readonly _dossierTemplatesService: DossierTemplatesService,
@@ -50,8 +82,8 @@ export class DossierTemplateInfoScreenComponent extends BaseFormComponent implem
this.hasValidFrom = signal(!!this.form.get('validFrom').value);
this.hasValidTo = signal(!!this.form.get('validTo').value);
- this._previousValidFrom = this._lastValidFrom = this.form.get('validFrom').value;
- this._previousValidTo = this._lastValidTo = this.form.get('validTo').value;
+ this.#previousValidFrom = this.#lastValidFrom = this.form.get('validFrom').value;
+ this.#previousValidTo = this.#lastValidTo = this.form.get('validTo').value;
}
ngOnInit() {
@@ -62,11 +94,11 @@ export class DossierTemplateInfoScreenComponent extends BaseFormComponent implem
if (extremity === 'from') {
const prevValue = untracked(this.hasValidFrom);
this.hasValidFrom.set(!prevValue);
- this.form.controls['validFrom'].setValue(!prevValue ? this._lastValidFrom : null);
+ this.form.controls['validFrom'].setValue(!prevValue ? this.#lastValidFrom : null);
} else {
const prevValue = untracked(this.hasValidTo);
this.hasValidTo.set(!prevValue);
- this.form.controls['validTo'].setValue(!prevValue ? this._lastValidTo : null);
+ this.form.controls['validTo'].setValue(!prevValue ? this.#lastValidTo : null);
}
this.applyValidityIntervalConstraints();
}
@@ -95,12 +127,12 @@ export class DossierTemplateInfoScreenComponent extends BaseFormComponent implem
applyValidityIntervalConstraints(): void {
const formValue = this.form.value;
- applyIntervalConstraints(formValue, this._previousValidFrom, this._previousValidTo, this.form, 'validFrom', 'validTo');
+ applyIntervalConstraints(formValue, this.#previousValidFrom, this.#previousValidTo, this.form, 'validFrom', 'validTo');
- this._previousValidFrom = this.form.get('validFrom').value;
- this._previousValidTo = this.form.get('validTo').value;
- this._lastValidFrom = this._previousValidFrom || this._lastValidFrom;
- this._lastValidTo = this._previousValidTo || this._lastValidTo;
+ this.#previousValidFrom = this.form.get('validFrom').value;
+ this.#previousValidTo = this.form.get('validTo').value;
+ this.#lastValidFrom = this.#previousValidFrom || this.#lastValidFrom;
+ this.#lastValidTo = this.#previousValidTo || this.#lastValidTo;
}
#getForm(dossierTemplate: DossierTemplate) {
diff --git a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts b/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts
deleted file mode 100644
index b7d6deb4e..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/info/dossier-template-info.module.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { DossierTemplateInfoScreenComponent } from './dossier-template-info-screen/dossier-template-info-screen.component';
-import { RouterModule } from '@angular/router';
-import { SharedModule } from '@shared/shared.module';
-import { CircleButtonComponent, HasScrollbarDirective, IconButtonComponent, IqserHelpModeModule } from '@iqser/common-ui';
-import { TranslateModule } from '@ngx-translate/core';
-import { IqserUsersModule } from '@iqser/common-ui/lib/users';
-import { SelectComponent } from '@shared/components/select/select.component';
-import { DossierTemplateDetailsComponent } from './dossier-template-details/dossier-template-details.component';
-import { PendingChangesGuard } from '@guards/can-deactivate.guard';
-
-const routes = [
- {
- path: '',
- component: DossierTemplateInfoScreenComponent,
- canDeactivate: [PendingChangesGuard],
- },
-];
-
-@NgModule({
- declarations: [DossierTemplateInfoScreenComponent, DossierTemplateDetailsComponent],
- imports: [
- RouterModule.forChild(routes),
- CommonModule,
- SharedModule,
- IqserUsersModule,
- TranslateModule,
- IqserHelpModeModule,
- HasScrollbarDirective,
- CircleButtonComponent,
- IconButtonComponent,
- SelectComponent,
- ],
-})
-export class DossierTemplateInfoModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts
index 68f39dfc1..fb62106b4 100644
--- a/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/justifications/add-edit-justification-dialog/add-edit-justification-dialog.component.ts
@@ -1,10 +1,11 @@
import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';
-import { UntypedFormGroup, Validators } from '@angular/forms';
+import { ReactiveFormsModule, UntypedFormGroup, Validators } from '@angular/forms';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { Justification } from '@red/domain';
import { JustificationsService } from '@services/entity-services/justifications.service';
-import { BaseDialogComponent } from '@iqser/common-ui';
+import { BaseDialogComponent, CircleButtonComponent, IconButtonComponent } from '@iqser/common-ui';
import { firstValueFrom } from 'rxjs';
+import { TranslateModule } from '@ngx-translate/core';
interface DialogData {
justification?: Justification;
@@ -14,6 +15,8 @@ interface DialogData {
@Component({
templateUrl: './add-edit-justification-dialog.component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [TranslateModule, ReactiveFormsModule, IconButtonComponent, CircleButtonComponent],
})
export class AddEditJustificationDialogComponent extends BaseDialogComponent {
constructor(
diff --git a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts
index 296d552bd..13628fc91 100644
--- a/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/justifications/justifications-screen/justifications-screen.component.ts
@@ -1,26 +1,42 @@
import { ChangeDetectionStrategy, 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,
+ IqserListingModule,
+ ListingComponent,
+ listingProvidersFactory,
+ LoadingService,
+ TableColumnConfig,
+} from '@iqser/common-ui';
import { SortingOrders } from '@iqser/common-ui/lib/sorting';
import { getParam } from '@iqser/common-ui/lib/utils';
import { DOSSIER_TEMPLATE_ID, Justification } from '@red/domain';
import { JustificationsService } from '@services/entity-services/justifications.service';
import { PermissionsService } from '@services/permissions.service';
-import { UserPreferenceService } from '@users/user-preference.service';
import { firstValueFrom } from 'rxjs';
import { JustificationsDialogService } from '../justifications-dialog.service';
+import { AsyncPipe, NgIf } from '@angular/common';
+import { TableItemComponent } from '../table-item/table-item.component';
+import { TranslateModule } from '@ngx-translate/core';
@Component({
selector: 'redaction-justifications-screen',
templateUrl: './justifications-screen.component.html',
styleUrls: ['./justifications-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
- providers: listingProvidersFactory({
- entitiesService: JustificationsService,
- component: JustificationsScreenComponent,
- }),
+ providers: [
+ ...listingProvidersFactory({
+ entitiesService: JustificationsService,
+ component: JustificationsScreenComponent,
+ }),
+ JustificationsDialogService,
+ ],
+ standalone: true,
+ imports: [IqserListingModule, CircleButtonComponent, NgIf, TableItemComponent, TranslateModule, AsyncPipe, IconButtonComponent],
})
-export class JustificationsScreenComponent extends ListingComponent implements OnInit {
+export default class JustificationsScreenComponent extends ListingComponent implements OnInit {
readonly #dossierTemplateId = getParam(DOSSIER_TEMPLATE_ID);
readonly iconButtonTypes = IconButtonTypes;
readonly tableHeaderLabel = _('justifications-listing.table-header');
@@ -35,7 +51,6 @@ export class JustificationsScreenComponent extends ListingComponent this.#getData()));
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts
index 742ba0c28..9321df252 100644
--- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-page-usage/license-page-usage.component.ts
@@ -4,14 +4,18 @@ import { map } from 'rxjs/operators';
import { ChartDataset } from 'chart.js';
import { ChartBlue, ChartGreen, ChartRed } from '../../utils/constants';
import { getDataUntilCurrentMonth, getLabelsFromLicense, getLineConfig, isCurrentMonthAndYear } from '../../utils/functions';
-import { TranslateService } from '@ngx-translate/core';
+import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { ILicenseData } from '@red/domain';
+import { AsyncPipe, DecimalPipe, NgIf } from '@angular/common';
+import { ChartComponent } from '../chart/chart.component';
@Component({
selector: 'red-license-page-usage',
templateUrl: './license-page-usage.component.html',
styleUrls: ['./license-page-usage.component.scss'],
+ standalone: true,
+ imports: [DecimalPipe, TranslateModule, ChartComponent, NgIf, AsyncPipe],
})
export class LicensePageUsageComponent {
readonly data$ = this.licenseService.selectedLicense$.pipe(map(() => this.#getData()));
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts
index e0cf890b9..37c5e5bbf 100644
--- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-retention-capacity-usage/license-retention-capacity.component.ts
@@ -1,5 +1,5 @@
import { Component } from '@angular/core';
-import { TranslateService } from '@ngx-translate/core';
+import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { size } from '@iqser/common-ui/lib/utils';
import { LicenseService } from '@services/license.service';
import { map } from 'rxjs/operators';
@@ -8,11 +8,17 @@ import { ChartDataset } from 'chart.js';
import { ChartBlack, ChartBlue, ChartGreen, ChartGrey, ChartRed } from '../../utils/constants';
import { getDataUntilCurrentMonth, getLabelsFromLicense, getLineConfig } from '../../utils/functions';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
+import { SizePipe } from '@common-ui/pipes';
+import { AsyncPipe, DecimalPipe, NgIf } from '@angular/common';
+import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
+import { ChartComponent } from '../chart/chart.component';
@Component({
selector: 'red-license-retention-capacity',
templateUrl: './license-retention-capacity.component.html',
styleUrls: ['./license-retention-capacity.component.scss'],
+ standalone: true,
+ imports: [SizePipe, DecimalPipe, NgIf, DonutChartComponent, AsyncPipe, ChartComponent, TranslateModule],
})
export class LicenseRetentionCapacityComponent {
readonly formatSize = size;
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/components/license-select/license-select.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/components/license-select/license-select.component.ts
index 609c9f95a..67c33c4c9 100644
--- a/apps/red-ui/src/app/modules/admin/screens/license/components/license-select/license-select.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/license/components/license-select/license-select.component.ts
@@ -4,6 +4,11 @@ import { ILicense } from '@red/domain';
import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { map, tap } from 'rxjs/operators';
import { LoadingService } from '@iqser/common-ui';
+import { AsyncPipe, NgForOf, NgIf, NgTemplateOutlet, UpperCasePipe } from '@angular/common';
+import { MatFormField } from '@angular/material/form-field';
+import { MatOption, MatSelect, MatSelectTrigger } from '@angular/material/select';
+import { FormsModule } from '@angular/forms';
+import { TranslateModule } from '@ngx-translate/core';
const translations = {
active: _('license-info-screen.status.active'),
@@ -14,6 +19,20 @@ const translations = {
selector: 'redaction-license-select',
templateUrl: './license-select.component.html',
styleUrls: ['./license-select.component.scss'],
+ standalone: true,
+ imports: [
+ AsyncPipe,
+ NgIf,
+ MatFormField,
+ MatSelect,
+ MatSelectTrigger,
+ FormsModule,
+ NgTemplateOutlet,
+ MatOption,
+ NgForOf,
+ TranslateModule,
+ UpperCasePipe,
+ ],
})
export class LicenseSelectComponent {
value: ILicense;
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts
index 8f89fab94..00dc524f5 100644
--- a/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/license/license-screen/license-screen.component.ts
@@ -1,16 +1,35 @@
import { Component } from '@angular/core';
-import { getConfig, IqserPermissionsService } from '@iqser/common-ui';
+import { getConfig, IqserListingModule, IqserPermissionsService, SizePipe } from '@iqser/common-ui';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import type { AppConfig, User } from '@red/domain';
import { LicenseService } from '@services/license.service';
import { RouterHistoryService } from '@services/router-history.service';
import { Roles } from '@users/roles';
+import { TranslateModule } from '@ngx-translate/core';
+import { AsyncPipe, DatePipe, NgIf } from '@angular/common';
+import { LicenseSelectComponent } from '../components/license-select/license-select.component';
+import { LicensePageUsageComponent } from '../components/license-page-usage/license-page-usage.component';
+import { LicenseAnalysisCapacityUsageComponent } from '../components/license-analysis-capacity-usage/license-analysis-capacity-usage.component';
+import { LicenseRetentionCapacityComponent } from '../components/license-retention-capacity-usage/license-retention-capacity.component';
@Component({
templateUrl: './license-screen.component.html',
styleUrls: ['./license-screen.component.scss'],
+ standalone: true,
+ imports: [
+ IqserListingModule,
+ TranslateModule,
+ AsyncPipe,
+ LicenseSelectComponent,
+ NgIf,
+ DatePipe,
+ SizePipe,
+ LicensePageUsageComponent,
+ LicenseAnalysisCapacityUsageComponent,
+ LicenseRetentionCapacityComponent,
+ ],
})
-export class LicenseScreenComponent {
+export default class LicenseScreenComponent {
protected readonly config = getConfig();
protected readonly roles = Roles;
protected readonly currentUser = getCurrentUser();
diff --git a/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts b/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts
deleted file mode 100644
index b509ca40e..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/license/license.module.ts
+++ /dev/null
@@ -1,51 +0,0 @@
-import { CommonModule } from '@angular/common';
-import { inject, NgModule } from '@angular/core';
-import { FormsModule } from '@angular/forms';
-import { MatSelectModule } from '@angular/material/select';
-import { RouterModule, Routes } from '@angular/router';
-import { IqserHelpModeModule, IqserListingModule, SizePipe } from '@iqser/common-ui';
-import { TranslateModule } from '@ngx-translate/core';
-import { LicenseService } from '@services/license.service';
-import { DonutChartComponent } from '@shared/components/donut-chart/donut-chart.component';
-import { BaseChartDirective, provideCharts, withDefaultRegisterables } from 'ng2-charts';
-import { ChartComponent } from './components/chart/chart.component';
-import { LicenseAnalysisCapacityUsageComponent } from './components/license-analysis-capacity-usage/license-analysis-capacity-usage.component';
-import { LicensePageUsageComponent } from './components/license-page-usage/license-page-usage.component';
-import { LicenseRetentionCapacityComponent } from './components/license-retention-capacity-usage/license-retention-capacity.component';
-import { LicenseSelectComponent } from './components/license-select/license-select.component';
-import { LicenseScreenComponent } from './license-screen/license-screen.component';
-
-const routes: Routes = [
- {
- path: '',
- component: LicenseScreenComponent,
- resolve: {
- licenseData: () => inject(LicenseService).loadLicenseData(),
- },
- },
-];
-
-@NgModule({
- declarations: [
- LicenseScreenComponent,
- LicenseSelectComponent,
- ChartComponent,
- LicenseRetentionCapacityComponent,
- LicensePageUsageComponent,
- LicenseAnalysisCapacityUsageComponent,
- ],
- imports: [
- RouterModule.forChild(routes),
- CommonModule,
- TranslateModule,
- MatSelectModule,
- FormsModule,
- IqserListingModule,
- IqserHelpModeModule,
- SizePipe,
- DonutChartComponent,
- BaseChartDirective,
- ],
- providers: [provideCharts(withDefaultRegisterables())],
-})
-export class LicenseModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.ts
index a58f2305f..ddf346f77 100644
--- a/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/permissions/permissions-screen/permissions-screen.component.ts
@@ -1,6 +1,7 @@
import { Component, OnInit } from '@angular/core';
import {
getConfig,
+ IqserListingModule,
IqserPermissionsService,
ListingComponent,
listingProvidersFactory,
@@ -21,13 +22,18 @@ import { Roles } from '@users/roles';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { SortingOrders } from '@iqser/common-ui/lib/sorting';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
+import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
+import { MatSlideToggle } from '@angular/material/slide-toggle';
+import { TranslateModule } from '@ngx-translate/core';
@Component({
templateUrl: './permissions-screen.component.html',
styleUrls: ['./permissions-screen.component.scss'],
providers: listingProvidersFactory(PermissionsScreenComponent),
+ standalone: true,
+ imports: [IqserListingModule, NgIf, NgForOf, MatSlideToggle, AsyncPipe, TranslateModule],
})
-export class PermissionsScreenComponent extends ListingComponent implements OnInit {
+export default class PermissionsScreenComponent extends ListingComponent implements OnInit {
readonly #config = getConfig();
readonly roles = Roles;
readonly currentUser = getCurrentUser();
diff --git a/apps/red-ui/src/app/modules/admin/screens/permissions/permissions.module.ts b/apps/red-ui/src/app/modules/admin/screens/permissions/permissions.module.ts
deleted file mode 100644
index c4fdbd7b6..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/permissions/permissions.module.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { RouterModule } from '@angular/router';
-import { PermissionsScreenComponent } from './permissions-screen/permissions-screen.component';
-import { TranslateModule } from '@ngx-translate/core';
-import { IqserHelpModeModule, IqserListingModule } from '@iqser/common-ui';
-import { MatSlideToggleModule } from '@angular/material/slide-toggle';
-
-const routes = [{ path: '', component: PermissionsScreenComponent }];
-
-@NgModule({
- declarations: [PermissionsScreenComponent],
- imports: [RouterModule.forChild(routes), CommonModule, TranslateModule, IqserListingModule, IqserHelpModeModule, MatSlideToggleModule],
-})
-export class PermissionsModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts
index b2f827492..3d1f25e67 100644
--- a/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/reports/reports-screen/reports-screen.component.ts
@@ -1,7 +1,15 @@
import { ChangeDetectionStrategy, Component, ElementRef, OnInit, ViewChild } from '@angular/core';
import { DOSSIER_TEMPLATE_ID, IPlaceholdersResponse, IReportTemplate, User } from '@red/domain';
import { download } from '@utils/file-download-utils';
-import { getConfig, IConfirmationDialogData, LoadingService, Toaster } from '@iqser/common-ui';
+import {
+ CircleButtonComponent,
+ getConfig,
+ HasScrollbarDirective,
+ IConfirmationDialogData,
+ IqserAllowDirective,
+ LoadingService,
+ Toaster,
+} from '@iqser/common-ui';
import { PermissionsService } from '@services/permissions.service';
import {
generalPlaceholdersDescriptionsTranslations,
@@ -15,6 +23,8 @@ import { BehaviorSubject, firstValueFrom } from 'rxjs';
import { Roles } from '@users/roles';
import { getCurrentUser } from '@iqser/common-ui/lib/users';
import { getParam } from '@iqser/common-ui/lib/utils';
+import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
+import { TranslateModule } from '@ngx-translate/core';
interface Placeholder {
placeholder: string;
@@ -30,8 +40,10 @@ const placeholderTypes: PlaceholderType[] = ['generalPlaceholders', 'fileAttribu
templateUrl: './reports-screen.component.html',
styleUrls: ['./reports-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [HasScrollbarDirective, NgIf, NgForOf, AsyncPipe, TranslateModule, CircleButtonComponent, IqserAllowDirective],
})
-export class ReportsScreenComponent implements OnInit {
+export default class ReportsScreenComponent implements OnInit {
@ViewChild('fileInput') private readonly _fileInput: ElementRef;
readonly placeholders$ = new BehaviorSubject([]);
readonly availableTemplates$ = new BehaviorSubject([]);
diff --git a/apps/red-ui/src/app/modules/admin/screens/reports/reports.module.ts b/apps/red-ui/src/app/modules/admin/screens/reports/reports.module.ts
deleted file mode 100644
index 9175eae4b..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/reports/reports.module.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { RouterModule } from '@angular/router';
-import { ReportsScreenComponent } from './reports-screen/reports-screen.component';
-import { TranslateModule } from '@ngx-translate/core';
-import { CircleButtonComponent, HasScrollbarDirective, IqserAllowDirective, IqserHelpModeModule, IqserRoutes } from '@iqser/common-ui';
-
-const routes: IqserRoutes = [{ path: '', component: ReportsScreenComponent }];
-
-@NgModule({
- declarations: [ReportsScreenComponent],
- imports: [
- RouterModule.forChild(routes),
- CommonModule,
- TranslateModule,
- IqserHelpModeModule,
- CircleButtonComponent,
- HasScrollbarDirective,
- IqserAllowDirective,
- ],
-})
-export class ReportsModule {}
diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts
index 1e2396d05..4abb3ca5e 100644
--- a/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts
+++ b/apps/red-ui/src/app/modules/admin/screens/rules/rules-screen/rules-screen.component.ts
@@ -1,6 +1,6 @@
-import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, OnChanges, OnInit, signal, SimpleChanges } from '@angular/core';
+import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, OnInit, signal } from '@angular/core';
import { PermissionsService } from '@services/permissions.service';
-import { IconButtonTypes, LoadingService, Toaster } from '@iqser/common-ui';
+import { IconButtonComponent, IconButtonTypes, IqserTranslateModule, LoadingService, Toaster } from '@iqser/common-ui';
import { RulesService } from '../../../services/rules.service';
import { firstValueFrom } from 'rxjs';
import { DOSSIER_TEMPLATE_ID, DroolsKeywords, IRules } from '@red/domain';
@@ -12,6 +12,10 @@ import { rulesScreenTranslations } from '../../../translations/rules-screen-tran
import ICodeEditor = monaco.editor.ICodeEditor;
import IModelDeltaDecoration = monaco.editor.IModelDeltaDecoration;
import IStandaloneEditorConstructionOptions = monaco.editor.IStandaloneEditorConstructionOptions;
+import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
+import { MatIcon } from '@angular/material/icon';
+import { FormsModule } from '@angular/forms';
+import { NgIf } from '@angular/common';
interface SyntaxError {
line: number;
@@ -32,8 +36,10 @@ const RULE_VALIDATION_TIMEOUT = 2000;
templateUrl: './rules-screen.component.html',
styleUrls: ['./rules-screen.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
+ standalone: true,
+ imports: [MonacoEditorModule, MatIcon, FormsModule, IqserTranslateModule, IconButtonComponent, NgIf],
})
-export class RulesScreenComponent implements OnInit, ComponentCanDeactivate {
+export default class RulesScreenComponent implements OnInit, ComponentCanDeactivate {
readonly translations = rulesScreenTranslations;
readonly iconButtonTypes = IconButtonTypes;
diff --git a/apps/red-ui/src/app/modules/admin/screens/rules/rules.module.ts b/apps/red-ui/src/app/modules/admin/screens/rules/rules.module.ts
deleted file mode 100644
index e6b248714..000000000
--- a/apps/red-ui/src/app/modules/admin/screens/rules/rules.module.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { RouterModule } from '@angular/router';
-import { RulesScreenComponent } from './rules-screen/rules-screen.component';
-import { MonacoEditorModule } from '@materia-ui/ngx-monaco-editor';
-import { PendingChangesGuard } from '@guards/can-deactivate.guard';
-import { TranslateModule } from '@ngx-translate/core';
-import { IconButtonComponent } from '@iqser/common-ui';
-import { FormsModule } from '@angular/forms';
-import { MatIconModule } from '@angular/material/icon';
-
-const routes = [{ path: '', component: RulesScreenComponent, canDeactivate: [PendingChangesGuard] }];
-
-@NgModule({
- declarations: [RulesScreenComponent],
- imports: [
- RouterModule.forChild(routes),
- CommonModule,
- MonacoEditorModule,
- TranslateModule,
- IconButtonComponent,
- FormsModule,
- MatIconModule,
- ],
-})
-export class RulesModule {}