Files
zitadel/console/src/app/services/toast.service.ts
T
78e5c26015 feat(console): authorizations from user context, add grants to auth user view, fix app saving (#895)
* user grant on project

* grant in auth user, enable creation, fix inv regex

* use autocomplete solutions, section for usre ctx

* user grant create for user context

* fix edit from table

* fix create context

* fix authorization to write

* grant overview component

* fix user grants without context

* lint

* turn table highlighting off, rm logs

* fix app name saving

* fix table refresh for project grants

* translate toast

* i18n

* lint

* Update console/src/assets/i18n/de.json

Co-authored-by: Florian Forster <[email protected]>

Co-authored-by: Florian Forster <[email protected]>
2020-10-27 10:29:14 +01:00

47 lines
1.4 KiB
TypeScript

import { Injectable } from '@angular/core';
import { MatSnackBar } from '@angular/material/snack-bar';
import { TranslateService } from '@ngx-translate/core';
import { Observable } from 'rxjs';
import { take } from 'rxjs/operators';
@Injectable({
providedIn: 'root',
})
export class ToastService {
constructor(
private snackBar: MatSnackBar,
private translate: TranslateService,
) { }
public showInfo(message: string, i18nkey: boolean = false): void {
if (i18nkey) {
this.translate
.get(message)
.subscribe(data => {
this.translate.get('ACTIONS.CLOSE').pipe(take(1)).subscribe(value => {
this.showMessage(data, value);
});
});
} else {
this.translate.get('ACTIONS.CLOSE').pipe(take(1)).subscribe(value => {
this.showMessage(message, value);
});
}
}
public showError(grpcError: any): void {
const { message, code, metadata } = grpcError;
if (code !== 16) {
this.translate.get('ACTIONS.CLOSE').pipe(take(1)).subscribe(value => {
this.showMessage(decodeURI(message), value);
});
}
}
private showMessage(message: string, action: string): Observable<void> {
const ref = this.snackBar.open(message, action, { duration: 4000 });
return ref.onAction();
}
}