mirror of
https://github.com/zitadel/zitadel.git
synced 2025-01-07 23:27:41 +00:00
fix(console): back button in detail view should not navigate to create dialog again (#6018)
* fix: add double router back if new * fix: add comments to back directive * fix: same behavior for user creation * fix: add query param to app, project role create * fix: add changes suggested by @peintnermax --------- Co-authored-by: Max Peintner <max@caos.ch>
This commit is contained in:
parent
33a8ab4ecf
commit
c98307f70c
@ -1,16 +1,33 @@
|
|||||||
import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';
|
import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core';
|
||||||
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
import { take } from 'rxjs';
|
||||||
import { NavigationService } from 'src/app/services/navigation.service';
|
import { NavigationService } from 'src/app/services/navigation.service';
|
||||||
|
|
||||||
@Directive({
|
@Directive({
|
||||||
selector: '[cnslBack]',
|
selector: '[cnslBack]',
|
||||||
})
|
})
|
||||||
export class BackDirective {
|
export class BackDirective {
|
||||||
|
new: Boolean = false;
|
||||||
@HostListener('click')
|
@HostListener('click')
|
||||||
onClick(): void {
|
onClick(): void {
|
||||||
this.navigation.back();
|
this.navigation.back();
|
||||||
|
// Go back again to avoid create dialog starts again
|
||||||
|
if (this.new) {
|
||||||
|
this.navigation.back();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
constructor(private navigation: NavigationService, private elRef: ElementRef, private renderer2: Renderer2) {
|
constructor(
|
||||||
|
private navigation: NavigationService,
|
||||||
|
private elRef: ElementRef,
|
||||||
|
private renderer2: Renderer2,
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
) {
|
||||||
|
// Check if a new element was created using a create dialog
|
||||||
|
this.route.queryParams.pipe(take(1)).subscribe((params) => {
|
||||||
|
this.new = params['new'];
|
||||||
|
});
|
||||||
|
|
||||||
if (navigation.isBackPossible) {
|
if (navigation.isBackPossible) {
|
||||||
// this.renderer2.removeStyle(this.elRef.nativeElement, 'visibility');
|
// this.renderer2.removeStyle(this.elRef.nativeElement, 'visibility');
|
||||||
} else {
|
} else {
|
||||||
|
@ -378,7 +378,7 @@ export class AppCreateComponent implements OnInit, OnDestroy {
|
|||||||
if (resp.clientId || resp.clientSecret) {
|
if (resp.clientId || resp.clientSecret) {
|
||||||
this.showSavedDialog(resp);
|
this.showSavedDialog(resp);
|
||||||
} else {
|
} else {
|
||||||
this.router.navigate(['projects', this.projectId, 'apps', resp.appId]);
|
this.router.navigate(['projects', this.projectId, 'apps', resp.appId], { queryParams: { new: true } });
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@ -396,7 +396,7 @@ export class AppCreateComponent implements OnInit, OnDestroy {
|
|||||||
if (resp.clientId || resp.clientSecret) {
|
if (resp.clientId || resp.clientSecret) {
|
||||||
this.showSavedDialog(resp);
|
this.showSavedDialog(resp);
|
||||||
} else {
|
} else {
|
||||||
this.router.navigate(['projects', this.projectId, 'apps', resp.appId]);
|
this.router.navigate(['projects', this.projectId, 'apps', resp.appId], { queryParams: { new: true } });
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
@ -410,7 +410,7 @@ export class AppCreateComponent implements OnInit, OnDestroy {
|
|||||||
.addSAMLApp(this.samlAppRequest)
|
.addSAMLApp(this.samlAppRequest)
|
||||||
.then((resp) => {
|
.then((resp) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.router.navigate(['projects', this.projectId, 'apps', resp.appId]);
|
this.router.navigate(['projects', this.projectId, 'apps', resp.appId], { queryParams: { new: true } });
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
@ -436,7 +436,7 @@ export class AppCreateComponent implements OnInit, OnDestroy {
|
|||||||
});
|
});
|
||||||
|
|
||||||
dialogRef.afterClosed().subscribe(() => {
|
dialogRef.afterClosed().subscribe(() => {
|
||||||
this.router.navigate(['projects', this.projectId, 'apps', added.appId]);
|
this.router.navigate(['projects', this.projectId, 'apps', added.appId], { queryParams: { new: true } });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ export class ProjectRoleCreateComponent implements OnInit, OnDestroy {
|
|||||||
.bulkAddProjectRoles(this.projectId, rolesToAdd)
|
.bulkAddProjectRoles(this.projectId, rolesToAdd)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
this.toast.showInfo('PROJECT.TOAST.ROLESCREATED', true);
|
this.toast.showInfo('PROJECT.TOAST.ROLESCREATED', true);
|
||||||
this.router.navigate(['projects', this.projectId], { queryParams: { id: 'roles' } });
|
this.router.navigate(['projects', this.projectId], { queryParams: { id: 'roles', new: true } });
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.toast.showError(error);
|
this.toast.showError(error);
|
||||||
|
@ -33,7 +33,7 @@ export class ProjectCreateComponent {
|
|||||||
.addProject(this.project)
|
.addProject(this.project)
|
||||||
.then((resp: AddProjectResponse.AsObject) => {
|
.then((resp: AddProjectResponse.AsObject) => {
|
||||||
this.toast.showInfo('PROJECT.TOAST.CREATED', true);
|
this.toast.showInfo('PROJECT.TOAST.CREATED', true);
|
||||||
this.router.navigate(['projects', resp.id]);
|
this.router.navigate(['projects', resp.id], { queryParams: { new: true } });
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.toast.showError(error);
|
this.toast.showError(error);
|
||||||
|
@ -71,7 +71,7 @@ export class UserCreateMachineComponent implements OnDestroy {
|
|||||||
this.toast.showInfo('USER.TOAST.CREATED', true);
|
this.toast.showInfo('USER.TOAST.CREATED', true);
|
||||||
const id = data.userId;
|
const id = data.userId;
|
||||||
if (id) {
|
if (id) {
|
||||||
this.router.navigate(['users', id]);
|
this.router.navigate(['users', id], { queryParams: { new: true } });
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((error: any) => {
|
.catch((error: any) => {
|
||||||
|
@ -183,7 +183,7 @@ export class UserCreateComponent implements OnInit, OnDestroy {
|
|||||||
.then((data) => {
|
.then((data) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
this.toast.showInfo('USER.TOAST.CREATED', true);
|
this.toast.showInfo('USER.TOAST.CREATED', true);
|
||||||
this.router.navigate(['users', data.userId]);
|
this.router.navigate(['users', data.userId], { queryParams: { new: true } });
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user