feat(console): profile initializers, contributors for grants (#229)

* resourceowner header, i18n

* password policy validators, roles required field

* use angular pattern instead of custom validator

* user detail fixes, mfa qr code, add org

* use mgmt for mfa list

* fetch owned projects

* search project

* seperate owned from granted projects

* lint

* fix granted project grid

* refactor project detail

* disable zitadel apps

* refactor project contributors

* changed i18n

* hide meta nav

* mobile meta layout

* refactor contributor name

* refactor org contributors

* org i18n, org member detail view

* fix uninitialized phone, email

* fix: create role, add contributors to granted pjs

* initialize address

* contributor 18n

* add tab module
This commit is contained in:
Max Peintner
2020-06-17 07:41:16 +02:00
committed by GitHub
parent 6fa62ccd0a
commit dfe6d0deb4
17 changed files with 80 additions and 59 deletions
@@ -31,6 +31,16 @@
</div>
</div>
<app-changes *ngIf="project" [changeType]="ChangeType.PROJECT" [id]="project.id"></app-changes>
<mat-tab-group mat-stretch-tabs class="tab-group" disablePagination="true">
<mat-tab label="Details">
<app-project-contributors *ngIf="project"
[disabled]="project?.state !== ProjectState.PROJECTSTATE_ACTIVE"
[projectType]="ProjectType.PROJECTTYPE_GRANTED" [project]="project">
</app-project-contributors>
</mat-tab>
<mat-tab label="{{ 'CHANGES.PROJECT.TITLE' | translate }}" class="flex-col">
<app-changes *ngIf="project" [changeType]="ChangeType.PROJECT" [id]="project.id"></app-changes>
</mat-tab>
</mat-tab-group>
</metainfo>
</app-meta-layout>
@@ -88,10 +88,10 @@
<mat-tab-group mat-stretch-tabs class="tab-group" disablePagination="true">
<mat-tab label="Details">
<app-owned-project-contributors *ngIf="project"
<app-project-contributors *ngIf="project"
[disabled]="project?.state !== ProjectState.PROJECTSTATE_ACTIVE"
[projectType]="ProjectType.PROJECTTYPE_OWNED" [project]="project">
</app-owned-project-contributors>
</app-project-contributors>
</mat-tab>
<mat-tab label="{{ 'CHANGES.PROJECT.TITLE' | translate }}" class="flex-col">
<app-changes *ngIf="project" [changeType]="ChangeType.PROJECT" [id]="project.id"></app-changes>
@@ -1,20 +1,20 @@
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { OwnedProjectContributorsComponent } from './owned-project-contributors.component';
import { ProjectContributorsComponent } from './project-contributors.component';
describe('ProjectContributorsComponent', () => {
let component: OwnedProjectContributorsComponent;
let fixture: ComponentFixture<OwnedProjectContributorsComponent>;
let component: ProjectContributorsComponent;
let fixture: ComponentFixture<ProjectContributorsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [OwnedProjectContributorsComponent],
declarations: [ProjectContributorsComponent],
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(OwnedProjectContributorsComponent);
fixture = TestBed.createComponent(ProjectContributorsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
@@ -5,6 +5,7 @@ import { BehaviorSubject, from, of } from 'rxjs';
import { catchError, finalize, map } from 'rxjs/operators';
import { User } from 'src/app/proto/generated/auth_pb';
import {
ProjectGrantView,
ProjectMemberSearchResponse,
ProjectMemberView,
ProjectState,
@@ -20,12 +21,12 @@ import {
} from '../../../modules/add-member-dialog/member-create-dialog.component';
@Component({
selector: 'app-owned-project-contributors',
templateUrl: './owned-project-contributors.component.html',
styleUrls: ['./owned-project-contributors.component.scss'],
selector: 'app-project-contributors',
templateUrl: './project-contributors.component.html',
styleUrls: ['./project-contributors.component.scss'],
})
export class OwnedProjectContributorsComponent implements OnInit {
@Input() public project!: ProjectView.AsObject;
export class ProjectContributorsComponent implements OnInit {
@Input() public project!: ProjectView.AsObject | ProjectGrantView.AsObject;
@Input() public projectType!: ProjectType;
@Input() public disabled: boolean = false;
@@ -33,12 +33,12 @@ import { UserListModule } from '../user-list/user-list.module';
import { GrantedProjectDetailComponent } from './granted-project-detail/granted-project-detail.component';
import { GrantedProjectGridComponent } from './granted-project-grid/granted-project-grid.component';
import { GrantedProjectListComponent } from './granted-project-list/granted-project-list.component';
import { OwnedProjectContributorsComponent } from './owned-project-contributors/owned-project-contributors.component';
import { OwnedProjectDetailComponent } from './owned-project-detail/owned-project-detail.component';
import { OwnedProjectGridComponent } from './owned-project-grid/owned-project-grid.component';
import { OwnedProjectListComponent } from './owned-project-list/owned-project-list.component';
import { ProjectApplicationGridComponent } from './project-application-grid/project-application-grid.component';
import { ProjectApplicationsComponent } from './project-applications/project-applications.component';
import { ProjectContributorsComponent } from './project-contributors/project-contributors.component';
import {
ProjectGrantMembersCreateDialogComponent,
} from './project-grant-members-create-dialog/project-grant-members-create-dialog.component';
@@ -62,7 +62,7 @@ import { ProjectsComponent } from './projects.component';
ProjectGrantsComponent,
ProjectGrantMembersComponent,
ProjectGrantMembersCreateDialogComponent,
OwnedProjectContributorsComponent,
ProjectContributorsComponent,
ProjectsComponent,
],
imports: [