From 722e86eb7a6a8ee4c6c53f456ca491268f20224c Mon Sep 17 00:00:00 2001 From: Timo Bejan Date: Wed, 5 Apr 2023 16:21:07 +0300 Subject: [PATCH] RED-6523 - ui multitenancy links --- .../admin-side-nav.component.ts | 27 ++++++++++++++++--- .../file-download-btn.component.ts | 9 +++++-- .../expandable-file-actions.component.ts | 14 ++++++++-- .../src/app/services/notifications.service.ts | 15 ++++++++++- apps/red-ui/src/assets/i18n/redact/de.json | 2 +- apps/red-ui/src/assets/i18n/redact/en.json | 4 +-- apps/red-ui/src/assets/i18n/scm/de.json | 2 +- apps/red-ui/src/assets/i18n/scm/en.json | 4 +-- libs/common-ui | 2 +- 9 files changed, 64 insertions(+), 15 deletions(-) diff --git a/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts b/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts index a80730466..fedf5832c 100644 --- a/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts +++ b/apps/red-ui/src/app/modules/admin/shared/components/admin-side-nav/admin-side-nav.component.ts @@ -3,9 +3,16 @@ import { UserPreferenceService } from '@users/user-preference.service'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { adminSideNavTranslations } from '@translations/admin-side-nav-translations'; import { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router'; -import { AdminSideNavType, AdminSideNavTypes, ENTITY_TYPE, User } from '@red/domain'; +import { AdminSideNavType, AdminSideNavTypes, DOSSIER_TEMPLATE_ID, ENTITY_TYPE, User, WATERMARK_ID } from '@red/domain'; import { ROLES } from '@users/roles'; -import { getCurrentUser, IqserHelpModeModule, IqserPermissionsService, SideNavComponent, TenantPipe } from '@iqser/common-ui'; +import { + getCurrentUser, + IqserHelpModeModule, + IqserPermissionsService, + SideNavComponent, + TenantContextHolder, + TenantPipe, +} from '@iqser/common-ui'; import { TranslateModule } from '@ngx-translate/core'; import { NgForOf, NgIf } from '@angular/common'; @@ -166,6 +173,7 @@ export class AdminSideNavComponent implements OnInit { constructor( private readonly _permissionsService: IqserPermissionsService, + private readonly _tenantContextHolder: TenantContextHolder, private readonly _route: ActivatedRoute, readonly userPreferenceService: UserPreferenceService, ) {} @@ -175,7 +183,20 @@ export class AdminSideNavComponent implements OnInit { } ngOnInit(): void { - this.prefix = this._route.snapshot.paramMap.get(ENTITY_TYPE) ? '' : '../'; + const dossierTemplate = this._route.snapshot.paramMap.get(DOSSIER_TEMPLATE_ID); + const watermark = this._route.snapshot.paramMap.get(WATERMARK_ID); + const entity = this._route.snapshot.paramMap.get(ENTITY_TYPE); + if (!dossierTemplate) { + this.prefix = '/main/admin/'; + } else { + this.prefix = `/main/admin/dossier-templates/${dossierTemplate}/`; + if (entity) { + this.prefix = this.prefix + `entities/${entity}/`; + } + if (watermark) { + this.prefix = this.prefix + `watermarks/${watermark}/`; + } + } } isDisabled(screen: string): boolean { diff --git a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts index be2fb8f3f..6aa2bed8e 100644 --- a/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/buttons/file-download-btn/file-download-btn.component.ts @@ -2,7 +2,7 @@ import { Component, Input, OnChanges } from '@angular/core'; import { PermissionsService } from '@services/permissions.service'; import { Dossier, File, ProcessingFileStatuses } from '@red/domain'; import { FileDownloadService } from '@upload-download/services/file-download.service'; -import { CircleButtonType, CircleButtonTypes, defaultDialogConfig, Toaster } from '@iqser/common-ui'; +import { CircleButtonType, CircleButtonTypes, defaultDialogConfig, TenantContextHolder, Toaster } from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { MatDialog } from '@angular/material/dialog'; import { @@ -31,6 +31,7 @@ export class FileDownloadBtnComponent implements OnChanges { constructor( private readonly _permissionsService: PermissionsService, + private readonly _tenantContextHolder: TenantContextHolder, private readonly _fileDownloadService: FileDownloadService, private readonly _dialog: MatDialog, private readonly _toaster: Toaster, @@ -59,7 +60,11 @@ export class FileDownloadBtnComponent implements OnChanges { }); await downloadRequest - .then(() => this._toaster.info(_('download-status.queued'))) + .then(() => + this._toaster.info(_('download-status.queued'), { + params: { downloadHref: `/ui/${this._tenantContextHolder.currentTenant}/main/downloads` }, + }), + ) .catch(() => this._toaster.error(_('download-status.error'))); } } diff --git a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts index abf7722c2..3793837a7 100644 --- a/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts +++ b/apps/red-ui/src/app/modules/shared/components/expandable-file-actions/expandable-file-actions.component.ts @@ -1,6 +1,13 @@ import { Component, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core'; import { Action, ActionTypes, Dossier, File } from '@red/domain'; -import { CircleButtonType, defaultDialogConfig, IqserTooltipPosition, Toaster, trackByFactory } from '@iqser/common-ui'; +import { + CircleButtonType, + defaultDialogConfig, + IqserTooltipPosition, + TenantContextHolder, + Toaster, + trackByFactory, +} from '@iqser/common-ui'; import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker'; import { FileDownloadService } from '@upload-download/services/file-download.service'; import { PermissionsService } from '@services/permissions.service'; @@ -34,6 +41,7 @@ export class ExpandableFileActionsComponent implements OnChanges { constructor( private readonly _fileDownloadService: FileDownloadService, + private readonly _tenantContextHolder: TenantContextHolder, private readonly _toaster: Toaster, private readonly _permissionsService: PermissionsService, private readonly _dialog: MatDialog, @@ -97,6 +105,8 @@ export class ExpandableFileActionsComponent implements OnChanges { fileIds: files.map(f => f.id), ...result, }); - this._toaster.info(_('download-status.queued')); + this._toaster.info(_('download-status.queued'), { + params: { downloadHref: `/ui/${this._tenantContextHolder.currentTenant}/main/downloads` }, + }); } } diff --git a/apps/red-ui/src/app/services/notifications.service.ts b/apps/red-ui/src/app/services/notifications.service.ts index 4d353ed38..a7f7c1a6b 100644 --- a/apps/red-ui/src/app/services/notifications.service.ts +++ b/apps/red-ui/src/app/services/notifications.service.ts @@ -1,5 +1,15 @@ import { Inject, Injectable, OnDestroy } from '@angular/core'; -import { BASE_HREF, EntitiesService, getConfig, List, mapEach, QueryParam, RequiredParam, Validate } from '@iqser/common-ui'; +import { + BASE_HREF, + EntitiesService, + getConfig, + List, + mapEach, + QueryParam, + RequiredParam, + TenantContextHolder, + Validate, +} from '@iqser/common-ui'; import { TranslateService } from '@ngx-translate/core'; import { EMPTY, firstValueFrom, iif, merge, Observable, of, Subscription, timer } from 'rxjs'; import { AppConfig, Dossier, INotification, Notification, NotificationTypes } from '@red/domain'; @@ -30,6 +40,7 @@ export class NotificationsService extends EntitiesService{dossierHref, select, null{{dossierName}} other{{dossierName}}} wurde entfernt!", "dossier-owner-set": "Eigentümer von {dossierHref, select, null{{dossierName}} other{{dossierName}}} geändert zu {user}!", - "download-ready": "Ihr Download ist fertig!", + "download-ready": "Ihr Download ist fertig!", "no-data": "Du hast aktuell keine Benachrichtigungen", "unassigned-from-file": "Sie wurden vom Dokument {fileHref, select, null{{fileName}} other{{fileName}}} im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} entfernt!", "user-becomes-dossier-member": "{user} ist jetzt Mitglied des Dossiers {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", diff --git a/apps/red-ui/src/assets/i18n/redact/en.json b/apps/red-ui/src/assets/i18n/redact/en.json index 8ca3dd376..03b83ce1a 100644 --- a/apps/red-ui/src/assets/i18n/redact/en.json +++ b/apps/red-ui/src/assets/i18n/redact/en.json @@ -1053,7 +1053,7 @@ "download-includes": "Choose what is included at download:", "download-status": { "error": "The download preparation failed, please recheck the selected files and download option settings.", - "queued": "Your download has been queued, you can see all your requested downloads here: My Downloads." + "queued": "Your download has been queued, you can see all your requested downloads here: My Downloads." }, "download-type": { "annotated": "Annotated PDF", @@ -1717,7 +1717,7 @@ "dossier-owner-deleted": "The owner of dossier: {dossierName} has been deleted!", "dossier-owner-removed": "You have been removed as dossier owner from {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "dossier-owner-set": "You are now the dossier owner of {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "download-ready": "Your download is ready!", + "download-ready": "Your download is ready!", "no-data": "You currently have no notifications", "unassigned-from-file": "You have been unassigned from {fileHref, select, null{{fileName}} other{{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}!", "user-becomes-dossier-member": "You have been added to dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", diff --git a/apps/red-ui/src/assets/i18n/scm/de.json b/apps/red-ui/src/assets/i18n/scm/de.json index a70ccebdd..f9f3614b5 100644 --- a/apps/red-ui/src/assets/i18n/scm/de.json +++ b/apps/red-ui/src/assets/i18n/scm/de.json @@ -1717,7 +1717,7 @@ "dossier-owner-deleted": "", "dossier-owner-removed": "Der Dossier-Owner von {dossierHref, select, null{{dossierName}} other{{dossierName}}} wurde entfernt!", "dossier-owner-set": "Eigentümer von {dossierHref, select, null{{dossierName}} other{{dossierName}}} geändert zu {user}!", - "download-ready": "Ihr Download ist fertig!", + "download-ready": "Ihr Download ist fertig!", "no-data": "Du hast aktuell keine Benachrichtigungen", "unassigned-from-file": "Sie wurden vom Dokument {fileHref, select, null{{fileName}} other{{fileName}}} im Dossier {dossierHref, select, null{{dossierName}} other{{dossierName}}} entfernt!", "user-becomes-dossier-member": "{user} ist jetzt Mitglied des Dossiers {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", diff --git a/apps/red-ui/src/assets/i18n/scm/en.json b/apps/red-ui/src/assets/i18n/scm/en.json index ea9c964eb..264f2d8c3 100644 --- a/apps/red-ui/src/assets/i18n/scm/en.json +++ b/apps/red-ui/src/assets/i18n/scm/en.json @@ -1053,7 +1053,7 @@ "download-includes": "Choose what is included at download:", "download-status": { "error": "", - "queued": "Your download has been queued, you can see all your requested downloads here: My Downloads." + "queued": "Your download has been queued, you can see all your requested downloads here: My Downloads." }, "download-type": { "annotated": "Annotated PDF", @@ -1717,7 +1717,7 @@ "dossier-owner-deleted": "The owner of dossier: {dossierName} has been deleted!", "dossier-owner-removed": "You have been removed as dossier owner from {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", "dossier-owner-set": "You are now the dossier owner of {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", - "download-ready": "Your download is ready!", + "download-ready": "Your download is ready!", "no-data": "You currently have no notifications", "unassigned-from-file": "You have been unassigned from {fileHref, select, null{{fileName}} other{{fileName}}} in dossier: {dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{{dossierName}}}}}!", "user-becomes-dossier-member": "You have been added to dossier: {dossierHref, select, null{{dossierName}} other{{dossierName}}}!", diff --git a/libs/common-ui b/libs/common-ui index 97470bb72..6c63f851c 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 97470bb723f430e9bee2a04f7a4266eb5faa3b6d +Subproject commit 6c63f851cf09496d425e9af75f18902557021c8e