RED-6523 - ui multitenancy links
This commit is contained in:
parent
8c1c3f7a29
commit
722e86eb7a
@ -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 {
|
||||
|
||||
@ -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')));
|
||||
}
|
||||
}
|
||||
|
||||
@ -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` },
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -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<INotification, Notific
|
||||
constructor(
|
||||
@Inject(BASE_HREF) private readonly _baseHref: string,
|
||||
private readonly _translateService: TranslateService,
|
||||
private readonly _tenantContextHolder: TenantContextHolder,
|
||||
private readonly _userService: UserService,
|
||||
private readonly _dossiersCacheService: DossiersCacheService,
|
||||
) {
|
||||
@ -120,6 +131,7 @@ export class NotificationsService extends EntitiesService<INotification, Notific
|
||||
const dossier = this._dossiersCacheService.get(dossierId);
|
||||
const fileName = notification.target.fileName;
|
||||
const dossierName = notification.target?.dossierName ?? dossier?.dossierName;
|
||||
const downloadHref = `/ui/${this._tenantContextHolder.currentTenant}/main/downloads`;
|
||||
|
||||
return this._translateService.instant(translation, {
|
||||
fileHref: this._getFileHref(dossier, fileId),
|
||||
@ -127,6 +139,7 @@ export class NotificationsService extends EntitiesService<INotification, Notific
|
||||
dossierName: dossierName ?? this._translateService.instant(_('notifications.deleted-dossier')),
|
||||
fileName: fileName ?? this._translateService.instant(_('file')),
|
||||
user: this._getUsername(notification.userId),
|
||||
downloadHref: downloadHref,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -1717,7 +1717,7 @@
|
||||
"dossier-owner-deleted": "",
|
||||
"dossier-owner-removed": "Der Dossier-Owner von <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> wurde entfernt!",
|
||||
"dossier-owner-set": "Eigentümer von <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> geändert zu <b>{user}</b>!",
|
||||
"download-ready": "Ihr <b><a href='/ui/main/downloads', target=\"_blank\">Download</a></b> ist fertig!",
|
||||
"download-ready": "Ihr <b><a href=\"{downloadHref}\", target=\"_blank\">Download</a></b> ist fertig!",
|
||||
"no-data": "Du hast aktuell keine Benachrichtigungen",
|
||||
"unassigned-from-file": "Sie wurden vom Dokument <b>{fileHref, select, null{{fileName}} other{<a href=\"{fileHref}\" target=\"_blank\">{fileName}</a>}}</b> im Dossier <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}<b> entfernt!",
|
||||
"user-becomes-dossier-member": "<b>{user}</b> ist jetzt Mitglied des Dossiers <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
|
||||
@ -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: <a href='/ui/main/downloads'>My Downloads<a/>."
|
||||
"queued": "Your download has been queued, you can see all your requested downloads here: <a href=\"{downloadHref}\">My Downloads<a/>."
|
||||
},
|
||||
"download-type": {
|
||||
"annotated": "Annotated PDF",
|
||||
@ -1717,7 +1717,7 @@
|
||||
"dossier-owner-deleted": "The owner of dossier: <b>{dossierName}</b> has been deleted!",
|
||||
"dossier-owner-removed": "You have been removed as dossier owner from <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
"dossier-owner-set": "You are now the dossier owner of <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
"download-ready": "Your <b><a href='/ui/main/downloads', target=\"_blank\">download</a></b> is ready!",
|
||||
"download-ready": "Your <b><a href=\"{downloadHref}\", target=\"_blank\">download</a></b> is ready!",
|
||||
"no-data": "You currently have no notifications",
|
||||
"unassigned-from-file": "You have been unassigned from <b>{fileHref, select, null{{fileName}} other{<a href=\"{fileHref}\" target=\"_blank\">{fileName}</a>}}</b> in dossier: <b>{dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}}}</b>!",
|
||||
"user-becomes-dossier-member": "You have been added to dossier: <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
|
||||
@ -1717,7 +1717,7 @@
|
||||
"dossier-owner-deleted": "",
|
||||
"dossier-owner-removed": "Der Dossier-Owner von <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> wurde entfernt!",
|
||||
"dossier-owner-set": "Eigentümer von <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b> geändert zu <b>{user}</b>!",
|
||||
"download-ready": "Ihr <b><a href='/ui/main/downloads', target=\"_blank\">Download</a></b> ist fertig!",
|
||||
"download-ready": "Ihr <b><a href=\"{downloadHref}\", target=\"_blank\">Download</a></b> ist fertig!",
|
||||
"no-data": "Du hast aktuell keine Benachrichtigungen",
|
||||
"unassigned-from-file": "Sie wurden vom Dokument <b>{fileHref, select, null{{fileName}} other{<a href=\"{fileHref}\" target=\"_blank\">{fileName}</a>}}</b> im Dossier <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}<b> entfernt!",
|
||||
"user-becomes-dossier-member": "<b>{user}</b> ist jetzt Mitglied des Dossiers <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
|
||||
@ -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: <a href='/ui/main/downloads'>My Downloads<a/>."
|
||||
"queued": "Your download has been queued, you can see all your requested downloads here: <a href=\"{downloadHref}\">My Downloads<a/>."
|
||||
},
|
||||
"download-type": {
|
||||
"annotated": "Annotated PDF",
|
||||
@ -1717,7 +1717,7 @@
|
||||
"dossier-owner-deleted": "The owner of dossier: <b>{dossierName}</b> has been deleted!",
|
||||
"dossier-owner-removed": "You have been removed as dossier owner from <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
"dossier-owner-set": "You are now the dossier owner of <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
"download-ready": "Your <b><a href='/ui/main/downloads', target=\"_blank\">download</a></b> is ready!",
|
||||
"download-ready": "Your <b><a href=\"{downloadHref}\", target=\"_blank\">download</a></b> is ready!",
|
||||
"no-data": "You currently have no notifications",
|
||||
"unassigned-from-file": "You have been unassigned from <b>{fileHref, select, null{{fileName}} other{<a href=\"{fileHref}\" target=\"_blank\">{fileName}</a>}}</b> in dossier: <b>{dossierHref, select, null{{dossierName}} other{{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}}}</b>!",
|
||||
"user-becomes-dossier-member": "You have been added to dossier: <b>{dossierHref, select, null{{dossierName}} other{<a href=\"{dossierHref}\" target=\"_blank\">{dossierName}</a>}}</b>!",
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 97470bb723f430e9bee2a04f7a4266eb5faa3b6d
|
||||
Subproject commit 6c63f851cf09496d425e9af75f18902557021c8e
|
||||
Loading…
x
Reference in New Issue
Block a user