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 68703dac6..7492cccfa 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
@@ -8,7 +8,6 @@ import { UserListingScreenComponent } from './screens/user-listing/user-listing-
import { DigitalSignatureScreenComponent } from './screens/digital-signature/digital-signature-screen.component';
import { AuditScreenComponent } from './screens/audit/audit-screen.component';
import { RouterModule } from '@angular/router';
-import { DossierAttributesListingScreenComponent } from './screens/dossier-attributes-listing/dossier-attributes-listing-screen.component';
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';
@@ -90,7 +89,9 @@ const dossierTemplateIdRoutes: IqserRoutes = [
},
{
path: 'dossier-attributes',
- component: DossierAttributesListingScreenComponent,
+ component: BaseDossierTemplateScreenComponent,
+ loadChildren: () =>
+ import('./screens/dossier-attributes-listing/dossier-attributes-listing.module').then(m => m.DossierAttributesListingModule),
canActivate: [CompositeRouteGuard],
data: {
routeGuards: [IqserAuthGuard, 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
index a1f9839ca..881b9ddc6 100644
--- a/apps/red-ui/src/app/modules/admin/admin.module.ts
+++ b/apps/red-ui/src/app/modules/admin/admin.module.ts
@@ -18,8 +18,6 @@ import { AddEditUserDialogComponent } from './dialogs/add-edit-user-dialog/add-e
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 { AddEditDossierAttributeDialogComponent } from './dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component';
-import { DossierAttributesListingScreenComponent } from './screens/dossier-attributes-listing/dossier-attributes-listing-screen.component';
import { AuditService } from './services/audit.service';
import { DigitalSignatureService } from './services/digital-signature.service';
import { BaseAdminScreenComponent } from './base-admin-screen/base-admin-screen.component';
@@ -64,7 +62,6 @@ const dialogs = [
EditColorDialogComponent,
SmtpAuthDialogComponent,
AddEditUserDialogComponent,
- AddEditDossierAttributeDialogComponent,
UploadDictionaryDialogComponent,
ConfigureCertificateDialogComponent,
AuditInfoDialogComponent,
@@ -77,7 +74,6 @@ const screens = [
DigitalSignatureScreenComponent,
UserListingScreenComponent,
GeneralConfigScreenComponent,
- DossierAttributesListingScreenComponent,
];
const components = [
diff --git a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html
similarity index 99%
rename from apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html
rename to apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html
index 42c9d30b1..c793c3bab 100644
--- a/apps/red-ui/src/app/modules/admin/dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html
@@ -29,6 +29,7 @@
+
-
-
-
-
+
+
+
+
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 941ffd6e7..52237039e 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
@@ -1,6 +1,7 @@
import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import {
CircleButtonTypes,
+ defaultDialogConfig,
getCurrentUser,
getParam,
IconButtonTypes,
@@ -16,6 +17,11 @@ import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
import { DOSSIER_TEMPLATE_ID, DossierAttributeConfig, IDossierAttributeConfig, User } from '@red/domain';
import { firstValueFrom } from 'rxjs';
import { PermissionsService } from '@services/permissions.service';
+import { MatDialog } from '@angular/material/dialog';
+import {
+ AddEditDossierAttributeDialogComponent,
+ AddEditDossierAttributeDialogData,
+} from './add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component';
@Component({
templateUrl: './dossier-attributes-listing-screen.component.html',
@@ -44,13 +50,14 @@ export class DossierAttributesListingScreenComponent extends ListingComponent
{
- await this._loadData();
+ await this.#loadData();
}
async openConfirmDeleteAttributeDialog($event: MouseEvent, attributes: DossierAttributeConfig[] = this.listingService.selected) {
@@ -58,17 +65,30 @@ export class DossierAttributesListingScreenComponent extends ListingComponent a.id);
await firstValueFrom(this._dossierAttributesService.delete(ids, this.#dossierTemplateId));
- await this._loadData();
+ await this.#loadData();
});
}
- openAddEditAttributeDialog(dossierAttribute?: IDossierAttributeConfig) {
+ async openAddEditAttributeDialog(dossierAttribute?: IDossierAttributeConfig) {
const dossierTemplateId = this.#dossierTemplateId;
- this._dialogService.openDialog('addEditDossierAttribute', { dossierAttribute, dossierTemplateId }, async () => this._loadData());
+ const ref = this._dialog.open(
+ AddEditDossierAttributeDialogComponent,
+ {
+ ...defaultDialogConfig,
+ autoFocus: true,
+ data: { dossierAttribute, dossierTemplateId },
+ },
+ );
+
+ const result = await firstValueFrom(ref.afterClosed());
+
+ if (result) {
+ await this.#loadData();
+ }
}
- private async _loadData() {
+ async #loadData() {
this._loadingService.start();
await firstValueFrom(this._dossierAttributesService.loadAll(this.#dossierTemplateId));
this._loadingService.stop();
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
new file mode 100644
index 000000000..5729c4cd7
--- /dev/null
+++ b/apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing.module.ts
@@ -0,0 +1,37 @@
+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';
+
+const routes: IqserRoutes = [
+ {
+ path: '',
+ component: DossierAttributesListingScreenComponent,
+ },
+];
+
+@NgModule({
+ declarations: [DossierAttributesListingScreenComponent],
+ 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/services/admin-dialog.service.ts b/apps/red-ui/src/app/modules/admin/services/admin-dialog.service.ts
index 2925a9da5..1700faaa7 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
@@ -5,7 +5,6 @@ import { AddEditCloneDossierTemplateDialogComponent } from '../dialogs/add-edit-
import { EditColorDialogComponent } from '../dialogs/edit-color-dialog/edit-color-dialog.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 { AddEditDossierAttributeDialogComponent } from '../dialogs/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component';
import {
ConfirmationDialogComponent,
ConfirmOptions,
@@ -33,7 +32,6 @@ type DialogType =
| 'smtpAuthConfig'
| 'addEditCloneDossierTemplate'
| 'auditInfo'
- | 'addEditDossierAttribute'
| 'uploadDictionary'
| 'configureCertificate';
@@ -64,10 +62,6 @@ export class AdminDialogService extends DialogService {
component: AddEditCloneDossierTemplateDialogComponent,
dialogConfig: { width: '900px', autoFocus: true },
},
- addEditDossierAttribute: {
- component: AddEditDossierAttributeDialogComponent,
- dialogConfig: { autoFocus: true },
- },
uploadDictionary: {
component: UploadDictionaryDialogComponent,
},