diff --git a/console/src/app/modules/idp-table/idp-table.component.html b/console/src/app/modules/idp-table/idp-table.component.html
index 1110232853..2990f196dc 100644
--- a/console/src/app/modules/idp-table/idp-table.component.html
+++ b/console/src/app/modules/idp-table/idp-table.component.html
@@ -13,7 +13,7 @@
{{ 'IDP.TYPE' | translate }} |
-
+ |
@@ -87,7 +87,7 @@
{{ 'IDP.STATE' | translate }} |
-
+ |
| {{ 'IDP.CREATIONDATE' | translate }} |
-
+ |
{{ idp.details.creationDate | timestampToDate | localizedDate : 'dd. MMM, HH:mm' }}
|
{{ 'IDP.CHANGEDATE' | translate }} |
-
+ |
{{ idp.details.changeDate | timestampToDate | localizedDate : 'dd. MMM, HH:mm' }}
|
{{ 'IDP.OWNER' | translate }} |
-
+ |
{{ 'IDP.OWNERTYPES.' + idp.owner | translate }}
|
@@ -140,7 +140,7 @@
"
mat-icon-button
matTooltip="{{ 'IDP.SETAVAILABLE' | translate }}"
- (click)="addIdp(idp)"
+ (click)="addIdp(idp); $event.stopPropagation()"
>
@@ -160,7 +160,7 @@
"
mat-icon-button
matTooltip="{{ 'IDP.SETUNAVAILABLE' | translate }}"
- (click)="removeIdp(idp)"
+ (click)="removeIdp(idp); $event.stopPropagation()"
>
@@ -185,7 +185,7 @@
mat-icon-button
color="warn"
matTooltip="{{ 'ACTIONS.REMOVE' | translate }}"
- (click)="deleteIdp(idp)"
+ (click)="deleteIdp(idp); $event.stopPropagation()"
>
@@ -194,7 +194,7 @@
|
- |
+
diff --git a/console/src/app/modules/idp-table/idp-table.component.ts b/console/src/app/modules/idp-table/idp-table.component.ts
index 4719f282a5..6df954413a 100644
--- a/console/src/app/modules/idp-table/idp-table.component.ts
+++ b/console/src/app/modules/idp-table/idp-table.component.ts
@@ -2,7 +2,7 @@ import { SelectionModel } from '@angular/cdk/collections';
import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';
import { MatLegacyTableDataSource as MatTableDataSource } from '@angular/material/legacy-table';
-import { RouterLink } from '@angular/router';
+import { Router, RouterLink } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { Duration } from 'google-protobuf/google/protobuf/duration_pb';
import { BehaviorSubject, Observable } from 'rxjs';
@@ -31,6 +31,8 @@ import { AdminService } from 'src/app/services/admin.service';
import { ManagementService } from 'src/app/services/mgmt.service';
import { ToastService } from 'src/app/services/toast.service';
+import { OverlayWorkflowService } from 'src/app/services/overlay/overlay-workflow.service';
+import { ContextChangedWorkflowOverlays } from 'src/app/services/overlay/workflows';
import { PageEvent, PaginatorComponent } from '../paginator/paginator.component';
import { PolicyComponentServiceType } from '../policies/policy-component-types.enum';
import { WarnDialogComponent } from '../warn-dialog/warn-dialog.component';
@@ -60,7 +62,13 @@ export class IdpTableComponent implements OnInit {
public IDPStylingType: any = IDPStylingType;
public loginPolicy!: LoginPolicy.AsObject;
- constructor(public translate: TranslateService, private toast: ToastService, private dialog: MatDialog) {
+ constructor(
+ private workflowService: OverlayWorkflowService,
+ public translate: TranslateService,
+ private toast: ToastService,
+ private dialog: MatDialog,
+ private router: Router,
+ ) {
this.selection.changed.subscribe(() => {
this.changedSelection.emit(this.selection.selected);
});
@@ -241,6 +249,16 @@ export class IdpTableComponent implements OnInit {
}
}
+ navigateToIDP(row: Provider.AsObject) {
+ this.router.navigate(this.routerLinkForRow(row)).then(() => {
+ if (this.serviceType === PolicyComponentServiceType.MGMT && row.owner === IDPOwnerType.IDP_OWNER_TYPE_SYSTEM) {
+ setTimeout(() => {
+ this.workflowService.startWorkflow(ContextChangedWorkflowOverlays, null);
+ }, 1000);
+ }
+ });
+ }
+
private async getIdps(): Promise {
switch (this.serviceType) {
case PolicyComponentServiceType.MGMT:
diff --git a/console/src/app/services/overlay/workflows.ts b/console/src/app/services/overlay/workflows.ts
index 1c6c8263bb..6f9c11e568 100644
--- a/console/src/app/services/overlay/workflows.ts
+++ b/console/src/app/services/overlay/workflows.ts
@@ -66,3 +66,17 @@ export const OrgContextChangedWorkflowOverlays: CnslOverlay[] = [
},
},
];
+
+export const ContextChangedWorkflowOverlays: CnslOverlay[] = [
+ {
+ id: 'contextswitcher',
+ origin: 'orgbutton',
+ toHighlight: ['orgbutton'],
+ content: {
+ i18nText: 'OVERLAYS.SWITCHEDTOINSTANCE.TEXT',
+ },
+ requirements: {
+ permission: ['iam.read'],
+ },
+ },
+];
diff --git a/console/src/assets/i18n/de.json b/console/src/assets/i18n/de.json
index 68d81ac777..832ce451bb 100644
--- a/console/src/assets/i18n/de.json
+++ b/console/src/assets/i18n/de.json
@@ -204,6 +204,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "Achtung! Soeben wurde die Organisation gewechselt."
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "Soeben wurde die Ansicht auf Instanz gewechselt."
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json
index 2d27939ee0..d6a19679e5 100644
--- a/console/src/assets/i18n/en.json
+++ b/console/src/assets/i18n/en.json
@@ -204,7 +204,10 @@
"TEXT": "This navigation changes based on your selected organization above or your instance"
},
"CONTEXTCHANGED": {
- "TEXT": "Attention! The organization context has changed."
+ "TEXT": "The organization context has changed."
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "The view just changed to instance!"
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/es.json b/console/src/assets/i18n/es.json
index 0fea6748ab..8e1164d092 100644
--- a/console/src/assets/i18n/es.json
+++ b/console/src/assets/i18n/es.json
@@ -205,6 +205,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "¡Atención! El contexto de la organización ha cambiado."
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "¡La vista acaba de cambiar a instancia!"
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/fr.json b/console/src/assets/i18n/fr.json
index e24116fd80..07e0829e83 100644
--- a/console/src/assets/i18n/fr.json
+++ b/console/src/assets/i18n/fr.json
@@ -204,6 +204,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "Attention ! Le contexte de l'organisation a changé."
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "La vue vient de changer en instance !"
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/it.json b/console/src/assets/i18n/it.json
index 4d18722afb..e025b48399 100644
--- a/console/src/assets/i18n/it.json
+++ b/console/src/assets/i18n/it.json
@@ -204,6 +204,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "Attenzione! L'organizzazione è appena stata cambiata."
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "La visualizzazione è appena stata modificata in istanza!"
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/ja.json b/console/src/assets/i18n/ja.json
index 2ba3863ad4..6dea6b8db1 100644
--- a/console/src/assets/i18n/ja.json
+++ b/console/src/assets/i18n/ja.json
@@ -205,6 +205,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "注意! 組織のコンテキストが変更されました。"
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "ビューがインスタンスに変更されました。"
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/pl.json b/console/src/assets/i18n/pl.json
index 0dd538ba30..3d9a3f8254 100644
--- a/console/src/assets/i18n/pl.json
+++ b/console/src/assets/i18n/pl.json
@@ -204,6 +204,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "Uwaga! Kontekst organizacji uległ zmianie."
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "Widok właśnie zmienił się na instancję!"
}
},
"FILTER": {
diff --git a/console/src/assets/i18n/zh.json b/console/src/assets/i18n/zh.json
index dbc8dcc199..b8f735d517 100644
--- a/console/src/assets/i18n/zh.json
+++ b/console/src/assets/i18n/zh.json
@@ -204,6 +204,9 @@
},
"CONTEXTCHANGED": {
"TEXT": "注意!组织环境发生了变化。"
+ },
+ "SWITCHEDTOINSTANCE": {
+ "TEXT": "视图刚刚更改为实例!"
}
},
"FILTER": {
|