RED-6523: fix routerLinks for multi tenancy
This commit is contained in:
parent
1d9b5b4d69
commit
328ed07386
@ -31,6 +31,7 @@ import {
|
||||
ServerErrorInterceptor,
|
||||
SkeletonComponent,
|
||||
StopPropagationDirective,
|
||||
TenantPipe,
|
||||
TenantsModule,
|
||||
ToastComponent,
|
||||
} from '@iqser/common-ui';
|
||||
@ -173,6 +174,7 @@ export const appModuleFactory = (config: AppConfig) => {
|
||||
IqserDenyDirective,
|
||||
IqserListingModule,
|
||||
IconButtonComponent,
|
||||
TenantPipe,
|
||||
],
|
||||
providers: [
|
||||
{
|
||||
|
||||
@ -38,12 +38,12 @@
|
||||
<mat-menu #userMenu="matMenu" xPosition="before">
|
||||
<div id="user-menu-items">
|
||||
<ng-container *ngFor="let item of userMenuItems; trackBy: trackByName">
|
||||
<a (click)="item.action?.()" *ngIf="item.show" [id]="item.id" [routerLink]="item.routerLink" mat-menu-item>
|
||||
<a (click)="item.action?.()" *ngIf="item.show" [id]="item.id" [routerLink]="item.routerLink | tenant" mat-menu-item>
|
||||
{{ item.name | translate }}
|
||||
</a>
|
||||
</ng-container>
|
||||
|
||||
<button (click)="selectTenant()" id="select-tenant" mat-menu-item *ngIf="tenantContext.hasMultipleTenants">
|
||||
<button (click)="selectTenant()" *ngIf="tenantContext.hasMultipleTenants" id="select-tenant" mat-menu-item>
|
||||
<span translate="top-bar.navigation-items.my-account.children.select-tenant"> </span>
|
||||
</button>
|
||||
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
[id]="first ? 'navigateToActiveDossiers' : ''"
|
||||
[matTooltip]="breadcrumb.options.clamp && (breadcrumb.name$ | async)"
|
||||
[routerLinkActiveOptions]="breadcrumb.options.routerLinkActiveOptions || { exact: false }"
|
||||
[routerLink]="breadcrumb.options.routerLink"
|
||||
[routerLink]="breadcrumb.options.routerLink | tenant"
|
||||
class="breadcrumb"
|
||||
routerLinkActive="active"
|
||||
>
|
||||
@ -30,7 +30,7 @@
|
||||
<mat-menu #dropdownMenu="matMenu" class="padding-bottom-8">
|
||||
<a
|
||||
*ngFor="let option of breadcrumb.options.options"
|
||||
[routerLink]="option.options.routerLink"
|
||||
[routerLink]="option.options.routerLink | tenant"
|
||||
mat-menu-item
|
||||
routerLinkActive="active"
|
||||
>
|
||||
|
||||
@ -51,6 +51,7 @@ import {
|
||||
IqserUploadFileModule,
|
||||
IqserUsersModule,
|
||||
RoundCheckboxComponent,
|
||||
TenantPipe,
|
||||
} from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { AuditInfoDialogComponent } from './dialogs/audit-info-dialog/audit-info-dialog.component';
|
||||
@ -121,6 +122,7 @@ const components = [
|
||||
DetailsRadioComponent,
|
||||
IqserAllowDirective,
|
||||
IqserDenyDirective,
|
||||
TenantPipe,
|
||||
],
|
||||
})
|
||||
export class AdminModule {}
|
||||
|
||||
@ -110,7 +110,7 @@
|
||||
|
||||
<iqser-circle-button
|
||||
*ngIf="permissionsService.canEditEntities()"
|
||||
[routerLink]="dict.routerLink"
|
||||
[routerLink]="dict.routerLink | tenant"
|
||||
[tooltip]="'entities-listing.action.edit' | translate"
|
||||
[type]="circleButtonTypes.dark"
|
||||
icon="iqser:edit"
|
||||
|
||||
@ -14,6 +14,7 @@ import {
|
||||
IqserListingModule,
|
||||
IqserRoutes,
|
||||
IqserUsersModule,
|
||||
TenantPipe,
|
||||
} from '@iqser/common-ui';
|
||||
import { RedRoleGuard } from '@users/red-role.guard';
|
||||
import { WATERMARK_ID } from '@red/domain';
|
||||
@ -71,6 +72,7 @@ const routes: IqserRoutes = [
|
||||
CircleButtonComponent,
|
||||
HasScrollbarDirective,
|
||||
IqserAllowDirective,
|
||||
TenantPipe,
|
||||
],
|
||||
})
|
||||
export class WatermarkModule {}
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
[iqserHelpMode]="'create_new_watermark'"
|
||||
[label]="'watermarks-listing.add-new' | translate"
|
||||
[overlappingElements]="['USER_MENU']"
|
||||
[routerLink]="getRouterLink()"
|
||||
[routerLink]="getRouterLink() | tenant"
|
||||
[type]="iconButtonTypes.primary"
|
||||
icon="iqser:plus"
|
||||
></iqser-icon-button>
|
||||
@ -59,7 +59,7 @@
|
||||
<div class="action-buttons">
|
||||
<div [iqserHelpMode]="'edit_delete_watermark'" [overlappingElements]="['USER_MENU']">
|
||||
<iqser-circle-button
|
||||
[routerLink]="getRouterLink(entity)"
|
||||
[routerLink]="getRouterLink(entity) | tenant"
|
||||
[tooltip]="'watermarks-listing.action.edit' | translate"
|
||||
[type]="circleButtonTypes.dark"
|
||||
icon="iqser:edit"
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
[class.disabled]="isDisabled(item.screen)"
|
||||
[iqserHelpMode]="item.helpModeKey"
|
||||
[routerLinkActiveOptions]="{ exact: false }"
|
||||
[routerLink]="prefix + item.screen"
|
||||
[routerLink]="prefix + item.screen | tenant"
|
||||
class="item"
|
||||
routerLinkActive="active"
|
||||
>
|
||||
|
||||
@ -5,7 +5,7 @@ import { adminSideNavTranslations } from '@translations/admin-side-nav-translati
|
||||
import { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';
|
||||
import { AdminSideNavType, AdminSideNavTypes, ENTITY_TYPE, User } from '@red/domain';
|
||||
import { ROLES } from '@users/roles';
|
||||
import { getCurrentUser, IqserHelpModeModule, IqserPermissionsService, SideNavComponent } from '@iqser/common-ui';
|
||||
import { getCurrentUser, IqserHelpModeModule, IqserPermissionsService, SideNavComponent, TenantPipe } from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { NgForOf, NgIf } from '@angular/common';
|
||||
|
||||
@ -21,7 +21,7 @@ interface NavItem {
|
||||
templateUrl: './admin-side-nav.component.html',
|
||||
styleUrls: ['./admin-side-nav.component.scss'],
|
||||
standalone: true,
|
||||
imports: [TranslateModule, NgIf, IqserHelpModeModule, RouterLink, RouterLinkActive, NgForOf, SideNavComponent],
|
||||
imports: [TranslateModule, NgIf, IqserHelpModeModule, RouterLink, RouterLinkActive, NgForOf, SideNavComponent, TenantPipe],
|
||||
})
|
||||
export class AdminSideNavComponent implements OnInit {
|
||||
@Input() type: AdminSideNavType;
|
||||
|
||||
@ -2,25 +2,29 @@
|
||||
<ng-container *ngIf="dossierTemplate$ | async as dossierTemplate">
|
||||
<a
|
||||
*ngIf="root || dossierTemplate"
|
||||
[routerLink]="'/main/admin/dossier-templates'"
|
||||
[routerLink]="'/main/admin/dossier-templates' | tenant"
|
||||
class="breadcrumb"
|
||||
translate="dossier-templates.label"
|
||||
></a>
|
||||
|
||||
<mat-icon svgIcon="iqser:arrow-right"></mat-icon>
|
||||
|
||||
<a [class.active]="(activeDictionary$ | async) === undefined" [routerLink]="dossierTemplate.routerLink" class="breadcrumb ml-0">
|
||||
<a
|
||||
[class.active]="(activeDictionary$ | async) === undefined"
|
||||
[routerLink]="dossierTemplate.routerLink | tenant"
|
||||
class="breadcrumb ml-0"
|
||||
>
|
||||
{{ dossierTemplate.name }}
|
||||
</a>
|
||||
|
||||
<ng-container *ngIf="activeDictionary$ | async as activeDictionary">
|
||||
<mat-icon svgIcon="iqser:arrow-right"></mat-icon>
|
||||
<a [routerLink]="dossierTemplate.routerLink + '/entities'" class="breadcrumb ml-0">
|
||||
<a [routerLink]="dossierTemplate.routerLink + '/entities' | tenant" class="breadcrumb ml-0">
|
||||
{{ 'admin-side-nav.entities' | translate }}
|
||||
</a>
|
||||
|
||||
<mat-icon svgIcon="iqser:arrow-right"></mat-icon>
|
||||
<a [routerLink]="activeDictionary.routerLink" class="breadcrumb ml-0" routerLinkActive="active">
|
||||
<a [routerLink]="activeDictionary.routerLink | tenant" class="breadcrumb ml-0" routerLinkActive="active">
|
||||
{{ activeDictionary.label }}
|
||||
</a>
|
||||
</ng-container>
|
||||
|
||||
@ -8,13 +8,14 @@ import { DictionariesMapService } from '@services/entity-services/dictionaries-m
|
||||
import { AsyncPipe, NgIf } from '@angular/common';
|
||||
import { MatIconModule } from '@angular/material/icon';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { TenantPipe } from '@iqser/common-ui';
|
||||
|
||||
@Component({
|
||||
selector: 'redaction-dossier-template-breadcrumbs',
|
||||
templateUrl: './dossier-template-breadcrumbs.component.html',
|
||||
styleUrls: ['./dossier-template-breadcrumbs.component.scss'],
|
||||
standalone: true,
|
||||
imports: [NgIf, AsyncPipe, RouterLink, MatIconModule, TranslateModule, RouterLinkActive],
|
||||
imports: [NgIf, AsyncPipe, RouterLink, MatIconModule, TranslateModule, RouterLinkActive, TenantPipe],
|
||||
})
|
||||
export class DossierTemplateBreadcrumbsComponent {
|
||||
@Input() root = false;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<div class="workflow-item">
|
||||
<div class="details-wrapper">
|
||||
<div class="details">
|
||||
<div [matTooltip]="file.filename" [routerLink]="file.routerLink" class="filename pointer" matTooltipPosition="above">
|
||||
<div [matTooltip]="file.filename" [routerLink]="file.routerLink | tenant" class="filename pointer" matTooltipPosition="above">
|
||||
{{ file.filename }}
|
||||
</div>
|
||||
|
||||
|
||||
@ -13,6 +13,7 @@ import {
|
||||
IqserUsersModule,
|
||||
StatusBarComponent,
|
||||
StopPropagationDirective,
|
||||
TenantPipe,
|
||||
} from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { DossierOverviewScreenComponent } from './screen/dossier-overview-screen.component';
|
||||
@ -68,6 +69,7 @@ const routes: IqserRoutes = [
|
||||
HasScrollbarDirective,
|
||||
DynamicInputComponent,
|
||||
IqserAllowDirective,
|
||||
TenantPipe,
|
||||
],
|
||||
})
|
||||
export class DossierOverviewModule {}
|
||||
|
||||
@ -36,9 +36,9 @@
|
||||
|
||||
<redaction-file-actions
|
||||
[dossier]="dossier"
|
||||
[fileActionsHelpModeKey]="'editor_document_features'"
|
||||
[file]="file"
|
||||
[minWidth]="width"
|
||||
[fileActionsHelpModeKey]="'editor_document_features'"
|
||||
type="file-preview"
|
||||
></redaction-file-actions>
|
||||
|
||||
@ -64,7 +64,7 @@
|
||||
<iqser-circle-button
|
||||
(action)="closeFullScreen()"
|
||||
*ngIf="!fullScreen"
|
||||
[routerLink]="dossier.routerLink"
|
||||
[routerLink]="dossier.routerLink | tenant"
|
||||
[tooltip]="'common.close' | translate"
|
||||
class="ml-8"
|
||||
icon="iqser:close"
|
||||
|
||||
@ -21,6 +21,7 @@ import {
|
||||
RoundCheckboxComponent,
|
||||
StatusBarComponent,
|
||||
StopPropagationDirective,
|
||||
TenantPipe,
|
||||
} from '@iqser/common-ui';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { RouterModule } from '@angular/router';
|
||||
@ -139,6 +140,7 @@ const components = [
|
||||
RoundCheckboxComponent,
|
||||
IqserAllowDirective,
|
||||
IqserDenyDirective,
|
||||
TenantPipe,
|
||||
],
|
||||
providers: [FilePreviewDialogService, ManualRedactionService, DocumentUnloadedGuard, SuggestionsService],
|
||||
})
|
||||
|
||||
@ -50,7 +50,7 @@
|
||||
<div class="cell small-label full-opacity stats-subtitle">
|
||||
<div>
|
||||
<mat-icon *ngIf="item.archived" svgIcon="red:archive"></mat-icon>
|
||||
<a [routerLink]="routerLink" stopPropagation> {{ item.dossierName }}</a>
|
||||
<a [routerLink]="routerLink | tenant" stopPropagation> {{ item.dossierName }}</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { SearchScreenComponent } from './search-screen/search-screen.component';
|
||||
import { RouterModule } from '@angular/router';
|
||||
import { IqserListingModule, IqserUsersModule, StatusBarComponent, StopPropagationDirective } from '@iqser/common-ui';
|
||||
import { IqserListingModule, IqserUsersModule, StatusBarComponent, StopPropagationDirective, TenantPipe } from '@iqser/common-ui';
|
||||
import { SharedModule } from '@shared/shared.module';
|
||||
import { TranslateModule } from '@ngx-translate/core';
|
||||
import { SearchItemTemplateComponent } from './search-item-template/search-item-template.component';
|
||||
@ -20,6 +20,7 @@ const routes = [{ path: '', component: SearchScreenComponent }];
|
||||
IqserListingModule,
|
||||
StatusBarComponent,
|
||||
StopPropagationDirective,
|
||||
TenantPipe,
|
||||
],
|
||||
})
|
||||
export class SearchModule {}
|
||||
|
||||
@ -20,7 +20,11 @@
|
||||
</div>
|
||||
|
||||
<div class="cell">
|
||||
<a *ngIf="item.isFile && fileDossier$ | async as fileDossier" [routerLink]="fileDossier.routerLink" class="small-label link-action">
|
||||
<a
|
||||
*ngIf="item.isFile && fileDossier$ | async as fileDossier"
|
||||
[routerLink]="fileDossier.routerLink | tenant"
|
||||
class="small-label link-action"
|
||||
>
|
||||
{{ fileDossier.dossierName }}
|
||||
</a>
|
||||
|
||||
|
||||
@ -2,7 +2,7 @@ import { NgModule } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { RouterModule } from '@angular/router';
|
||||
import { TrashScreenComponent } from './trash-screen/trash-screen.component';
|
||||
import { CircleButtonComponent, IqserListingModule, IqserUsersModule } from '@iqser/common-ui';
|
||||
import { CircleButtonComponent, IqserListingModule, IqserUsersModule, TenantPipe } from '@iqser/common-ui';
|
||||
import { TrashTableItemComponent } from './trash-screen/trash-table-item/trash-table-item.component';
|
||||
import { SharedModule } from '@shared/shared.module';
|
||||
import { TrashDialogService } from './services/trash-dialog.service';
|
||||
@ -20,6 +20,7 @@ const routes = [{ path: '', component: TrashScreenComponent }];
|
||||
TranslateModule,
|
||||
IqserListingModule,
|
||||
CircleButtonComponent,
|
||||
TenantPipe,
|
||||
],
|
||||
providers: [TrashDialogService],
|
||||
})
|
||||
|
||||
@ -33,6 +33,7 @@ export function configurationInitializer(
|
||||
licenseService: LicenseService,
|
||||
permissionsService: IqserPermissionsService,
|
||||
) {
|
||||
console.log('BASE HREF: ', baseHref);
|
||||
const setup = keycloakStatusService.keycloakStatus$.pipe(
|
||||
filter(event => event === KeycloakStatus.READY || event === KeycloakStatus.NOT_ACTIVE),
|
||||
map(() => featuresService.loadConfig()),
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 00d55e470f99fb1defa1ae7250af793d6fe70115
|
||||
Subproject commit 5c24018d1265f53ec312ce79f03bbc7af14a53f5
|
||||
Loading…
x
Reference in New Issue
Block a user