mirror of
https://github.com/andwati/zitadel.git
synced 2026-10-28 18:12:16 +00:00
* chore(deps): bump flag-icons from 6.9.3 to 7.1.0 in /console (#7092) Bumps [flag-icons](https://github.com/lipis/flag-icons) from 6.9.3 to 7.1.0. - [Release notes](https://github.com/lipis/flag-icons/releases) - [Changelog](https://github.com/lipis/flag-icons/blob/main/CHANGELOG.md) - [Commits](https://github.com/lipis/flag-icons/compare/v6.9.3...v7.1.0) --- updated-dependencies: - dependency-name: flag-icons dependency-type: direct:production update-type: version-update:semver-major ... 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 3.0.3 to 3.1.1 in /console (#7058) Bumps [prettier](https://github.com/prettier/prettier) from 3.0.3 to 3.1.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.0.3...3.1.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump uuid and @types/uuid in /console (#6993) Bumps [uuid](https://github.com/uuidjs/uuid) and [@types/uuid](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/uuid). These dependencies needed to be updated together. Updates `uuid` from 9.0.0 to 9.0.1 - [Changelog](https://github.com/uuidjs/uuid/blob/main/CHANGELOG.md) - [Commits](https://github.com/uuidjs/uuid/compare/v9.0.0...v9.0.1) Updates `@types/uuid` from 9.0.2 to 9.0.7 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/uuid) --- updated-dependencies: - dependency-name: uuid dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: "@types/uuid" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * zonejs * chore(deps-dev): bump @types/jasmine from 4.3.6 to 5.1.4 in /console (#6991) Bumps [@types/jasmine](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/jasmine) from 4.3.6 to 5.1.4. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/jasmine) --- updated-dependencies: - dependency-name: "@types/jasmine" dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump i18n-iso-countries from 7.6.0 to 7.7.0 in /console (#6990) Bumps [i18n-iso-countries](https://github.com/michaelwittig/node-i18n-iso-countries) from 7.6.0 to 7.7.0. - [Release notes](https://github.com/michaelwittig/node-i18n-iso-countries/releases) - [Commits](https://github.com/michaelwittig/node-i18n-iso-countries/compare/v7.6.0...v7.7.0) --- updated-dependencies: - dependency-name: i18n-iso-countries dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * jasmine * prettier plugin * chore(deps-dev): bump @types/opentype.js from 1.3.4 to 1.3.8 in /console (#6985) Bumps [@types/opentype.js](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/opentype.js) from 1.3.4 to 1.3.8. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/opentype.js) --- updated-dependencies: - dependency-name: "@types/opentype.js" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump postcss from 8.4.21 to 8.4.31 in /docs (#6674) Bumps [postcss](https://github.com/postcss/postcss) from 8.4.21 to 8.4.31. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.31) --- updated-dependencies: - dependency-name: postcss dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump axios and wait-on in /e2e (#7073) Bumps [axios](https://github.com/axios/axios) to 1.6.2 and updates ancestor dependency [wait-on](https://github.com/jeffbski/wait-on). These dependencies need to be updated together. Updates `axios` from 0.25.0 to 1.6.2 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v0.25.0...v1.6.2) Updates `wait-on` from 6.0.1 to 7.2.0 - [Release notes](https://github.com/jeffbski/wait-on/releases) - [Commits](https://github.com/jeffbski/wait-on/compare/v6.0.1...v7.2.0) --- updated-dependencies: - dependency-name: axios dependency-type: indirect - dependency-name: wait-on dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * lint changes * lint --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
92 lines
3.1 KiB
TypeScript
92 lines
3.1 KiB
TypeScript
import { DataSource } from '@angular/cdk/collections';
|
|
import { Timestamp } from 'google-protobuf/google/protobuf/timestamp_pb';
|
|
import { BehaviorSubject, from, Observable, of } from 'rxjs';
|
|
import { catchError, finalize, map } from 'rxjs/operators';
|
|
import { ListProjectGrantMembersResponse, ListProjectMembersResponse } from 'src/app/proto/generated/zitadel/management_pb';
|
|
import { Member } from 'src/app/proto/generated/zitadel/member_pb';
|
|
import { ManagementService } from 'src/app/services/mgmt.service';
|
|
|
|
export enum ProjectType {
|
|
PROJECTTYPE_OWNED = 'OWNED',
|
|
PROJECTTYPE_GRANTED = 'GRANTED',
|
|
}
|
|
|
|
/**
|
|
* Data source for the ProjectMembers view. This class should
|
|
* encapsulate all logic for fetching and manipulating the displayed data
|
|
* (including sorting, pagination, and filtering).
|
|
*/
|
|
export class ProjectMembersDataSource extends DataSource<Member.AsObject> {
|
|
public totalResult: number = 0;
|
|
public viewTimestamp!: Timestamp.AsObject;
|
|
|
|
public membersSubject: BehaviorSubject<Member.AsObject[]> = new BehaviorSubject<Member.AsObject[]>([]);
|
|
private loadingSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);
|
|
public loading$: Observable<boolean> = this.loadingSubject.asObservable();
|
|
|
|
constructor(private service: ManagementService) {
|
|
super();
|
|
}
|
|
|
|
public loadMembers(
|
|
projectId: string,
|
|
projectType: ProjectType,
|
|
pageIndex: number,
|
|
pageSize: number,
|
|
grantId?: string,
|
|
): void {
|
|
const offset = pageIndex * pageSize;
|
|
|
|
this.loadingSubject.next(true);
|
|
|
|
const promise:
|
|
| Promise<ListProjectMembersResponse.AsObject>
|
|
| Promise<ListProjectGrantMembersResponse.AsObject>
|
|
| undefined =
|
|
projectType === ProjectType.PROJECTTYPE_OWNED
|
|
? this.service.listProjectMembers(projectId, pageSize, offset)
|
|
: projectType === ProjectType.PROJECTTYPE_GRANTED && grantId
|
|
? this.service.listProjectGrantMembers(projectId, grantId, pageSize, offset)
|
|
: undefined;
|
|
if (promise) {
|
|
from(promise)
|
|
.pipe(
|
|
map((resp) => {
|
|
if (resp.details?.totalResult) {
|
|
this.totalResult = resp.details?.totalResult;
|
|
} else {
|
|
this.totalResult = 0;
|
|
}
|
|
if (resp.details?.viewTimestamp) {
|
|
this.viewTimestamp = resp.details.viewTimestamp;
|
|
}
|
|
return resp.resultList;
|
|
}),
|
|
catchError(() => of([])),
|
|
finalize(() => this.loadingSubject.next(false)),
|
|
)
|
|
.subscribe((members) => {
|
|
this.membersSubject.next(members);
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Connect this data source to the table. The table will only update when
|
|
* the returned stream emits new items.
|
|
* @returns A stream of the items to be rendered.
|
|
*/
|
|
public connect(): Observable<Member.AsObject[]> {
|
|
return this.membersSubject.asObservable();
|
|
}
|
|
|
|
/**
|
|
* Called when the table is being destroyed. Use this function, to clean up
|
|
* any open connections or free any held resources that were set up during connect.
|
|
*/
|
|
public disconnect(): void {
|
|
this.membersSubject.complete();
|
|
this.loadingSubject.complete();
|
|
}
|
|
}
|