RED-6713: sort tenants
This commit is contained in:
parent
ca0a80cf4e
commit
6be8474c7f
@ -1,9 +1,9 @@
|
||||
<div id="tenants-menu-items">
|
||||
<ng-container *ngFor="let item of storedTenants(); trackBy: trackBy">
|
||||
<div class="label">{{ item.tenant.displayName }}</div>
|
||||
<ng-container *ngFor="let item of storedTenants | keyvalue; trackBy: trackBy">
|
||||
<div class="label">{{ item.key }}</div>
|
||||
|
||||
<a (click)="selectTenant(item.tenant.tenantId)" [id]="item.tenant.tenantId" mat-menu-item>
|
||||
{{ item.email }}
|
||||
<a (click)="selectTenant(stored.tenant.tenantId)" *ngFor="let stored of item.value" [id]="stored.tenant.tenantId" mat-menu-item>
|
||||
{{ stored.email }}
|
||||
</a>
|
||||
<mat-divider class="pb-3 pt-3"></mat-divider>
|
||||
</ng-container>
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
import { Component, computed, inject } from '@angular/core';
|
||||
import { BASE_HREF, IStoredTenant, TenantsService } from '@iqser/common-ui';
|
||||
import { Component, inject } from '@angular/core';
|
||||
import { BASE_HREF, getCurrentUser, IStoredTenant, TenantsService } from '@iqser/common-ui';
|
||||
import { User } from '@red/domain';
|
||||
import { KeyValue } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-tenants-menu',
|
||||
@ -8,12 +10,16 @@ import { BASE_HREF, IStoredTenant, TenantsService } from '@iqser/common-ui';
|
||||
})
|
||||
export class TenantsMenuComponent {
|
||||
readonly tenantsService = inject(TenantsService);
|
||||
|
||||
readonly storedTenants = computed(() => this.#getStoredTenants(this.tenantsService.activeTenant().tenantId));
|
||||
readonly storedTenants: Map<string, IStoredTenant[]>;
|
||||
readonly #baseHref = inject(BASE_HREF);
|
||||
readonly #currentUser = getCurrentUser<User>();
|
||||
|
||||
trackBy(_index: number, item: IStoredTenant) {
|
||||
return item.tenant.tenantId;
|
||||
constructor() {
|
||||
this.storedTenants = this.#getStoredTenants();
|
||||
}
|
||||
|
||||
trackBy(_index: number, item: KeyValue<string, IStoredTenant[]>) {
|
||||
return item.key;
|
||||
}
|
||||
|
||||
selectTenant(tenantId?: string) {
|
||||
@ -21,9 +27,14 @@ export class TenantsMenuComponent {
|
||||
window.open(window.location.origin + this.#baseHref + tenant, '_blank');
|
||||
}
|
||||
|
||||
#getStoredTenants(activeTenantId: string) {
|
||||
#getStoredTenants(): Map<string, IStoredTenant[]> {
|
||||
const storedTenants = this.tenantsService.getStoredTenants();
|
||||
|
||||
return storedTenants.filter(t => t.tenant.tenantId !== activeTenantId);
|
||||
const otherTenant = storedTenants.filter(t => {
|
||||
const isCurrentTenant = t.tenant.tenantId === this.tenantsService.activeTenantId;
|
||||
const isCurrentUser = t.email === this.#currentUser.email || t.email === this.#currentUser.username;
|
||||
return !(isCurrentTenant && isCurrentUser);
|
||||
});
|
||||
return otherTenant.groupBy(t => t.tenant.displayName);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1 +1 @@
|
||||
Subproject commit 140ad55646af8c19982a0f69877908c3f998d9d9
|
||||
Subproject commit 8ebd5f760de23a2520e4561b8c56fd67b8c8d50a
|
||||
Loading…
x
Reference in New Issue
Block a user