mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-18 05:52:51 +00:00
* chore(deps-dev): bump @angular/cli from 10.0.8 to 10.1.3 in /console (#785) Bumps [@angular/cli](https://github.com/angular/angular-cli) from 10.0.8 to 10.1.3. - [Release notes](https://github.com/angular/angular-cli/releases) - [Commits](https://github.com/angular/angular-cli/compare/v10.0.8...v10.1.3) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @angular-devkit/build-angular in /console (#784) Bumps [@angular-devkit/build-angular](https://github.com/angular/angular-cli) from 0.1000.8 to 0.1001.3. - [Release notes](https://github.com/angular/angular-cli/releases) - [Commits](https://github.com/angular/angular-cli/commits) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Max Peintner <[email protected]> * chore(deps-dev): bump @angular/language-service in /console (#783) Bumps [@angular/language-service](https://github.com/angular/angular/tree/HEAD/packages/language-service) from 10.1.0 to 10.1.3. - [Release notes](https://github.com/angular/angular/releases) - [Changelog](https://github.com/angular/angular/blob/master/CHANGELOG.md) - [Commits](https://github.com/angular/angular/commits/10.1.3/packages/language-service) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump stylelint from 13.7.1 to 13.7.2 in /console (#782) Bumps [stylelint](https://github.com/stylelint/stylelint) from 13.7.1 to 13.7.2. - [Release notes](https://github.com/stylelint/stylelint/releases) - [Changelog](https://github.com/stylelint/stylelint/blob/master/CHANGELOG.md) - [Commits](https://github.com/stylelint/stylelint/compare/13.7.1...13.7.2) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump karma from 5.2.1 to 5.2.3 in /console (#781) Bumps [karma](https://github.com/karma-runner/karma) from 5.2.1 to 5.2.3. - [Release notes](https://github.com/karma-runner/karma/releases) - [Changelog](https://github.com/karma-runner/karma/blob/master/CHANGELOG.md) - [Commits](https://github.com/karma-runner/karma/compare/v5.2.1...v5.2.3) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump moment from 2.27.0 to 2.29.0 in /console (#780) Bumps [moment](https://github.com/moment/moment) from 2.27.0 to 2.29.0. - [Release notes](https://github.com/moment/moment/releases) - [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md) - [Commits](https://github.com/moment/moment/compare/2.27.0...2.29.0) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump @types/node from 14.6.4 to 14.11.2 in /console (#778) Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 14.6.4 to 14.11.2. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump prettier from 2.1.1 to 2.1.2 in /console (#757) Bumps [prettier](https://github.com/prettier/prettier) from 2.1.1 to 2.1.2. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/master/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.1.1...2.1.2) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump ts-protoc-gen from 0.12.0 to 0.13.0 in /console (#737) Bumps [ts-protoc-gen](https://github.com/improbable-eng/ts-protoc-gen) from 0.12.0 to 0.13.0. - [Release notes](https://github.com/improbable-eng/ts-protoc-gen/releases) - [Changelog](https://github.com/improbable-eng/ts-protoc-gen/blob/master/CHANGELOG.md) - [Commits](https://github.com/improbable-eng/ts-protoc-gen/compare/0.12.0...0.13.0) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump jasmine-spec-reporter in /console (#762) Bumps [jasmine-spec-reporter](https://github.com/bcaudan/jasmine-spec-reporter) from 5.0.2 to 6.0.0. - [Release notes](https://github.com/bcaudan/jasmine-spec-reporter/releases) - [Changelog](https://github.com/bcaudan/jasmine-spec-reporter/blob/master/CHANGELOG.md) - [Commits](https://github.com/bcaudan/jasmine-spec-reporter/compare/v5.0.2...v6.0.0) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Max Peintner <[email protected]> * fix: package * change html lang to translation lang * disable detail view org idp * catch errorcode 16 in auth response interceptor * new icons * refactor pipes, idp table config * fix router guard * lint * allowed commonjs deps * Update console/src/assets/i18n/en.json Co-authored-by: Florian Forster <[email protected]> * Update console/src/assets/i18n/de.json Co-authored-by: Florian Forster <[email protected]> * clear table warning * org overview table, header filter * toolbar filter * user table filter * fix org filter themed color, reject error * org context filter * button cleanup * commonjs deps, remove a11y module * replace progressbar with spinner * dynamic user, org filter * ts lint, scss lint * cleanup table, row highlighting * lint * fix i18n description, refresh idp list in login p * remove async from grpc services, fix external idp * remove external idp * fix theme toggle * change iam policy header i18n * sticky action columns * lint * add i18n filter to user, remove unused org code Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Florian Forster <[email protected]>
128 lines
4.3 KiB
TypeScript
128 lines
4.3 KiB
TypeScript
import { Component, Input, OnInit } from '@angular/core';
|
|
import { BehaviorSubject, from, Observable, of } from 'rxjs';
|
|
import { catchError, scan, take, tap } from 'rxjs/operators';
|
|
import { Change, Changes } from 'src/app/proto/generated/management_pb';
|
|
import { GrpcAuthService } from 'src/app/services/grpc-auth.service';
|
|
import { ManagementService } from 'src/app/services/mgmt.service';
|
|
|
|
export enum ChangeType {
|
|
MYUSER = 'myuser',
|
|
USER = 'user',
|
|
ORG = 'org',
|
|
PROJECT = 'project',
|
|
}
|
|
|
|
@Component({
|
|
selector: 'app-changes',
|
|
templateUrl: './changes.component.html',
|
|
styleUrls: ['./changes.component.scss'],
|
|
})
|
|
export class ChangesComponent implements OnInit {
|
|
@Input() public changeType: ChangeType = ChangeType.USER;
|
|
@Input() public id: string = '';
|
|
@Input() public sortDirectionAsc: boolean = true;
|
|
public bottom: boolean = false;
|
|
|
|
private _done: BehaviorSubject<any> = new BehaviorSubject(false);
|
|
private _loading: BehaviorSubject<any> = new BehaviorSubject(false);
|
|
private _data: BehaviorSubject<any> = new BehaviorSubject([]);
|
|
|
|
loading: Observable<boolean> = this._loading.asObservable();
|
|
public data!: Observable<Change.AsObject[]>;
|
|
public changes!: Changes.AsObject;
|
|
constructor(private mgmtUserService: ManagementService, private authUserService: GrpcAuthService) { }
|
|
|
|
ngOnInit(): void {
|
|
this.init();
|
|
}
|
|
|
|
public scrollHandler(e: any): void {
|
|
if (e === 'bottom') {
|
|
this.more();
|
|
}
|
|
}
|
|
|
|
private init(): void {
|
|
let first: Promise<Changes>;
|
|
switch (this.changeType) {
|
|
case ChangeType.MYUSER: first = this.authUserService.GetMyUserChanges(20, 0);
|
|
break;
|
|
case ChangeType.USER: first = this.mgmtUserService.UserChanges(this.id, 20, 0);
|
|
break;
|
|
case ChangeType.PROJECT: first = this.mgmtUserService.ProjectChanges(this.id, 20, 0);
|
|
break;
|
|
case ChangeType.ORG: first = this.mgmtUserService.OrgChanges(this.id, 20, 0);
|
|
break;
|
|
}
|
|
|
|
this.mapAndUpdate(first);
|
|
|
|
// Create the observable array for consumption in components
|
|
this.data = this._data.asObservable().pipe(
|
|
scan((acc, val) => {
|
|
return false ? val.concat(acc) : acc.concat(val);
|
|
}));
|
|
}
|
|
|
|
private more(): void {
|
|
const cursor = this.getCursor();
|
|
|
|
let more: Promise<Changes>;
|
|
|
|
switch (this.changeType) {
|
|
case ChangeType.MYUSER: more = this.authUserService.GetMyUserChanges(20, cursor);
|
|
break;
|
|
case ChangeType.USER: more = this.mgmtUserService.UserChanges(this.id, 20, cursor);
|
|
break;
|
|
case ChangeType.PROJECT: more = this.mgmtUserService.ProjectChanges(this.id, 20, cursor);
|
|
break;
|
|
case ChangeType.ORG: more = this.mgmtUserService.OrgChanges(this.id, 20, cursor);
|
|
break;
|
|
}
|
|
|
|
this.mapAndUpdate(more);
|
|
}
|
|
|
|
// Determines the snapshot to paginate query
|
|
private getCursor(): number {
|
|
const current = this._data.value;
|
|
if (current.length) {
|
|
return !this.sortDirectionAsc ? current[0].sequence :
|
|
current[current.length - 1].sequence;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
// Maps the snapshot to usable format the updates source
|
|
private mapAndUpdate(col: Promise<Changes>): any {
|
|
if (this._done.value || this._loading.value) { return; }
|
|
|
|
// Map snapshot with doc ref (needed for cursor)
|
|
if (!this.bottom) {
|
|
// loading
|
|
this._loading.next(true);
|
|
|
|
return from(col).pipe(
|
|
take(1),
|
|
tap((res: Changes) => {
|
|
const values = res.toObject().changesList;
|
|
// update source with new values, done loading
|
|
this._data.next(values);
|
|
|
|
this._loading.next(false);
|
|
|
|
// no more values, mark done
|
|
if (!values.length) {
|
|
this._done.next(true);
|
|
}
|
|
}),
|
|
catchError(_ => {
|
|
this._loading.next(false);
|
|
this.bottom = true;
|
|
return of([]);
|
|
}),
|
|
).subscribe();
|
|
}
|
|
}
|
|
}
|