diff --git a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.html b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.html
index e6b43c548..33a63c1b8 100644
--- a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.html
+++ b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.html
@@ -14,7 +14,15 @@
[configuration]="usersAutoCompleteConfiguration">
-
+
+
+ {{'DMP-LISTING.MEMBER' | translate}}
+
+
+ {{ roleName.value }}
+
+
+
diff --git a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.scss b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.scss
index 996466d32..315ec3063 100644
--- a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.scss
+++ b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.scss
@@ -28,6 +28,10 @@
border-radius: 4px;
}
+::ng-deep .mat-dialog-container {
+ border-radius: 8px;
+}
+
::ng-deep .mat-form-field-underline {
display: none;
}
@@ -56,3 +60,12 @@
margin-bottom: 0.25em;
}
+.select-role {
+ width: 16% !important;
+ font-size: 14px;
+ color: #848484;
+ height: min-content;
+ margin-right: 2.5rem;
+ border: none;
+ background-color: transparent;
+}
diff --git a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts
index ddce6723f..d8ad3c94e 100644
--- a/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts
+++ b/dmp-frontend/src/app/ui/dmp/invitation/dmp-invitation.component.ts
@@ -14,6 +14,7 @@ import { MultipleAutoCompleteConfiguration } from '@app/library/auto-complete/mu
import { BaseComponent } from '@common/base/base.component';
import { Observable } from 'rxjs';
import { map, takeUntil } from 'rxjs/operators';
+import { Role } from '@app/core/common/enum/role';
@Component({
selector: 'app-invitation-component',
@@ -26,6 +27,8 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni
public filteredUsersAsync = false;
public filteredUsers: DmpInvitationUser[];
public emails: string[] = [];
+ public roles = Role;
+ public roleNames: string[];
visible = true;
selectable = true;
@@ -33,13 +36,29 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni
addOnBlur = true;
readonly separatorKeysCodes: number[] = [ENTER, COMMA];
+ constructor(
+ public invitationService: DmpInvitationService,
+ public route: ActivatedRoute,
+ public router: Router,
+ public dialogRef: MatDialogRef
,
+ @Inject(MAT_DIALOG_DATA) public data: any
+ ) {
+ super();
+ this.roleNames = Object.keys(this.roles).filter(key => key.length > 1);
+ }
+
+ ngOnInit(): void {
+ const invitation = new DmpInvitation();
+ invitation.dataManagementPlan = this.data.dmpId;
+ this.formGroup = invitation.buildForm();
+ }
+
usersAutoCompleteConfiguration: MultipleAutoCompleteConfiguration = {
filterFn: this.filterUsers.bind(this),
initialItems: (excludedItems: any[]) => this.filterUsers('').pipe(map(result => result.filter(resultItem => (excludedItems || []).map(x => x.id).indexOf(resultItem.id) === -1))),
displayFn: (item) => typeof(item) === 'string' ? item : item.name,
titleFn: (item) => typeof(item) === 'string' ? item : item.name,
valueAssign: (item) => {
-
const result = typeof(item) === 'string' ? item : item.email;
console.log(result);
return result;
@@ -64,30 +83,13 @@ export class DmpInvitationDialogComponent extends BaseComponent implements OnIni
}
}
-
- constructor(
- public invitationService: DmpInvitationService,
- public route: ActivatedRoute,
- public router: Router,
- public dialogRef: MatDialogRef,
- @Inject(MAT_DIALOG_DATA) public data: any
- ) { super(); }
-
- ngOnInit(): void {
- const invitation = new DmpInvitation();
- invitation.dataManagementPlan = this.data.dmpId;
- this.formGroup = invitation.buildForm();
- }
-
-
send(value: any) {
let invitationObject: any = {};
invitationObject.dataManagementPlan = this.data.dmpId;
+ invitationObject.role = this.formGroup.get('role').value;
invitationObject.users = [];
- console.log(this.formGroup.get('users').value);
invitationObject.users.push(...(this.formGroup.get('users').value).filter(user => typeof(user) === 'string').map(email => ({ email: email, name: email })));
invitationObject.users.push(...(this.formGroup.get('users').value).filter(user => typeof(user) !== 'string'));
- console.log(invitationObject.users);
//invitationObject.users.push(...this.formGroup.get('users').value);
this.emails.forEach(email => {
invitationObject.users.push({ email: email, name: email });