From 6be8474c7fde7efcee07b9f561d851cfdfc52472 Mon Sep 17 00:00:00 2001 From: Dan Percic Date: Fri, 2 Jun 2023 17:12:05 +0300 Subject: [PATCH] RED-6713: sort tenants --- .../tenants-menu/tenants-menu.component.html | 8 +++--- .../tenants-menu/tenants-menu.component.ts | 27 +++++++++++++------ libs/common-ui | 2 +- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html index 84fcd6ae4..768ce4f7a 100644 --- a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html +++ b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.html @@ -1,9 +1,9 @@
- -
{{ item.tenant.displayName }}
+ +
{{ item.key }}
- - {{ item.email }} + + {{ stored.email }}
diff --git a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts index 6c080dc26..58e50858f 100644 --- a/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts +++ b/apps/red-ui/src/app/components/tenants-menu/tenants-menu.component.ts @@ -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; readonly #baseHref = inject(BASE_HREF); + readonly #currentUser = getCurrentUser(); - trackBy(_index: number, item: IStoredTenant) { - return item.tenant.tenantId; + constructor() { + this.storedTenants = this.#getStoredTenants(); + } + + trackBy(_index: number, item: KeyValue) { + 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 { 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); } } diff --git a/libs/common-ui b/libs/common-ui index 140ad5564..8ebd5f760 160000 --- a/libs/common-ui +++ b/libs/common-ui @@ -1 +1 @@ -Subproject commit 140ad55646af8c19982a0f69877908c3f998d9d9 +Subproject commit 8ebd5f760de23a2520e4561b8c56fd67b8c8d50a