mirror of
https://github.com/zitadel/zitadel.git
synced 2025-05-28 03:58:23 +00:00

* return error from changes * project member context, org-policies, state * project type seperation * chore(deps): bump grpc from 1.24.2 to 1.24.3 in /console (#183) Bumps [grpc](https://github.com/grpc/grpc-node) from 1.24.2 to 1.24.3. - [Release notes](https://github.com/grpc/grpc-node/releases) - [Commits](https://github.com/grpc/grpc-node/compare/grpc@1.24.2...grpc@1.24.3) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump google-proto-files from 1.1.2 to 2.1.0 in /console (#176) Bumps [google-proto-files](https://github.com/googleapis/nodejs-proto-files) from 1.1.2 to 2.1.0. - [Release notes](https://github.com/googleapis/nodejs-proto-files/releases) - [Changelog](https://github.com/googleapis/nodejs-proto-files/blob/master/CHANGELOG.md) - [Commits](https://github.com/googleapis/nodejs-proto-files/compare/v1.1.2...v2.1.0) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps-dev): bump karma-coverage-istanbul-reporter in /console (#169) Bumps [karma-coverage-istanbul-reporter](https://github.com/mattlewis92/karma-coverage-istanbul-reporter) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/releases) - [Changelog](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/blob/master/CHANGELOG.md) - [Commits](https://github.com/mattlewis92/karma-coverage-istanbul-reporter/compare/v3.0.2...v3.0.3) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * update packages * update deps * lint * replace assets * add key, creationdate for roles * project grant members Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
107 lines
3.4 KiB
TypeScript
107 lines
3.4 KiB
TypeScript
import { animate, animateChild, query, stagger, style, transition, trigger } from '@angular/animations';
|
|
import { Location } from '@angular/common';
|
|
import { Component, OnDestroy, OnInit } from '@angular/core';
|
|
import { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
|
import { ActivatedRoute, Params, Router } from '@angular/router';
|
|
import { Subscription } from 'rxjs';
|
|
import { ProjectRoleAdd } from 'src/app/proto/generated/management_pb';
|
|
import { ProjectService } from 'src/app/services/project.service';
|
|
import { ToastService } from 'src/app/services/toast.service';
|
|
|
|
@Component({
|
|
selector: 'app-project-role-create',
|
|
templateUrl: './project-role-create.component.html',
|
|
styleUrls: ['./project-role-create.component.scss'],
|
|
animations: [
|
|
trigger('list', [
|
|
transition(':enter', [
|
|
query('@animate',
|
|
stagger(80, animateChild()),
|
|
),
|
|
]),
|
|
]),
|
|
trigger('animate', [
|
|
transition(':enter', [
|
|
style({ opacity: 0, transform: 'translateY(-100%)' }),
|
|
animate('100ms', style({ opacity: 1, transform: 'translateY(0)' })),
|
|
]),
|
|
transition(':leave', [
|
|
style({ opacity: 1, transform: 'translateY(0)' }),
|
|
animate('100ms', style({ opacity: 0, transform: 'translateY(100%)' })),
|
|
]),
|
|
]),
|
|
],
|
|
})
|
|
export class ProjectRoleCreateComponent implements OnInit, OnDestroy {
|
|
private subscription?: Subscription;
|
|
public projectId: string = '';
|
|
|
|
public formArray!: FormArray;
|
|
public formGroup!: FormGroup;
|
|
public createSteps: number = 1;
|
|
public currentCreateStep: number = 1;
|
|
|
|
constructor(
|
|
private router: Router,
|
|
private route: ActivatedRoute,
|
|
private toast: ToastService,
|
|
private projectService: ProjectService,
|
|
private _location: Location,
|
|
private fb: FormBuilder,
|
|
) {
|
|
this.formGroup = new FormGroup({
|
|
key: new FormControl(''),
|
|
name: new FormControl(''),
|
|
displayName: new FormControl(''),
|
|
group: new FormControl('', [Validators.required]),
|
|
});
|
|
|
|
this.formArray = new FormArray([this.formGroup]);
|
|
|
|
}
|
|
|
|
public addEntry(): void {
|
|
const newGroup = new FormGroup({
|
|
name: new FormControl(''),
|
|
displayName: new FormControl(''),
|
|
group: new FormControl('', [Validators.required]),
|
|
});
|
|
|
|
this.formArray.push(newGroup);
|
|
}
|
|
|
|
public removeEntry(index: number): void {
|
|
this.formArray.removeAt(index);
|
|
}
|
|
|
|
public ngOnInit(): void {
|
|
this.subscription = this.route.params.subscribe(params => this.getData(params));
|
|
}
|
|
|
|
public ngOnDestroy(): void {
|
|
this.subscription?.unsubscribe();
|
|
}
|
|
|
|
private getData({ projectid }: Params): void {
|
|
this.projectId = projectid;
|
|
}
|
|
|
|
public addRole(): void {
|
|
Promise.all(this.formArray.value.map((role: ProjectRoleAdd.AsObject) => {
|
|
role.id = this.projectId;
|
|
console.log(role);
|
|
return this.projectService.AddProjectRole(role);
|
|
})).then(() => {
|
|
this.router.navigate(['projects', this.projectId]);
|
|
}).catch(data => {
|
|
console.log(data);
|
|
this.toast.showError(data.message);
|
|
});
|
|
}
|
|
|
|
|
|
public close(): void {
|
|
this._location.back();
|
|
}
|
|
}
|