From 2fe3ff17918d163d90a1c26651d0d11644e8a4ff Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Tue, 21 Mar 2023 00:34:42 +0200 Subject: [PATCH] RED-3800: create dossier attributes listing module --- .../app/modules/admin/admin-routing.module.ts | 5 +- .../src/app/modules/admin/admin.module.ts | 4 -- ...it-dossier-attribute-dialog.component.html | 1 + ...it-dossier-attribute-dialog.component.scss | 5 ++ ...edit-dossier-attribute-dialog.component.ts | 51 +++++++++++------ ...r-attributes-listing-screen.component.html | 56 ++++++------------- ...ier-attributes-listing-screen.component.ts | 30 ++++++++-- .../dossier-attributes-listing.module.ts | 37 ++++++++++++ .../admin/services/admin-dialog.service.ts | 6 -- 9 files changed, 122 insertions(+), 73 deletions(-) rename apps/red-ui/src/app/modules/admin/{dialogs => screens/dossier-attributes-listing}/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.html (99%) create mode 100644 apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.scss rename apps/red-ui/src/app/modules/admin/{dialogs => screens/dossier-attributes-listing}/add-edit-dossier-attribute-dialog/add-edit-dossier-attribute-dialog.component.ts (79%) create mode 100644 apps/red-ui/src/app/modules/admin/screens/dossier-attributes-listing/dossier-attributes-listing.module.ts 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, },